Prestashop, проверьте, какое действие вызывается в корзине (добавить / обновить), из hookActionCartSave - PullRequest
1 голос
/ 10 апреля 2020

Я создаю пользовательскую ловушку Prestashop для клиента, чтобы отправлять информацию в API, когда товар добавляется в корзину. Я использую hookActionCartSave, но эта ловушка срабатывает при обновлении корзины или добавлении нового продукта. Поэтому мой вопрос: как я могу проверить, какое действие инициировано, и выполнять мой код только при добавлении нового продукта. Вы найдете мой код ниже. Спасибо за вашу помощь.

public function hookActionCartSave($params)
{
    if (!Validate::isLoadedObject($this->context->cart) || !Validate::isLoadedObject($params['cart'])) {
        return false;
    } else {
        $cart = $params['cart'] ; 
        $products = $cart->getProducts();
        $product_count = 0;
        //get products details
        $products_details = array();
        foreach($products as $item){
            $products_details[] = array(
                  "name" => $item->product_name,
                  "product_id" => $item->product_id,
                  "price" => $item->total_price_tax_incl,
                  "quantity" => $item->product_quantity
                );
            $product_count = $product_count + $item->product_quantity ;
        }
        $productsJsonData = json_encode($products_details);

        $last_cart_product = $cart->getLastProduct();
        $last_added_product = new Product($last_cart_product['id_product']);

        // send data to my API 

    }

1 Ответ

1 голос
/ 10 апреля 2020

Я думаю, что вы можете использовать ловушку actionObjectCartAddAfter, чтобы сделать то, что вы хотите.

Если вам нужна дополнительная информация об этой ловушке, вы можете увидеть ее в файле /classes/ObjectModel.php в функции add .

...