Чому вимкнено статус 2 замість 0?


19

Питання для будь-яких розробників magento:

Чому увімкнений продукт має статус 1, а інвалід - 2? Зазвичай "увімкнено" або "активно" або що-небудь отримує статус 1, тоді як зворотне значення 0. Чи є причина, чому магенто використовує тут 2?


Часто дивувався цьому сам, хоча ідеї не маю. Імовірно, це не булеве значення. Чи є інший стан, окрім увімкненого чи відключеного?
JamesAllwood

2
@JamesAllwood Nope. Mage_Catalog_Model_Product_Status визначає STATUS_ENABLED та STATUS_DISABLED, нічого іншого.
Benubird

Прекрасне запитання, ненароком допомогло відповісти на щось, що я намагався з'ясувати!
SR_Magento

Відповіді:


20

Перш за все, значення навіть не повинні бути важливими.
Використовуйте у своєму коді ці константи 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')};

"Перш за все, значення навіть не повинні бути важливими". Вони створюються, коли ви створюєте файл імпорту CSV!
jscar

Вони не. Ви можете просто сліпо взяти значення та використовувати їх при імпорті.
Маріус

Гаразд, я думаю, зараз я розумію ваш початковий пункт. Дозвольте перефразувати - важливо знати, які значення знаходяться під час імпорту :) Те, що вони мають значення 1 та 2, є протиінтуїтивним.
Очікували

-1

значення статусу продукту походить із поля вибору "статус" у керуванні продуктом у адміністраторі. "включений" і "відключений" - це параметри поля вибору зі значеннями 1 і 2. це не булеві значення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.