Tôi đang lắng nghe sự kiện sales_quote_save_b Before để thông báo khi một mặt hàng được thêm vào giỏ hàng. Khi nó được kích hoạt, tôi lặp qua các tùy chọn vật phẩm như thế này:
$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
}
}
}
Như bạn thấy, ngay khi đạt được một tùy chọn nhất định (myOptionA trong ví dụ), tôi muốn thay đổi tùy chọn đã chọn. Vì vậy, giả sử myOptionA là một trình đơn thả xuống và có 4 giá trị có thể. Trong trường hợp giá trị 1 được chọn, tôi muốn đặt giá trị 4 cho mục đó. Vì vậy, khi giỏ hàng được tải xong, nó phải có giá trị 4 cho myOptionA. Không chỉ tên của nó, mà giá cả của nó là tốt. Làm thế nào tôi có thể làm điều đó?