Jump to content

Como hacer un nuevo insert a una tabla cuando un pedido se ha realizado


sylarlocke

Recommended Posts

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

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 by sylarlocke (see edit history)
Link to comment
Share on other sites

 

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();

 

 

  • Like 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...