Ich habe eine Weile gesucht und nur Lösungen gefunden, die den Produkten in einem Magento-Shop ganz neue Optionssätze hinzugefügt haben.
Was ich erreichen möchte, ist eine Möglichkeit, ein einfaches Produkt in den Warenkorb zu legen. Dieses einfache Produkt hat einige vordefinierte benutzerdefinierte Optionen (freie Textfelder), die von einer PHP-Funktion gefüllt werden müssen.
Also, wie kann ich das tun? Angenommen, ich habe ein Produkt mit der ID "111" und einer benutzerdefinierten Option.
%Vor%Vielen Dank im Voraus für alle Gedanken.
BTW: das Setzen von Optionswerten über QueryString ist relativ einfach, wie man hier sieht.
Sie legen die benutzerdefinierte Option nicht auf das Produktmodell fest, sondern übergeben es über das zweite Argument an $cart->addProduct($product, $params)
.
Bei einem Projekt, für das eine externe App zum Hinzufügen zum Magento-Einkaufswagen erforderlich ist, müssen wir ein Array $params
des folgenden Formats verwenden:
Das $params['options']
enthält die Informationen zu den benutzerdefinierten Optionen. Die Schlüssel sind die benutzerdefinierten Options-IDs, die Sie sehen können, wenn Sie den Abschnitt für benutzerdefinierte Optionen auf dem Produktbildschirm mit Firebug oder ähnlichem überprüfen.
Der $params['product']
könnte redundant sein, ich schrieb dieses Skript vor einiger Zeit für eine viel frühere Version von Magento.
Ich bin mir auch ziemlich sicher, dass die Standard zum Warenkorb hinzufügen -Ereignisse ausgelöst werden, wenn Sie diesen Weg hinzufügen, also müssen Sie sie selbst einstellen. Es kann Nebenwirkungen geben.
In Magento 1.7 müssen Sie das Array params in ein Varien-Objekt einfügen.
%Vor%Das Problem mit der aktuellen Antwort ist, dass Magento keine zweite Werbebuchung hinzufügt, wenn die SKU identisch ist, aber die Optionen sich von der ersten unterscheiden. Wenn Sie einen 3 "Apfel und einen 4" Apfel möchten, möchten Sie separate Werbebuchungen haben. Oder zumindest ich.
Ein HTTP-Aufruf an die folgende URL
%Vor%gefolgt von
%Vor%fügt zwei Werbebuchungen hinzu.
Aber das ist doch nur die halbe Miete, wofür stehen diese Optionscodes? Nun, der folgende PHP-Code wird es Ihnen sagen. Und da wir einen HTTP-Aufruf verwenden, gibt der Code JavaScript-fähigen JSON zurück.
%Vor%