0

次の記事に従うと、Magentoは製品をdouble保存します。

顧客がブログ投稿を製品にリンクできるようにするフィールドを追加しましたが、$product->save()そこに配置すると、製品が2倍保存されます。また、同時に画像を追加すると(または新製品を作成すると)、画像が2倍になります。

編集:

以下はそれが保存するコードです

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());
    }
}
}

そしてconfig.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>
4

1 に答える 1

0

catalog_product_save_beforeイベントを使ったほうがいいです。オブザーバーでは、製品を保存せずに値を設定するだけです。

于 2012-09-24T10:59:58.630 に答える