我安装了Magento商店,当产品在后端重复时,Magento默认将其状态设置为Disabled。我不希望这种情况发生,重复的产品也应该从原始产品中复制其状态。
在this post中给出了部分解决方案。我看到我在哪里可以找到config.xml并进行必要的更改。但是,我在哪里放这样的观察员班?我应该使用/创建哪个文件,是否需要对config.xml输入进行任何更改?
或者有人为这个问题找到了整体解决方案吗?提前谢谢!
答案 0 :(得分: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/
答案 1 :(得分:-1)
我在此代码中发现错误并找到以下解决方案:
在app / code / local / MagePal / EnableDuplicateProductStatus / etc / config.xml上更改
<method> duplicateProduct </method>
要
<method>productDuplicate</method>