アイテムがカートに追加されたときに通知するために、sales_quote_save_beforeイベントを聞いています。起動したら、次のようなアイテムオプションを繰り返し処理します。
$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
}
}
}
ご覧のとおり、特定のオプション(例ではmyOptionA)に達したらすぐに、選択したオプションを変更したいと思います。したがって、myOptionAがドロップダウンであり、4つの可能な値があるとします。値1を選択した場合、その項目に値4を設定します。したがって、カートの読み込みが完了すると、myOptionAの値は4になります。その名前だけでなく、その価格も。どうすればできますか?