sylarlocke Posted April 28, 2020 Share Posted April 28, 2020 Hola, estoy intentando hacer cuando un pedido se ha realizado que haga un insert en una nueva tabla la cual va a guardar el stock actual de los productos que haya en ese pedido. Estoy mirando el fichero "paymentmodule.php" para hacer un override, pero no encuentro la forma de poder añadir o hacer un insert cuando el pedido se ha realizado a esta nueva tabla. Link to comment Share on other sites More sharing options...
ventura Posted April 28, 2020 Share Posted April 28, 2020 Es mejor que lo hagas desde un módulo aprovechando un hook actionValidateOrder displayOrderConfirmation Link to comment Share on other sites More sharing options...
sylarlocke Posted April 28, 2020 Author Share Posted April 28, 2020 (edited) Gracias por su ayuda, quería aprovechar mucha información que aparece en el fichero "paymentmodule.php", ya que necesito rescatar información de cada producto y su stock actual, esto lo puedo recuperar de la tabla "ps_stock_available". Lo que no sé ya como rescatar esta información a través de hook, aparte de los hook que indicas también he leído que existe este hook "actionObjectOrderAddAfter" el cual se ejecuta cuando se ha hecho el pedido. Pero mis dudas son: ¿Desde los hook puedo rescatar toda la información que se hace en un pedido? ¿Puedo hacer consultas "insert, update" dentro de un hook? Edited April 28, 2020 by sylarlocke (see edit history) Link to comment Share on other sites More sharing options...
ventura Posted April 28, 2020 Share Posted April 28, 2020 2 hours ago, sylarlocke said: Pero mis dudas son: ¿Desde los hook puedo rescatar toda la información que se hace en un pedido? ¿Puedo hacer consultas "insert, update" dentro de un hook? 1. Si, ejemplo de la documentación de Prestashop sobre los hooks : actionValidateOrder After an order has been validated. Doesn’t necessarily have to be paid. Located in: /classes/PaymentModule.php Parameters: array( 'cart' => (object) Cart, 'order' => (object) Order, 'customer' => (object) Customer, 'currency' => (object) Currency, 'orderStatus' => (object) OrderState ); Instancia desde el hook en el módulo, eg $currency = $params['currency']; $order = $params['order']; $customer = $params['customer']; 2. Puedes hacer consultas o puedes utilizar las funciones propias de Prestashop para actualizar, añadir o eliminar registros, eg para crear un cliente utilizando la función add $customer = new Customer(); $customer->email = $payer_info->email; $customer->firstname = $payer_info->first_name; $customer->lastname = $payer_info->last_name; $customer->passwd = Tools::encrypt(Tools::passwdGen()); $customer->add(); Puedes actualizar utilizando update, o save $c = new Customer((int) $id); $c->newsletter = 0; $c->update(); 1 Link to comment Share on other sites More sharing options...
sylarlocke Posted April 29, 2020 Author Share Posted April 29, 2020 Muchas gracias ventura, me pongo con ello y te mantengo informado. 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