Ich höre das Ereignis sales_quote_save_before ab , um festzustellen , wann ein Artikel zum Warenkorb hinzugefügt wird. Sobald es abgefeuert ist, gehe ich die folgenden Optionen durch:
$quote = $observer->getEvent()->getQuote();
foreach ($quote->getAllItems() as $item) {
$options = $item->getProduct()->getTypeInstance(true)->getOrderOptions($item->getProduct());
foreach($options['options'] as $option) {
if($option['label'] == 'myOptionA') {
// Here I want to change the selected value for the option
}
}
}
Wie Sie sehen, möchte ich die ausgewählte Option ändern, sobald eine bestimmte Option (im Beispiel myOptionA) erreicht ist. Nehmen wir also an, myOptionA ist ein Dropdown-Menü und hat 4 mögliche Werte. Wenn der Wert 1 ausgewählt ist, möchte ich den Wert 4 für dieses Element festlegen. Wenn der Warenkorb fertig geladen ist, sollte er für myOptionA den Wert 4 haben. Nicht nur der Name, sondern auch der Preis. Wie könnte ich das machen?