2017-06-01 160 views
0

我希望購物車中的商品能夠彼此分開。 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文件中執行此操作。 –

回答

0

我找到了解決方案。

​​

這樣做是爲每一個產品,即有被定製的選項,它增加了對車線到數據庫中的「自定義」。在這種情況下,最後只添加了addTextFieldToProduct(),因爲我希望每個購物車行都是一個單獨的實體,稱爲「打印產品」。

在的Prestashop後臺,你應該進行自定義可能下Products >> Product {x} >> Customizations >> Text = 1 | label = 'print product'

相關問題