Por que o status 2 está desativado em vez de 0?


19

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?


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')};

"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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.