Вопрос для любого разработчика magento:
Почему включенный продукт имеет статус 1, а отключенный продукт - 2? Обычно «включено» или «активно» или что-то еще получает статус 1, в то время как обратное значение равно 0. Есть ли причина, по которой magento использует 2 вместо этого?
stock
development
design
status
Benubird
источник
источник
Ответы:
Прежде всего, ценности не должны быть важными.
Используйте в своем коде эти константы
Mage_Catalog_Model_Product_Status::STATUS_ENABLED
иMage_Catalog_Model_Product_Status::STATUS_DISABLED
.Причина, которую я нашел до сих пор, заключается в том, что когда вы хотите создать продукт, в большинстве случаев вы хотите, чтобы он был включен. Если значение для статуса отключено было
0
, то оно будет выбрано, потому что путь, по которому текущие значения передаются в форму$form->setValues($data)
.При создании товара
$data
пусто и, в случае выпадающего меню, 0 = пусто.[РЕДАКТИРОВАТЬ]
Я только что вспомнил что-то еще.
Изначально статус имел отдельную таблицу и было 3 возможных значения.
И вы могли бы добавить больше. проверить
app/code/core/Mage/Catalog/sql/catalog_setup/mysql4-install-0.7.0.php
.Этот подход был добавлен,
mysql4-upgrade-0.7.4-0.7.5.php
и я думаю, что для совместимости они сохранили идентификаторы статусов.источник
значение статуса продукта поступает из поля выбора «status» в управлении продуктом в admin. «enabled» и «disabled» - это опции поля выбора со значениями 1 и 2. это не булевы значения.
источник