2012-06-07 151 views

回答

2

您擁有新產品狀態的動機是什麼?我認爲改變這部分應用程序有點冒險。我建議您添加新屬性並使用此屬性代替系統產品的屬性「狀態」,此屬性告知系統產品是啓用還是禁用。我猜之間沒有任何東西:)

+0

好thx可能會這樣做然後 – Wouter

+0

Mage_Catalog_Model_Product_Status :: STATUS_ENABLED –

1

覆蓋類Mage_Catalog_Model_Product_Status到本地文件夾。然後打開文件 \程序\代碼\本地\法師\目錄\型號\產品\ Status.php

在文件的頂部,你可以看到常數

const STATUS_ENABLED = 1; 
const STATUS_DISABLED = 2; 

下面添加您的自定義狀態它們,例如

const STATUS_SUSPENDED = 3; 

然後編輯功能getOptionArray

static public function getOptionArray() 
{ 
    return array(
     self::STATUS_ENABLED => Mage::helper('catalog')->__('Enabled'), 
     self::STATUS_DISABLED => Mage::helper('catalog')->__('Disabled'), 
     self::STATUS_SUSPENDED => Mage::helper('catalog')->__('Suspended') 
    ); 
} 

就是這樣。不要忘記清除緩存。

+1

我認爲這是相當危險的。你不知道新的狀態= 3會發生什麼。整個magento核心都知道它。 – Jaro

+0

我不會更改magento核心,我會添加一個新屬性,如Jaro所說的 – Wouter

+1

我沒有看到這個解決方案是危險的。代碼只是一個覆蓋,並不會改變已經設置的任何東西... –