Frage

In einem der Module, die wir entwickeln, müssen wir ein Multi-Select-Attribut mit mehreren Optionen erstellen. Es ist sehr wichtig, dass diese Optionen standardmäßig eine bestimmte Bestellung erhalten.

Dies ist der aktuelle Code zum Hinzufügen des Attributs:

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

Wie Sie sehen, gebe ich eine Reihe von Optionen für dieses Attribut, das erstellt wird. Darüber hinaus möchte ich die Bestellung aufstellen (Siehe Positionseingangsfelder im Backend) jeder Option.

Ich habe unten Folgendes ausprobiert, aber es funktioniert nicht:

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

Ausführung: Magento Ver. 1.7.0.1

Hat jemand eine Idee?

War es hilfreich?

Lösung

Es wurde es selbst behoben, indem ich mir das ansah addAttributeOption() Methode im Inneren Mage_Eav_Model_Entity_Setup:

Ergebnis:

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

Für diejenigen, die es nicht sofort sehen, mussten Sie im Grunde nur den Wert ändern, den Sie der "Option" -Taste geben:

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

Zu sehen, wie Wert ITO in Werte):

'option'            => array (
                            'values' => array(
                                '1' => 'Low',
                                '2' => 'Medium',
                                '3' => 'High',
                                '4' => 'Unlimited'
                            )
                        ),
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top