Eu instalo o atributo com o seguinte script:
$installer = $this;
$installer->startSetup();
$installer->removeAttribute('catalog_product', 'customizableonly');
$installer->addAttribute('catalog_product', 'customizableonly', array(
'group' => 'General',
'input' => 'select',
'type' => 'int',
'label' => 'Customizable Only',
'source' => 'eav/entity_attribute_source_boolean',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'visible' => 1,
'required' => 0,
'visible_on_front' => 0,
'is_html_allowed_on_front' => 0,
'is_configurable' => 0,
'searchable' => 0,
'filterable' => 0,
'comparable' => 0,
'unique' => false,
'user_defined' => false,
'default' => 0,
'is_user_defined' => false,
'used_in_product_listing' => true
));
$this->endSetup();
Também tentei com $installer = new Mage_Catalog_Model_Resource_Eav_Mysql4_Setup('core_setup');
E então eu estou usando o valor do atributo em algum outro código. Mas eu sempre entendo null
. Eu descobri que, o atributo não é definido como um valor padrão. Quando abro um produto - o menu suspenso mostra No
, mas quando recebo seu valor no código, é null
. Se eu clicar no menu suspenso, basta definir No
e salvar o produto - tudo funciona.
Como superar isso?
Respostas:
Tente definir o valor padrão como string
ou vazio
Atualizar
Os valores padrão são adicionados quando você adiciona um novo produto a produtos antigos que não afetam.
Tente corrigir isso no gerenciamento de produtos com ação em massa
Dentro de gerenciar produtos, há uma ação chamada "Atualizar atributos". Selecione todos os produtos que você deseja atualizar, selecione Atualizar atributos e adicione todas as novas informações.
fonte
Você deve definir o valor para toda a entidade existente manualmente:
fonte: /programming/4906497/default-attribute-value-for-all-product-in-magento . Veja a resposta de Asrar Malik.
fonte
Eu tive o problema de que, com os trechos de código acima, um atributo select foi criado em vez de um atributo yes / no. Para consertar isso, eu tive que usar
ao invés de:
fonte
Também não foi possível adicionar um valor padrão 0 a um atributo sim / não.
Portanto, usei um evento para adicionar o valor padrão 0
Método:
fonte
Para adicionar atributo customizado yes / no ao módulo magento create como mostrado abaixo.
http://www.pearlbells.co.uk/how-to-add-custom-attribute-dropdown-to-category-section-magento/
fonte