Una pregunta para cualquier desarrollador de magento:
¿Por qué un producto habilitado tiene el estado 1, mientras que un producto deshabilitado tiene el estado 2? Por lo general, "habilitado" o "activo" o lo que sea que obtenga el estado 1, mientras que el inverso es 0. ¿Hay alguna razón por la cual magento usa 2 aquí?
stock
development
design
status
Benubird
fuente
fuente
Respuestas:
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
yMage_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.
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.fuente
el valor del estado del producto proviene del campo de selección "estado" de la administración del producto en admin. "habilitado" y "deshabilitado" son las opciones del campo de selección con los valores 1 y 2. Estos no son valores booleanos.
fuente