2012-06-07 197 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

我没有看到这个解决方案是危险的。代码只是一个覆盖,并不会改变已经设置的任何东西... –