在购物车中多次添加同样的商品

问题描述:

我希望购物车中的商品能够彼此分开。 PrestaShop中的购物车线路表为ps_cart_product,主键为id_cart,id_productid_attribute,所以我应该在PrestaShop中使用“自定义”。我知道有$cart->_addCustomization(),但我尝试定制产品在购物车中,像这样有一个模块后,不明白的功能:在购物车中多次添加同样的商品

public function hookActionCartSave($params) 
{ 
    $cart = $this->context->cart; 
    $last_cart_product = $cart->getLastProduct(); 

    $cart->_addCustomization(
     $last_cart_product['id_product'], 
     $last_cart_product['id_product_attribute'], 
     $index = 1, 
     $type = 2, 
     md5(time().$last_cart_product['id_product'].$last_cart_product['id_product_attribute']), 
     10 
    ); 
} 

正如你可能会看到我存了一些变量只是为了看看。

目的

我想客户以后能够定制产品(上传文件)。比方说,我们有一个产品1和一个客户想要50上有一定的打印,另一个50上面有另一个打印。定制过程将在订单完成后完成(不同的问题,这里不是我的问题)。

这是做我想做的事情的方式,如果是的话如何?

编辑: 到目前为止,我设法在数据库中添加一个自定义。但是,似乎并不完整。当我在shopping-cart.tpl中打印出$products时,我看到了["customization_quantity"] => NULL,所以它可能无法正确添加到购物车中。

+0

正如你所指出的,主键是id_cart,id_product,id_product_attribute,id_address_delivery。所以不可能有相同约束的同一产品的2个条目。你要么改变这种损失(冒着其他的东西冒险),要么找到一个解决方法(可能是一个模块来输入基于数量的产品的多个成本) – sadlyblue

+0

我的问题中的函数来自我的模块。我试图添加10(正如你可以在代码示例中看到的那样),但是这不仅仅是将'quantity = 10'放在数据库的'ps_customization'中。我用'ps_customized_data'在'ps_customization'中看到一条记录,但在我的购物车中,它仍然显示为一个产品。我希望将我的购物车中的产品看作是不同的产品属性。 – Matt

+0

它真的需要在数据库中分离吗?或者,您是否只想在购物车的单独行中显示?对于第二种情况,您可以在tpl文件中执行此操作。 –

我找到了解决方案。

​​

这样做是为每一个产品,即有被定制的选项,它增加了对车线到数据库中的“自定义”。在这种情况下,最后只添加了addTextFieldToProduct(),因为我希望每个购物车行都是一个单独的实体,称为“打印产品”。

在的Prestashop后台,你应该进行自定义可能下Products >> Product {x} >> Customizations >> Text = 1 | label = 'print product'