3

Magento ストアをインストールしていますが、製品がバックエンドで複製されると、Magento はそのステータスをデフォルトで無効に設定します。複製された製品のステータスも元の製品からコピーされる必要があります。

この投稿では、部分的な解決策が提供されました。config.xml を見つけて、必要な変更を加えられる場所がわかります。しかし、そのようなオブザーバー クラスをどこに配置すればよいでしょうか。どのファイルを使用/作成する必要がありますか? config.xml 入力を変更する必要がありますか?

または、誰かがこの問題の全体的な解決策を持っていますか? 前もって感謝します!

4

2 に答える 2

2

これを試して:

作成: app/code/local/MagePal/EnableDuplicateProductStatus/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <MagePal_EnableDuplicateProductStatus>
            <version>1.0.1</version>
        </MagePal_EnableDuplicateProductStatus>
    </modules>

    <global>
        <models>
            <enableduplicateproductstatus>
                <class>MagePal_EnableDuplicateProductStatus_Model</class>
            </enableduplicateproductstatus>
        </models>
         <events>
            <catalog_model_product_duplicate>
                <observers>
                    <enableduplicateproductstatus>
                        <type>singleton</type>
                        <class>enableduplicateproductstatus/observer</class>
                        <method>productDuplicate</method>
                    </enableduplicateproductstatus>
                </observers>
            </catalog_model_product_duplicate>
        </events>
    </global>
</config>

作成: app/code/local/MagePal/EnableDuplicateProductStatus/Model/Observer.php

class MagePal_EnableDuplicateProductStatus_Model_Observer 
{
    /**
     * Prepare product for duplicate action.
     *
     * @param Varien_Event_Observer $observer
     * @return object
     */
    public function productDuplicate(Varien_Event_Observer  $observer)
    {
        $newProduct = $observer->getEvent()->getNewProduct();
        $newProduct->setStatus(Mage_Catalog_Model_Product_Status::STATUS_ENABLED);

        return $this;
    }
}

作成: app/etc/modules/MagePal_EnableDuplicateProductStatus.xml

  <?xml version="1.0"?>
    <config>
           <modules>
                  <MagePal_EnableDuplicateProductStatus>
                          <active>true</active>
                          <codePool>local</codePool>
                  </MagePal_EnableDuplicateProductStatus>
           </modules>
    </config>

次に、キャッシュをクリアして、製品の複製を試みます。

続きを読む @ :

http://magento4u.wordpress.com/2009/06/08/create-new-module-helloworld-in-magento/

http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/customizing_magento_using_event-observer_method

Magento でデフォルトで新製品をアクティブにする

于 2012-10-02T19:10:34.740 に答える
-1

このコードでエラーを見つけ、以下の解決策を見つけました。

app/code/local/MagePal/EnableDuplicateProductStatus/etc/config.xml の変更について

<method> duplicateProduct </method>

<method>productDuplicate</method>
于 2013-04-15T16:04:48.770 に答える