Я слушаю событие 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 для этого элемента. Поэтому, когда корзина закончит загрузку, она должна иметь значение 4 для myOptionA. Не только его имя, но и цена. Как я мог это сделать?