Sto ascoltando l' evento sales_quote_save_before per notare quando un articolo viene aggiunto al carrello. Una volta sparato, ripasso le opzioni degli oggetti in questo modo:
$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
}
}
}
Come vedi, non appena viene raggiunta una certa opzione (myOptionA nell'esempio), voglio cambiare l'opzione selezionata. Quindi supponiamo che myOptionA sia un menu a discesa e abbia 4 possibili valori. Nel caso in cui sia selezionato il valore 1, voglio impostare il valore 4 per quell'elemento. Quindi, al termine del caricamento, il carrello dovrebbe avere un valore 4 per myOptionA. Non solo il suo nome, ma anche il suo prezzo. Come potrei farlo?