Atributos estáticos son atributos almacenados en la tabla principal de una entidad - para los productos del catálogo, catalog_product_entity. Por ejemplo, el atributo skude productos de catálogo se define como static. Magento siempre carga los atributos estáticos, y son útiles especialmente si desea recuperar información rápidamente u optimizar la búsqueda de datos. Un inconveniente de este tipo de atributos es que no puede tener valores específicos de la tienda, que es una de las ventajas del sistema Magento EAV.
Incluso si define un atributo como static, Magento no lo tratará como tal a menos que tenga una columna correspondiente en la tabla de entidades principal. Si la columna no está ahí, Magento trata el atributo como varcharpor defecto y lo busca en la tabla varchar EAV para el modelo - para los productos, catalog_product_entity_varchar.
Si desea utilizar atributos estáticos en su proyecto, debe hacer 2 cosas en sus scripts de instalación / actualización. Primero, debe agregar una columna a la tabla de entidad principal, con la definición de columna correcta. A continuación, debe instalar su atributo utilizando el addAttribute()método y definir su atributo como static. Consulte los scripts de instalación de Mage_Catalogpara comprender mejor cómo funcionan las cosas en este caso.
Si planea ejecutar consultas a menudo basadas en sus atributos estáticos personalizados, considere agregar un índice en la nueva columna para acelerar la recuperación de datos.
category_ids es estático. no está en la tabla catalog_product_entity_varchar.
ahnbizcad
resumen: estático significa que el valor es una columna catalog_product_entityy, si no lo está, volverá a registrarse en catalog_product_entity_varchar.
ahnbizcad
1
Aquí está la muestra del núcleo:
$installer->run("
ALTER TABLE `{$installer->getTable('catalog/product')}` ADD `has_options` SMALLINT(1) NOT NULL DEFAULT '0';
");
$installer->addAttribute('catalog_product','has_options', array('type'=>'static','visible'=>false,'default'=>false));
@ Mario esto es solo una muestra de cómo agregar un atributo estático.
Roman Snitko
Suponga que agrega la columna directamente a la base de datos a través de MySQL. ¿Cómo podría alterar el TIPO de un atributo de producto existente a STATIC? Pregunta: ¿podríamos actualizar type = static en una tabla determinada y funcionaría?
catalog_product_entity
y, si no lo está, volverá a registrarse en catalog_product_entity_varchar.Aquí está la muestra del núcleo:
fuente