Питання для будь-яких розробників magento:
Чому увімкнений продукт має статус 1, а інвалід - 2? Зазвичай "увімкнено" або "активно" або що-небудь отримує статус 1, тоді як зворотне значення 0. Чи є причина, чому магенто використовує тут 2?
Питання для будь-яких розробників magento:
Чому увімкнений продукт має статус 1, а інвалід - 2? Зазвичай "увімкнено" або "активно" або що-небудь отримує статус 1, тоді як зворотне значення 0. Чи є причина, чому магенто використовує тут 2?
Відповіді:
Перш за все, значення навіть не повинні бути важливими.
Використовуйте у своєму коді ці константи Mage_Catalog_Model_Product_Status::STATUS_ENABLED
і Mage_Catalog_Model_Product_Status::STATUS_DISABLED
.
Причиною, яку я поки що знайшов, є те, що, коли ви хочете створити продукт, у більшості випадків ви хочете, щоб його було включено. Якщо значення для статусу вимкнено 0
, то це буде вибрано, оскільки шлях, через який поточні значення передаються у форму, через $form->setValues($data)
.
При створенні продукту $data
порожньо, а у випадку випадаючих - 0 = порожнє.
[EDIT]
Я просто згадав щось інше.
Спочатку статус мав окрему таблицю і було 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')};
значення статусу продукту походить із поля вибору "статус" у керуванні продуктом у адміністраторі. "включений" і "відключений" - це параметри поля вибору зі значеннями 1 і 2. це не булеві значення.