Ich möchte Produkte im Warenkorb getrennt voneinander haben. Die Tabelle mit den Wagenlinien in PrestaShop ist ps_cart_product
und hat einen Primärschlüssel auf id_cart
, id_product
und id_attribute
, also sollte ich etwas mit "Anpassungen" in PrestaShop tun. Ich weiß, es ist $cart->_addCustomization()
, aber ich verstehe nicht die Funktion nach dem Versuch, ein Produkt in den Warenkorb gelegt zu gestalten, wie so mit einem Modul:Fügen Sie das gleiche Produkt mehrmals in den Warenkorb
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
);
}
Wie Sie vielleicht sehe ich einige Variablen fest einprogrammiert nur um es zu überprüfen.
Zweck
ich der Kunde das Produkt in der Lage sein möchte später anpassen (eine Datei hochladen). Nehmen wir an, wir haben eine Produkt 1 und ein Kunde will 50 mit einem bestimmten Druck drauf, und weitere 50 mit einem anderen Druck drauf. Der Anpassungsprozess wird nach der Bestellung durchgeführt (anderes Problem, nicht meine Frage hier).
Ist dies der Weg zu tun, was ich will, und wenn ja wie?
Bearbeiten: Bis jetzt habe ich es geschafft, eine Anpassung in der Datenbank hinzuzufügen. Scheint jedoch nicht vollständig zu sein. Wenn ich den $products
in shopping-cart.tpl
drucke, sehe ich ["customization_quantity"] => NULL
, also wird es möglicherweise nicht dem Wagen richtig hinzugefügt.
machen sollten Wie Sie wies darauf hin, ist der Primärschlüssel id_cart, id_product, id_product_attribute, id_address_delivery. Es ist also nicht möglich, 2 Einträge desselben Produkts mit den gleichen Einschränkungen zu haben. Sie ändern entweder diese Abnutzung (riskieren, etwas anderes zu stürzen) oder finden eine Umgehungslösung (vielleicht ein Modul, um mehrere Kostenoptimierungen für ein Produkt basierend auf Menge einzugeben) – sadlyblue
Die Funktion in meiner Frage stammt von meinem Modul. Ich habe versucht, 10 hinzuzufügen (wie Sie in dem Codebeispiel sehen können), aber dies setzt nicht nur "Quantity = 10" in "ps_customization" in der Datenbank. Ich sehe Datensätze in 'ps_customization' mit' ps_customized_data', aber in meinem Warenkorb erscheint es immer noch als ein Produkt. Ich möchte die Produkte in meinem Warenkorb haben, als ob die verschiedenen Produkteigenschaften wären. – Matt
Muss es wirklich in der Datenbank getrennt werden? Oder möchten Sie nur im Einkaufswagen getrennte Zeilen anzeigen? Für den zweiten Fall können Sie dies in TPL-Dateien tun. –