Atributos estáticos são atributos armazenados na tabela principal de uma entidade - para produtos de catálogo catalog_product_entity,. Por exemplo, o atributo skude produtos de catálogo é definido como static. Os atributos estáticos são sempre carregados pelo Magento e são úteis especialmente se você deseja recuperar informações rapidamente ou otimizar a pesquisa de dados. Uma desvantagem desse tipo de atributo é que você não pode ter valores específicos da loja, o que é uma das vantagens do sistema Magento EAV.
Mesmo se você definir um atributo como static, o Magento não o tratará como tal, a menos que você tenha uma coluna correspondente na tabela principal de entidades. Se a coluna não estiver lá, o Magento tratará o atributo como varcharpadrão e o procurará na tabela varchar EAV para o modelo - para produtos catalog_product_entity_varchar,.
Se você deseja usar atributos estáticos em seu projeto, é necessário fazer duas coisas nos scripts de instalação / atualização. Primeiro, você precisa adicionar uma coluna à tabela de entidades principal, com a definição de coluna correta. Em seguida, você precisa instalar seu atributo usando o addAttribute()método e definir seu atributo como static. Consulte os scripts de instalação Mage_Catalogpara entender melhor como as coisas funcionam neste caso.
Se você planeja executar consultas frequentemente com base em seus atributos estáticos personalizados, considere adicionar um índice na nova coluna para acelerar a busca de dados.
@ Marius, este é apenas um exemplo de como adicionar um atributo estático.
Roman Snitko
Suponha que você adicione a coluna diretamente ao banco de dados via MySQL. Como você pode alterar o TYPE de um atributo de produto existente para STATIC? Pergunta: poderíamos apenas atualizar type = static em uma determinada tabela e funcionaria?
catalog_product_entity
e, se não estiver, voltará ao check-in catalog_product_entity_varchar.Aqui está a amostra do núcleo:
fonte