Bonjour,
Je tente d'utiliser le hook actionProductCancel pour gérer les retours produits.
Cependant, je n'ai pas la quantité de produit retournée.
public function hookActionProductCancel($params) { $db = Db::getInstance(); $order = $params['order']; $isReturn = $params['action'] === CancellationActionType::RETURN_PRODUCT; $isCancel = $params['action'] === CancellationActionType::CANCEL_PRODUCT || $params['action'] === CancellationActionType::STANDARD_REFUND; $isShipped = $order->hasBeenShipped() === 1; //We only process orders that have been shipped and with return product or haven't been shipped if (($isReturn && $isShipped) || ($isCancel && !$isShipped)) { $products = $params['productList'] ?? $order->getOrderDetailList(); try { $orderDetail = new OrderDetail($params['id_order_detail']); //-> $orderDetail['product_quantity_return'], $orderDetail['product_quantity_refunded'] et $orderDetail['product_quantity_reinjected'] sont tous à 0 $result = $db->insert('mymodule', [ 'id_order_detail' => $params['id_order_detail'], 'type_movement' => 'R', 'product_reference' => $orderDetail->product_reference, 'product_quantity' => $orderDetail->product_quantity_return, 'created_on' => date('Y-m-d H:i:s'), ]); if (!$result) { PrestaShopLogger::addLog('[MYMODULE] Return not added id_order_detail: ' . $params['id_order_detail']); } } catch (PrestaShopDatabaseException $e) { PrestaShopLogger::addLog('[MYMODULE] Database error: ' . $e->getMessage()); } } }
Je n'ai la quantité retournée ni dans $params ni dans $orderDetail.
Y-a-t-il un moyen que je ne vois pas ?
Je pensais que c'était lié au fait que le retour n'était pas encore fait mais j'ai vu dans cette issue: https://github.com/PrestaShop/PrestaShop/issues/21046 que Prestashop faisait déjà son traitement.
Auriez-vous une solution pour connaitre la quantité de produit retournés dans ce hook ?
Merci d'avance