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
Muitas vezes me perguntei isso, mas não faço ideia. Presumivelmente, não é um valor booleano. Existe outro estado que não seja ativado ou desativado?
— JamesAllwood
2
@JamesAllwood Nope. Mage_Catalog_Model_Product_Status define STATUS_ENABLED e STATUS_DISABLED, nada mais.
— Benubird
Bela pergunta, inadvertidamente, ajudou a responder a algo que eu estava tentando descobrir!
— SR_Magento 29/07
Respostas:
20
Antes de tudo, os valores nem deveriam ser importantes.
Use no seu código essas constantes Mage_Catalog_Model_Product_Status::STATUS_ENABLEDe Mage_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 $dataestá 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.
insert  into {$this->getTable('catalog_product_status')}(`status_id`,`status_code`) values (1,'Enabled'),(2,'Disabled'),(3,'Out-of-stock');
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.phpe acho que, por compatibilidade, eles mantinham os IDs dos status.
DROP TABLE IF EXISTS {$this->getTable('catalog_product_status')};
— Marius
fonte
"Antes de tudo, os valores nem deveriam ser importantes." Eles são quando você está criando um arquivo de importação csv!
— jscar
Não, eles não são. Você pode apenas pegar cegamente os valores e usá-los na importação.
— Marius
OK, acho que entendo seu ponto original agora. Deixe-me reformular - é importante saber quais são os valores ao fazer uma importação :) O fato de serem 1 e 2 é contra-intuitivo. Gostaria de 0 e 1
— jscar 26/06
-1
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.
— Manish Shrestha
fonte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.