Это классический случай, когда генерация кода - ваш друг. Прекратите создавать их вручную и попробуйте использовать следующий бесплатный скрипт с открытым исходным кодом (который также был включен в n98-magerun
инструмент)
Например, следующее будет дублировать атрибут цвета образца данных
$ magento-create-setup.php color
//WARNING, non false value detected in is_used_for_price_rules. The setup resource migration scripts may not support this (per 1.7.0.1)
<?php
if(! ($this instanceof Mage_Catalog_Model_Resource_Setup) )
{
throw new Exception("Resource Class needs to inherit from " .
"Mage_Catalog_Model_Resource_Setup for this to work");
}
$attr = array (
'attribute_model' => NULL,
'backend' => '',
'type' => 'int',
'table' => '',
'frontend' => '',
'input' => 'select',
'label' => 'Color',
'frontend_class' => '',
'source' => '',
'required' => '0',
'user_defined' => '1',
'default' => '',
'unique' => '0',
'note' => '',
'input_renderer' => NULL,
'global' => '1',
'visible' => '1',
'searchable' => '1',
'filterable' => '1',
'comparable' => '1',
'visible_on_front' => '0',
'is_html_allowed_on_front' => '0',
'is_used_for_price_rules' => '1',
'filterable_in_search' => '1',
'used_in_product_listing' => '0',
'used_for_sort_by' => '0',
'is_configurable' => '1',
'apply_to' => 'simple',
'visible_in_advanced_search' => '1',
'position' => '1',
'wysiwyg_enabled' => '0',
'used_for_promo_rules' => '1',
'option' =>
array (
'values' =>
array (
0 => 'Green',
1 => 'Silver',
2 => 'Black',
3 => 'Blue',
4 => 'Red',
5 => 'Pink',
6 => 'Magenta',
7 => 'Brown',
8 => 'White',
9 => 'Gray',
),
),
);
$this->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'color', $attr);
Если вы используете n98-magerun
версию, это было бы
$ n98-magerun dev:setup:script:attribute catalog_product color
Использование генерации кода позволит вам быстрее выполнить свою работу, и со временем вы начнете изучать формат.
onClick
иonChange
в параметрах для атрибута?Каждый элемент в
value
массиве представляет опцию. Вы можете добавить метки для каждого вида магазина, если вам больше нравится это:В основном это
store_id=>'Label for store'
источник
$installer = $this;
в качестве первой строки в установочном скрипте.backend
является эквивалентомbackend_model
столбца вeav_attribute table
. Атрибут может поддерживать модели внешнего интерфейса (которые на самом деле являются блоками, используемыми для рендеринга поля атрибута в бэкэнде), исходные модели (для раскрывающихся списков и атрибутов множественного выбора. Это источник параметров) и модель бэкэнда. Вы можете использовать класс, который вы задали для внутренней модели, для выполнения действий до сохранения значения атрибута или после его загрузки. Вы можете использовать это для выполнения дополнительных проверок или для изменения значения. В этом конкретном случае массив, который вы отправляете из формы, сериализуется.Добавляйте исходную модель всякий раз, когда вы создаете раскрывающийся список типов атрибутов.
источник
попробуй это. Я добавил так много атрибутов и значений атрибутов через этот код, и вы можете назначить атрибут для набора атрибутов через этот код.
источник