【问题标题】:Magento - how to add new product statusMagento - 如何添加新产品状态
【发布时间】:2012-06-07 12:06:54
【问题描述】:

我正在尝试制作新的产品状态,但我不知道该怎么做,并且网络上设置的所有内容都不一致,或者只是谈论我不想更改的订单状态。

【问题讨论】:

    标签: magento status


    【解决方案1】:

    您获得新产品状态的动机是什么?我认为更改应用程序的这一部分有点冒险。我建议您添加新属性并使用该属性代替系统产品的属性“状态”,该属性告诉系统产品是启用还是禁用。我想两者之间没有任何关系:)

    【讨论】:

    • Mage_Catalog_Model_Product_Status::STATUS_ENABLED
    【解决方案2】:

    将类Mage_Catalog_Model_Product_Status 覆盖到本地文件夹。然后打开文件 \app\code\local\Mage\Catalog\Model\Product\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')
        );
    }
    

    就是这样。不要忘记清除缓存。

    【讨论】:

    • 我认为这很危险。你不知道新状态 = 3 会发生什么。整个 magento 核心都不知道。
    • 我不会改变magento核心,我会像Jaro所说的那样添加一个新属性
    • 我看不出这个解决方案有什么危险。该代码只是一个覆盖,不会改变已经设置的任何内容......
    • 同意@Jaro。一方面,在产品被索引时查看状态。引入新状态可能会产生影响,尽管我没有检查过。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    相关资源
    最近更新 更多