2012-09-24 170 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