Почему статус отключений 2 вместо 0?
-
16-10-2019 - |
Вопрос
Вопрос для любых Devs Magento:
Почему у вносимого продукта есть статус 1, в то время как у продукта отключения есть статус 2? Обычно «включено» или «активно» или что -то еще получает статус 1, в то время как обратное - 0. Есть ли причина, по которой Magento использует 2 здесь 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
И я предполагаю, что для совместимости они сохранили идентификаторы статусов.
DROP TABLE IF EXISTS {$this->getTable('catalog_product_status')};
Другие советы
Значение состояния продукта поступает из поля SELECT «Статус» из управления продуктом в администраторе. «включенные» и «отключен» - это параметры поля SELECT со значениями 1 и 2. Это не логические значения.