Uma pergunta para qualquer desenvolvedor magento:
Por que um produto ativado possui o status 1, enquanto um produto desativado possui o status 2? Normalmente, "ativado" ou "ativo" ou o que quer que seja o status 1, enquanto o inverso é 0. Existe uma razão pela qual o magento usa 2 aqui?
stock
development
design
status
Benubird
fonte
fonte
Respostas:
Antes de tudo, os valores nem deveriam ser importantes.
Use no seu código essas constantes
Mage_Catalog_Model_Product_Status::STATUS_ENABLED
eMage_Catalog_Model_Product_Status::STATUS_DISABLED
.A razão que encontrei até agora é que, quando você deseja criar um produto, na maioria dos casos, deseja que ele seja ativado. Se o valor do status desativado foi
0
, ele será selecionado porque a maneira pela qual os valores atuais são transmitidos ao formulário$form->setValues($data)
.Ao criar um produto, ele
$data
está vazio e, no caso de listas suspensas, 0 = vazio.[EDIT]
Acabei de me lembrar de outra coisa.
Inicialmente, o status tinha uma tabela separada e havia 3 valores possíveis.
E você pode adicionar mais. cheque
app/code/core/Mage/Catalog/sql/catalog_setup/mysql4-install-0.7.0.php
.Essa abordagem foi adotada
mysql4-upgrade-0.7.4-0.7.5.php
e acho que, por compatibilidade, eles mantinham os IDs dos status.fonte
o valor do status do produto vem do campo de seleção "status" do gerenciamento de produtos em admin. "ativado" e "desativado" são as opções do campo de seleção com os valores 1 e 2. estes não são valores booleanos.
fonte