为什么禁用状态2而不是0?
-
16-10-2019 - |
题
任何Magento Devs的问题:
为什么启用产品具有状态1,而残疾产品的状态为2?通常,“启用”或“活动”或任何获得状态1的内容,而匡威为0。是否有原因为什么Magento在这里使用2?
解决方案
首先,甚至不应该重要。
在您的代码中使用这些常数 Mage_Catalog_Model_Product_Status::STATUS_ENABLED
和 Mage_Catalog_Model_Product_Status::STATUS_DISABLED
.
到目前为止,我之所以发现,当您想创建产品时,在大多数情况下,您希望启用它。如果残疾状态的值为 0
, ,然后选择这是因为当前值通过 $form->setValues($data)
.
创建产品时 $data
是空的,在下拉菜单的情况下,0 =空。
编辑
我只是想起了其他事情。
最初,状态有一个单独的表,有3个可能的值。
insert into {$this->getTable('catalog_product_status')}(`status_id`,`status_code`) values (1,'Enabled'),(2,'Disabled'),(3,'Out-of-stock');
您可以添加更多。查看 app/code/core/Mage/Catalog/sql/catalog_setup/mysql4-install-0.7.0.php
.
这种方法被掉进了 mysql4-upgrade-0.7.4-0.7.5.php
而且我想,为了兼容,他们保留了状态的ID。
DROP TABLE IF EXISTS {$this->getTable('catalog_product_status')};
其他提示
产品状态值来自Admin中产品管理的“状态”选择字段。 “启用”和“禁用”是具有值1和2的选择字段的选项。这些不是布尔值。