Jump to content

Edit History

korvent

korvent


Statut résolu

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

korvent

korvent


Improve code visibility

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

korvent

korvent

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.

        if (($isReturn && $isShipped) || ($isCancel && !$isShipped)) {
            $products = $params['productList'] ?? $order->getOrderDetailList();
            foreach ($products as $product) {
                try {
                    $orderDetail = new OrderDetail($product['id_order_detail']);
//-> $orderDetail['product_quantity_return'], $orderDetail['product_quantity_refunded'] et $orderDetail['product_quantity_reinjected'] sont tous à 0 tout comme dans $product
                    $result = $db->insert('mymodule', [
                        'id_order_detail' => $product['id_order_detail'],
                        'type_movement' => 'R',
                        'product_reference' => $orderDetail->product_reference,
                        'product_quantity' => $product['quantity'],
                        'created_on' => date('Y-m-d H:i:s'),
                    ]);
                    if (!$result) {
                        PrestaShopLogger::addLog('[MYOMODULE] Return not added id_order_detail: ' . $product['id_order_detail']);
                    }
                } catch (PrestaShopDatabaseException $e) {
                    PrestaShopLogger::addLog('[MYOMODULE] 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

×
×
  • Create New...