Magento:使用ajax更新购物车项目Custom Option

时间:2012-07-25 12:41:26

标签: magento

我需要使用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();

任何人都可以帮助我解决这里出了什么问题。 感谢

2 个答案:

答案 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的分享。