Jump to content

[SOLUCIONADO] Actualizar pedido en la base de datos de prestashop 1.6


Clessx

Recommended Posts

Hola amigos

 

Estoy trabajando en un modulo de pago para prestashop 1.6 y solo me falta realizar que cuando el cliente realice el pago con tarjeta de credito se actualice el pedido en la base de datos como pagado y obviamente también me aparezca en el admin en el apartado pedidos como pagado.

 

El problema es que no se que clase realiza esto y mucho menos como utilizarla.

 

Podria hacerlo a mano sin utilizar clases, pero me interesa aprender a utilizar las clases de prestashop sin tener que llamar directamente a la BD.

 

¿alguna ayuda de como hacerlo?, ojala pudieran darme algun ejemplo del codigo a utilizar.

 

Muchas gracias de antemano.

Edited by Clessx (see edit history)
Link to comment
Share on other sites

En la clase PaymentModule tienes el método validateOrder, por ese método pasan la mayoría sino todos los métodos de pago. Si te creas tus constantes del estado que quieres poner y demás yo creo que te vale. 

 

Espero que te sea de ayuda. 

Link to comment
Share on other sites

Lo mejor que puedes hacer es coger un módulo que realice un pago parecido al tuyo y guiarte por ese. Si estás haciendo un módulo de pago con tarjeta de crédito serán todos más o menos iguales, cambiarán los parámetros que se pasan a la pasarela y lo que devuelve, pero el resto tiene que ser igual.

Es la mejor manera que tienes de no complicarte mucho la vida. 

Link to comment
Share on other sites

Hola

 

Gracias por la ayuda, estuve haciendo lo de coger otro mudulo de pago similar y de ahi copiar parte del codigo, pero tengo problemas con el ValidateOrder, me da el siguiente error al pasarle los parametros

 

throw new PrestaShopException('Can\'t load Order state status');

 

¿alguna idea?

 

Gracias de antemano

Link to comment
Share on other sites

Lo otro es que estoy intentando utilizar Order::getOrderByCartId para conseguir el id de la orden pero me returna falso, debe ser porque no esta creado. ¿como puedo crear la orden a partir del carro de compra en mi pagina de aterrisaje luego que el banco me envia que la transacción se hizo correctamente?

 

Gracias nuevamente a quien me pueda ayudar.

Link to comment
Share on other sites

Puede ser que le estés pasando un estado que no exista?

Otra cosa, puede que te toque reescribir ese método porque si recuerdo bien hace comprobaciones y según el estado hace una cosa o hace otra. Si has creado un estado nuevo para pasarle puede ser que no entre en ningún sitio y te salte la excepción. 

 

De todos modos, si copias otro módulo creo que no deberías tener problemas, como te dije es cambiar los parámetros que envías y los que recibes...a partir de ahí el pedido entiendo que estará pagado como en el resto de módulos de pago con tarjeta y no tendrías que tocar estados. 

Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...