Изменить пользовательский вариант продукта в корзине

У меня есть этот код в checkout/cart/item/default.phtml для получения данных.

$allProductOptions = $_item->getProduct()->getTypeInstance(true)>getOrderOptions($_item->getProduct());
    $productOptions = $allProductOptions['info_buyRequest'];

А в $productOptions у меня сохранена пользовательская опция со страницы продукта: $productOptions['my_option']. Как я могу обновить эту опцию?


person Dan Ovidiu Boncut    schedule 02.03.2015    source источник
comment
Попробуйте $allProductOptions = $_item->getProduct()->getTypeInstance(true)->getOptions(); вместо $allProductOptions = $_item->getProduct()->getTypeInstance(true)>getOrderOptions($_item->getProduct());   -  person Girish SH    schedule 02.03.2015
comment
но мне нужно иметь возможность устанавливать/обновлять их. действительно, это выглядит более практично.   -  person Dan Ovidiu Boncut    schedule 02.03.2015


Ответы (1)


Получить пользовательские параметры продукта:

$allProductOptions = $_item->getProduct()->getTypeInstance(true)->getOptions();

Обновите пользовательские параметры (установите свои значения, как показано ниже):

$option = array(
    'title' => 'Test Option',
    'type' => 'file',
    'is_require' => 1,
    'price' => 10,
    'price_type' => 'fixed',
    'sku' => 'testsku',
    'file_extension' => 'png,jpg',
    'image_size_x' => '100',
    'image_size_y' => '200'

);

$product = $_item->getProduct();

$product->getOptionInstance()->addOption($option);

$product->setHasOptions(true);

or

$product = $_item->getProduct();
$optionInstance = $product->getOptionInstance();
$optionInstance->addOption($option);
$optionInstance->setProduct($product);
$product->save();

Вы можете обновить эти

person Girish SH    schedule 02.03.2015