Php 预设将产品添加到购物车的奇怪数量

Php 预设将产品添加到购物车的奇怪数量,php,model-view-controller,module,prestashop,prestashop-1.6,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); } hookActionCa

我试图以编程方式将产品添加到PrestaShop购物车。我将updateQty与要更新的数量和产品id一起使用。但是,当我将产品添加到购物车时,它会自动添加10个产品数量。我用错了吗

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

我试过这个:

public function hookActionCartSave($params){
    $cart = $params['cart'];
    $cart->updateQty(1, 408);
} 
hookActionCartSave一次调用一次。因此,在id为408的情况下,每次它将被称为您时,该产品在购物车中的数量将增加1,在您的情况下,可能会被称为10次

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


使代码适应您的需要

您的解决方案非常有效,非常感谢:-。虽然它实际上让我思考:增加购物车中已准备就绪的产品数量的过程是什么?不知道这是否是另一个问题:-呵呵,好问题,目前我没有一个快速的答案给你:P但我想你可以自己找到解决方案;
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
        }
    }
}