Prestashop将产品添加到购物车奇怪的数量

时间:2017-05-29 15:33:19

标签: php model-view-controller module prestashop prestashop-1.6

我正在尝试以编程方式将产品添加到PrestaShop购物车。我使用updateQty()以及要更新的数量和产品ID。但是,当我将产品添加到购物车时,它会自动添加10个产品。我是以错误的方式使用它吗?

我在自定义模块中使用actionCartSave挂钩。

我试过这个:

public function hookActionCartSave($params){
    $cart = $params['cart'];
    $cart->updateQty(1, 408);
} 

1 个答案:

答案 0 :(得分:1)

hookActionCartSave再次被召唤一次。因此,每次调用它时,您在该产品的购物车中增加1(在您的情况下为id 408),在您的情况下可能会被调用10次。

要回答您的问题,我们必须检查产品是否已装入购物车,请尝试以下代码:

public function hookActionCartSave($params)
{
    $cart = $params['cart']; // Get the cart object
    if(Validate::isLoadedObject($cart)){ // Check if the cart is a valid object
        if(!$cart->containsProduct(408)){ // Check if our product is already in cart
            $cart->updateQty(1, 408); // Add our product to cart
        }
    }
}

根据您的需要调整代码;)