Pourquoi est désactivé état 2 au lieu de 0?
-
16-10-2019 - |
Question
Une question pour les devs magento:
Pourquoi est-ce qu'un produit a permis l'état 1, alors qu'un produit handicapé a un statut de 2? Habituellement, « activé » ou « actif » ou tout ce qui obtient le statut 1, alors que l'inverse est 0. Y at-il une raison pour laquelle magento utilise 2 ici au lieu?
La solution
D'abord toutes les valeurs ne doivent pas être encore importante.
Utilisez votre code et ces constantes Mage_Catalog_Model_Product_Status::STATUS_ENABLED
Mage_Catalog_Model_Product_Status::STATUS_DISABLED
.
La raison pour laquelle j'ai trouvé à ce jour est que lorsque vous voulez créer un produit, dans la plupart des cas, vous voulez qu'il soit activé. Si la valeur de statut de personne handicapée était 0
, alors ce sera sélectionné parce que la façon dont les valeurs actuelles sont passées à la forme par $form->setValues($data)
.
Lors de la création d'un $data
de produit est vide et, dans le cas de listes déroulantes, 0 = vides.
[EDIT]
Je viens de me rappeler quelque chose d'autre.
Dans un premier temps le statut avait une table séparée et il y avait 3 valeurs possibles.
insert into {$this->getTable('catalog_product_status')}(`status_id`,`status_code`) values (1,'Enabled'),(2,'Disabled'),(3,'Out-of-stock');
Et vous pouvez ajouter plus. vérifier app/code/core/Mage/Catalog/sql/catalog_setup/mysql4-install-0.7.0.php
.
Cette approche a été abandonnée dans mysql4-upgrade-0.7.4-0.7.5.php
et je suppose que la compatibilité ils ont gardé les IDs des statuts.
DROP TABLE IF EXISTS {$this->getTable('catalog_product_status')};
Autres conseils
la valeur de l'état du produit provient du champ de sélection « statut » de la gestion des produits dans l'admin. le « permis » et « désactivé » sont les options du champ de sélection avec les valeurs 1 et 2. ce ne sont pas des valeurs booléennes.