Para conjunto de opciones de atributo dentro de selección múltiple script de instalación
-
16-10-2019 - |
Pregunta
En uno de los módulos que estamos desarrollando se requiere para crear un atributo de selección múltiple con varias opciones. Es muy importante que estas opciones se les da un cierto orden por defecto.
Este es el código actual para añadir el atributo:
$installer->addAttribute('catalog_product', 'tariffplan_sms_slider', array(
'attribute_set' => 'Randomattributeset',
'group' => 'Sample',
'type' => 'varchar',
'default' => 0,
'required' => false,
'visible' => true,
'backend' => 'eav/entity_attribute_backend_array',
'frontend' => '',
'label' => 'Random label',
'note' => '',
'input' => 'multiselect',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
'option' => array ('value' =>
array(
'one' => array("Low"),
'two' => array("Medium"),
'three' => array('High'),
'four' => array('Unlimited')
)
),
'visible' => true,
'required' => false,
'user_defined' => true,
'default' => 0,
'visible_on_front' => false,
'used_in_product_listing' => false,
'unique' => false
));
Como se puede ver que estoy dando una serie de opciones para este atributo que se va a crear. Además de eso me gustaría establecer el orden de (ver campos de entrada Posición en el back-end) de cada opción .
He intentado lo siguiente a continuación, pero no está funcionando:
'option' => array (
'value' => array(
'one' => array("Don't care"),
'two' => array("Low"),
'three' => array('High'),
'four' => array('Unlimited')
),
'order' => array(
'one' => 0,
'two' => 1,
'three' => 2,
'four' => 3
)
),
Versión: Magento ver. 1.7.0.1
¿Alguien tiene una idea?
Solución
Fijo yo mismo mirando el addAttributeOption()
método Mage_Eav_Model_Entity_Setup
interior:
Resultados:
$installer->addAttribute('catalog_product', 'tariffplan_sms_slider', array(
'attribute_set' => 'Randomattributeset',
'group' => 'Sample',
'type' => 'varchar',
'default' => 0,
'required' => false,
'visible' => true,
'backend' => 'eav/entity_attribute_backend_array',
'frontend' => '',
'label' => 'Random label',
'note' => '',
'input' => 'multiselect',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
'option' => array (
'values' => array(
'1' => 'Low',
'2' => 'Medium',
'3' => 'High',
'4' => 'Unlimited'
)
),
'visible' => true,
'required' => false,
'user_defined' => true,
'default' => 0,
'visible_on_front' => false,
'used_in_product_listing' => false,
'unique' => false
));
Para los que no lo ve de inmediato que, básicamente, sólo tenía que cambiar el valor que le das a la tecla "opción" de:
'option' => array ('value' =>
array(
'one' => array("Low"),
'two' => array("Medium"),
'three' => array('High'),
'four' => array('Unlimited')
)
),
A (ver cómo valor ito transformó en valores ):
'option' => array (
'values' => array(
'1' => 'Low',
'2' => 'Medium',
'3' => 'High',
'4' => 'Unlimited'
)
),