J'écoute l' événement sales_quote_save_before pour savoir quand un article est ajouté au panier. Une fois son tir, j'itère les options des articles comme ceci:
$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
}
}
}
Comme vous le voyez, dès qu'une certaine option (myOptionA dans l'exemple) est atteinte, je veux changer l'option sélectionnée. Disons donc que myOptionA est une liste déroulante et a 4 valeurs possibles. Si la valeur 1 est sélectionnée, je souhaite définir la valeur 4 pour cet élément. Ainsi, lorsque le chariot a fini de charger, il doit avoir la valeur 4 pour myOptionA. Pas seulement son nom, mais aussi son prix. Comment pourrais-je faire ça?