En primer lugar, los valores ni siquiera deberían ser importantes.
Use en su código estas constantes Mage_Catalog_Model_Product_Status::STATUS_ENABLED
y Mage_Catalog_Model_Product_Status::STATUS_DISABLED
.
La razón que encontré hasta ahora es que cuando quieres crear un producto, en la mayoría de los casos quieres que esté habilitado. Si el valor para el estado deshabilitado era 0
, entonces esto se seleccionará debido a la forma en que se pasan los valores actuales al formulario $form->setValues($data)
.
Al crear un producto $data
está vacío y, en el caso de menús desplegables, 0 = vacío.
[EDITAR]
Acabo de recordar algo más.
Inicialmente, el estado tenía una tabla separada y había 3 valores posibles.
insert into {$this->getTable('catalog_product_status')}(`status_id`,`status_code`) values (1,'Enabled'),(2,'Disabled'),(3,'Out-of-stock');
Y podrías agregar más. comprobar app/code/core/Mage/Catalog/sql/catalog_setup/mysql4-install-0.7.0.php
.
Este enfoque se introdujo mysql4-upgrade-0.7.4-0.7.5.php
y supongo que por compatibilidad mantuvieron los identificadores de los estados.
DROP TABLE IF EXISTS {$this->getTable('catalog_product_status')};