我需要使用ajax更新自定义选项值。 我想像
那样更新它$params = $this->getRequest()->getParams();
$itemID = $params['item'];
$item = Mage::getSingleton('checkout/session')->getQuote()->getItemById($itemID);
$options = $item->getOptions();
foreach ($options as $option) {
if(strtolower($option->getCode()) == 'info_buyRequest')
{
$unserialized = unserialize($option->getValue());
$unserialized['options'][216]= 'New Value';
$option->setValue(serialize($unserialized));
}
}
$item->save();
任何人都可以帮助我解决这里出了什么问题。 感谢
答案 0 :(得分:2)
这永远不会成真:
(strtolower($option->getCode()) == 'info_buyRequest')
此外,我还必须编辑特定的已保存自定义选项。我的循环看起来像这样:
foreach ($options as $option) {
switch (true) {
case (strtolower($option->getCode()) == 'info_buyrequest') :
$unserialized = unserialize($option->getValue());
$unserialized['options'][216] = 'NEW VALUE';
$option->setValue(serialize($unserialized));
break;
case ($option->getCode() == "option_216") :
$option->setValue('NEW VALUE');
break;
}
}
答案 1 :(得分:1)
Pravin得到了以下代码行。
$item->setOptions($options)->save();
Mage::getSingleton('checkout/cart')->save();
感谢p4pravin的分享。