Magento:在观察者中向引用项目对象添加数据

时间:2013-05-23 15:19:38

标签: magento object events

这就是我想要做的事情:

  1. 当我将产品添加到购物车时,我抓住了这个事件
  2. 在关联的观察者中,我想将数据添加到当前报价项并保存。
  3. 在购物车中,我会收回此信息以便显示
  4. 这就是我在观察者中所做的事情:

     $item = $observer->getEvent()->getQuoteItem();
     $item->setData('results',$results); 
    

    在购物车中我试图记录这个值:

     Mage::log($_item->getData('results')); 
    

    但是这个值是空的。我认为“结果”属性并不持久。

    你能帮我解决一下我的问题吗?

    如果需要更多详细信息,请与我们联系。

2 个答案:

答案 0 :(得分:4)

我来找你解决方案! 我找到了“sales_flat_quote_item_option”表,我在其中存储了我的价值。

if(isset($results))
{
        $item->addOption(array(
              "product_id" => $item->getProduct()->getId(),
              "product" => $item->getProduct(),
              "code" => "results",
              "value" => serialize($results)
        ));
        $item->save();
} 

我在购物车中得到了这个价值。

$results_data = $_item->getOptionByCode("results");
if(!is_null($results_data))
     $results = unserialize($results_data->getValue()); 

它的工作就像一个魅力,谢谢你的宝贵帮助。

答案 1 :(得分:0)

 $item = $observer->getEvent()->getQuoteItem();
 $item->setData('results',$results); 

你在哪里初步化了$ results。 由于似乎没有与$ results相关的值,因此您得到一个空白值。