Pourquoi l'état désactivé 2 au lieu de 0?


19

Une question pour tous les développeurs de magento:

Pourquoi un produit activé a-t-il le statut 1, alors qu'un produit désactivé a le statut 2? Habituellement, "activé" ou "actif" ou tout ce qui obtient le statut 1, alors que l'inverse est 0. Y a-t-il une raison pour laquelle magento utilise 2 ici à la place?


Je me le demandais souvent moi-même, je n'en ai aucune idée. Ce n'est probablement pas une valeur booléenne. Y a-t-il un autre état que celui activé ou désactivé?
JamesAllwood

2
@JamesAllwood Nope. Mage_Catalog_Model_Product_Status définit STATUS_ENABLED et STATUS_DISABLED, rien d'autre.
Benubird

Belle question, aidé par inadvertance à répondre à quelque chose que j'essayais de comprendre!
SR_Magento

Réponses:


20

Tout d'abord, les valeurs ne devraient même pas être importantes.
Utilisez dans votre code ces constantes Mage_Catalog_Model_Product_Status::STATUS_ENABLEDet Mage_Catalog_Model_Product_Status::STATUS_DISABLED.
La raison pour laquelle j'ai trouvé jusqu'à présent est que lorsque vous souhaitez créer un produit, dans la plupart des cas, vous souhaitez qu'il soit activé. Si la valeur du statut désactivé était 0, cela sera sélectionné car la façon dont les valeurs actuelles sont transmises au formulaire $form->setValues($data).
Lors de la création d'un produit $dataest vide et, dans le cas de listes déroulantes, 0 = vide.
[EDIT]
Je viens de me souvenir d'autre chose.
Initialement, le statut avait un tableau séparé 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 pourriez en ajouter plus. vérifier app/code/core/Mage/Catalog/sql/catalog_setup/mysql4-install-0.7.0.php.
Cette approche a été abandonnée mysql4-upgrade-0.7.4-0.7.5.phpet je suppose que pour des raisons de compatibilité, ils ont conservé les identifiants des statuts.

DROP TABLE IF EXISTS {$this->getTable('catalog_product_status')};

"Tout d'abord, les valeurs ne devraient même pas être importantes." Ils le sont lorsque vous créez un fichier d'importation csv!
jscar

Non ils ne sont pas. Vous pouvez simplement prendre aveuglément les valeurs et les utiliser dans l'importation.
Marius

OK, je pense que je comprends votre point d'origine maintenant. Permettez-moi de reformuler - il est important de savoir quelles sont les valeurs lors d'une importation :) Le fait qu'elles soient 1 et 2 est contre-intuitif.
S'attendrait

-1

la valeur de statut du produit provient du champ de sélection "status" de la gestion des produits dans admin. "activé" 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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.