Domanda

Una domanda per eventuali sviluppatori Magento:

Perché è che un prodotto abilitato ha lo stato 1, mentre un prodotto disabile ha uno stato di 2? Di solito, "enabled" o "attivo" o qualsiasi altra cosa ottiene lo stato 1, mentre il contrario è 0. C'è un motivo per cui Magento utilizza 2 qui invece?

È stato utile?

Soluzione

In primo luogo di tutti i valori non dovrebbe nemmeno essere importante.
Uso nel codice queste costanti Mage_Catalog_Model_Product_Status::STATUS_ENABLED e Mage_Catalog_Model_Product_Status::STATUS_DISABLED.
La ragione per cui ho trovato finora è che quando si vuole creare un prodotto, nella maggior parte dei casi si desidera che sia abilitato. Se il valore per lo stato disattivato era 0, allora questo sarà selezionato, perché il modo in cui i valori di corrente vengono passati al modulo attraverso $form->setValues($data).
Quando si crea un $data prodotto è vuota e, nel caso di menu di scorrimento, 0 = vuoto.
[EDIT]
Mi sono appena ricordato qualcos'altro.
Inizialmente lo stato aveva un tavolo separato e c'erano 3 possibili valori.

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

E si potrebbe aggiungere di più. controllare app/code/core/Mage/Catalog/sql/catalog_setup/mysql4-install-0.7.0.php.
Questo approccio è stato abbandonato nel mysql4-upgrade-0.7.4-0.7.5.php e credo che per la compatibilità hanno mantenuto gli ID degli stati.

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

Altri suggerimenti

il valore di stato del prodotto deriva dal "stato" campo selezionare dalla gestione del prodotto in admin. il "abilitati" e "disabili" sono le opzioni del campo di selezione con i valori 1 e 2. questi sono valori non booleani.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top