2012-10-01 67 views
3

我安裝了Magento存儲,並且在後端複製產品時,Magento默認將其狀態設置爲已禁用。我不希望發生這種情況,重複的產品也應該從原始產品中複製它的狀態。更改複製產品的Magento默認狀態

this post中給出了部分解決方案。我看到了哪裏可以找到config.xml並進行必要的更改。但是,我在哪裏放置這樣的觀察員班呢?我應該使用/創建哪個文件,並且需要對config.xml輸入進行任何更改?

還是有人有這個問題的整體解決方案?提前致謝!

回答

2

試試這個:

創建:應用程序/代碼/本地/ 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> 

創建:應用程序/代碼/本地/ MagePal/EnableDuplicateProductStatus /型號/觀察員.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; 
    } 
} 

創建:應用程序的/ etc /模塊/ 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

+0

不幸的是這仍然無法正常工作。我發現在config.xml 1個錯誤(它說「 enableduplicateproductstatus /觀察員」,我覺得應該是「 enableduplicateproductstatus /模型/觀察員」,因爲在那裏你把Oberserver.php的。 清除後緩存和複製產品,新產品仍然具有禁用狀態 –

+0

立即嘗試代碼...我測試了它並且它正常工作... 未在之前的 –

+0

中定義此外,標記也不是錯誤。 –

0

我發現這個代碼錯誤,並找出下面的解決方案:

在應用程序/代碼/本地/MagePal/EnableDuplicateProductStatus/etc/config.xml更改

<method> duplicateProduct </method> 

TO

<method>productDuplicate</method>