dguardiola Posted August 16, 2015 Share Posted August 16, 2015 Hola, Tengo un modulo con el siguiente hook: public function hookActionPaymentConfirmation($params) { if (Module::isEnabled('correos')) { PrestaShopLoggerCore::addLog('Cambio Estado: '.$params['id_order']); $objOrder = new Order($params['id_order']); $history = new OrderHistory(); $history->id_order = (int)$objOrder->id; $history->changeIdOrderState(Configuraton::get('CORREOS_ORDER_STATE_ID'), (int)($objOrder->id)); } } Este hook se ejecuta cuando hay confirmación de pago aceptado y he comprobado que efectivamente se ejecuta, pero no me cambia el estado del pedido. Alguna idea? Mi versión de Prestashop es la 1.6.1.0 Muchas Gracias. David Link to comment Share on other sites More sharing options...
ventura Posted August 17, 2015 Share Posted August 17, 2015 Ese estado de pedido al que se cambia tiene configurado envio automatico de correo ¿? Link to comment Share on other sites More sharing options...
dguardiola Posted August 17, 2015 Author Share Posted August 17, 2015 Ese estado de pedido al que se cambia tiene configurado envio automatico de correo ¿? Hola Ventura, gracias por contestar. NO, no tiene activado el envío automático de correos. Ahora el hook esta así: (aunque sigue sin funcionar) public function hookActionOrderStatusPostUpdate($params) { if (Configuration::get('MARKETPLACE_COMMISIONS_STATE') && Configuration::get('MARKETPLACE_ORDER_STATE') == $params['newOrderStatus']->id) { $this->sendCommision($params); PrestaShopLoggerCore::addLog('hookActionOrderStatusPostUpdate. Cambio Estado a 15: '.$params['id_order']); $objOrder = new OrderCore($params['id_order']); $history = new OrderHistoryCore(); $history->id_order = (int)$objOrder->id; $history->changeIdOrderState(15, (int)($objOrder->id)); } } Como debería funcionar: - Al recibir un "Pago aceptado" desde una pasarela de pago, cambiar al estado 15 (definido por otro modulo) que me enviara un correo (ahora no lo hace). NOTA: Si cambio el estado desde el backoffice, FUNCIONA!!! y recibo el correo. (yo quiero que sea automatico al recibir "Pago Aceptado") Gracias David Link to comment Share on other sites More sharing options...
joseantgv Posted August 31, 2015 Share Posted August 31, 2015 (edited) Prueba: $history = new OrderHistory(); $history->id_order = (int)$objOrder->id; $history->changeIdOrderState(15, (int)$objOrder->id, true); $history->addWithemail(); Revisa también que en $objOrder->id tengas el ID del pedido. Edited August 31, 2015 by joseantgv (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now