Warum ist Status 2 anstelle von 0 deaktiviert?

19

Eine Frage für alle Magento-Entwickler:

Warum hat ein aktiviertes Produkt den Status 1, während ein deaktiviertes Produkt den Status 2 hat? Normalerweise hat "enabled" oder "active" oder was auch immer den Status 1, während die Umkehrung 0 ist. Gibt es einen Grund, warum Magento hier stattdessen 2 verwendet?

Benubird
quelle
Ich habe mich das oft gefragt, aber keine Ahnung. Es ist vermutlich kein boolescher Wert. Gibt es einen anderen Status als aktiviert oder deaktiviert?
JamesAllwood
2
@ JamesAllwood Nope. Mage_Catalog_Model_Product_Status definiert STATUS_ENABLED und STATUS_DISABLED, sonst nichts.
Benubird
Schöne Frage, die mir versehentlich geholfen hat, etwas zu beantworten, was ich herausfinden wollte!
SR_Magento

Antworten:

20

Zuallererst sollten die Werte nicht einmal wichtig sein.
Verwenden Sie in Ihrem Code diese Konstanten Mage_Catalog_Model_Product_Status::STATUS_ENABLEDund Mage_Catalog_Model_Product_Status::STATUS_DISABLED.
Der Grund, den ich bisher gefunden habe, ist, dass Sie in den meisten Fällen möchten, dass ein Produkt aktiviert wird, wenn Sie es erstellen möchten. Wenn der Wert für den Status deaktiviert war 0, wird dieser ausgewählt, da die aktuellen Werte über an das Formular übergeben werden $form->setValues($data).
Beim Anlegen eines Produktes $dataist leer und bei Dropdowns 0 = leer.
[EDIT]
Ich habe mich gerade an etwas anderes erinnert.
Anfangs hatte der Status eine separate Tabelle und es gab 3 mögliche Werte.

insert  into {$this->getTable('catalog_product_status')}(`status_id`,`status_code`) values (1,'Enabled'),(2,'Disabled'),(3,'Out-of-stock');

Und Sie könnten noch mehr hinzufügen. überprüfen app/code/core/Mage/Catalog/sql/catalog_setup/mysql4-install-0.7.0.php.
Dieser Ansatz wurde gestrichen mysql4-upgrade-0.7.4-0.7.5.phpund ich denke, aus Kompatibilitätsgründen wurden die IDs der Status beibehalten.

DROP TABLE IF EXISTS {$this->getTable('catalog_product_status')};
Marius
quelle
"Zuallererst sollten die Werte nicht einmal wichtig sein." Sie sind, wenn Sie eine CSV-Importdatei erstellen!
Jscar
Nein sind sie nicht. Sie können die Werte einfach blind übernehmen und im Import verwenden.
Marius
OK, ich glaube, ich verstehe jetzt Ihren ursprünglichen Punkt. Lassen Sie mich umformulieren - es ist wichtig zu wissen, was die Werte sind, wenn Sie einen Import durchführen :) Die Tatsache, dass es sich um 1 & 2 handelt, ist nicht intuitiv. Würde mit 0 & 1 rechnen
jscar
-1

Der Wert für den Produktstatus stammt aus dem Auswahlfeld "Status" der Produktverwaltung in admin. "enabled" und "disabled" sind die Optionen des Auswahlfelds mit den Werten 1 und 2. Dies sind keine booleschen Werte.

Manish Shrestha
quelle