Установить порядок параметров атрибута Multielect

magento.stackexchange https://magento.stackexchange.com/questions/840

  •  16-10-2019
  •  | 
  •  

Вопрос

В одном из модулей, которые мы разрабатываем, нам нужны для создания многопользовательского атрибута с несколькими вариантами. Очень важно, чтобы эти варианты получали определенный заказ по умолчанию.

Это текущий код для добавления атрибута:

$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
));

Как вы можете видеть, я даю множество вариантов для этого атрибута, который будет создан. Кроме того, я хотел бы установить заказ (См. Положения ввода позиции в бэкэнд) каждого варианта.

Я попробовал следующее ниже, но это не работает:

 '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
                            )
                        ),

Версия: Magento ver. 1.7.0.1

У кого -нибудь есть идея?

Это было полезно?

Решение

Сам поправил это, глядя на addAttributeOption() Метод внутри Mage_Eav_Model_Entity_Setup:

Результат:

$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
));

Для тех, кто не видит этого сразу же, вам в основном нужно было изменить значение, которое вы даете на ключ «опция» с:

'option'            => array ('value' => 
                            array(
                                'one' => array("Low"),
                                'two' => array("Medium"),
                                'three' => array('High'),
                                'four' => array('Unlimited')
                            )
                        ),

К (посмотри, как ценность изменил ITO в ценности):

'option'            => array (
                            'values' => array(
                                '1' => 'Low',
                                '2' => 'Medium',
                                '3' => 'High',
                                '4' => 'Unlimited'
                            )
                        ),
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top