【问题标题】:Change Magento default status for duplicated products更改重复产品的 Magento 默认状态
【发布时间】:2012-09-22 13:54:20
【问题描述】:

我安装了 Magento 商店,当产品在后端复制时,Magento 默认将其状态设置为已禁用。我不希望这种情况发生,复制的产品也应该从原始产品中复制其状态。

this post 中给出了部分解决方案。我知道在哪里可以找到 config.xml 并进行必要的更改。但是,我在哪里放置这样一个观察者类?我应该使用/创建哪个文件,这是否需要对 config.xml 输入进行任何更改?

或者有人对此问题有整体解决方案吗?提前致谢!

【问题讨论】:

    标签: magento duplicates default status


    【解决方案1】:

    试试这个:

    创建: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

    make a new product active by default in magento

    【讨论】:

    • 不幸的是,这仍然不起作用。我在 config.xml 中发现 1 个错误(上面写着“enableduplicateproductstatus/observer”,我认为它应该是“enableduplicateproductstatus/model/observer”,因为你把Oberserver.php. 清除缓存复制产品后,新产品仍然处于禁用状态。
    • 现在试试这个代码...我测试了它并且它工作... 之前没有定义
    【解决方案2】:

    我在这段代码中发现了错误,并在下面找到了解决方案:

    在 app/code/local/MagePal/EnableDuplicateProductStatus/etc/config.xml 更改

    <method> duplicateProduct </method>
    

    <method>productDuplicate</method>
    

    【讨论】:

      猜你喜欢
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-08
      • 2012-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多