Чому вимкнено статус 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.