2012-09-24 133 views
0

当我按照following article Magento double保存产品。Magento保存产品两次

我已经添加了一个额外的字段,允许客户将博客帖子链接到产品,但是当我将$product->save()放在那里时,它会双倍保存产品。而这会导致重影,当你在同一时间添加图片(或创建一个新的产品)

编辑:

下面是它可以节省

public function saveProductTabData(Varien_Event_Observer $observer) 
{ 
if (!self::$_singletonFlag) { 
    self::$_singletonFlag = true; 

    $product = $observer->getEvent()->getProduct(); 

    try { 
     /** 
     * Perform any actions you want here 
     * 
     */ 


     $customFieldValue = $this->_getRequest()->getPost('blogIDs'); 

     if(!empty($customFieldValue)){$blogIds = implode(',', @$customFieldValue);} 

      if(!empty($blogIds)) { $product->setBlogids($blogIds);    } else { $product->setBlogids('0'); }  
     /** 
     * Uncomment the line below to save the product 
     * 
     */ 
     // $product->save(); 
    } 
    catch (Exception $e) { 
     Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); 
    } 
} 
} 

的代码和配置.xml

<events> 
     <catalog_product_save_before> 
      <observers> 
       <pmit_save_product_data> 
        <type>singleton</type> 
        <class>blogextend/observer</class> 
        <method>saveProductTabData</method> 
       </pmit_save_product_data> 
      </observers> 
     </catalog_product_save_before> 
    </events> 

回答

0

最好使用catalog_product_save_before事件。而在你的观察者中,你应该设定价值,而不是保存产品。

+0

你能告诉我怎么做吗?让我知道你是否需要任何代码。我在我的config.xml中将catalog_product_save_after更改为catalog_product_save_before,但它仍然不起作用,并且不会保存该选项卡的值:) – JELLEJ

+0

您要保存的是什么? –

+0

我添加了一个额外的选项卡,允许客户将博客帖子链接到产品(它将ID保存到一个属性)。因此,当删除$ product-> save()时,它不再保存这些值。产品编辑视图中需要额外的选项卡。 – JELLEJ