Il s'agit d'un cas classique où la génération de code est votre ami. Arrêtez de les créer à la main et essayez d'utiliser le script gratuit et open source suivant (qui a également été intégré à l' n98-magerun
outil)
Par exemple, ce qui suit va dupliquer l'attribut de couleur des données d'exemple
$ 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);
Si vous utilisez la n98-magerun
version, ce serait
$ n98-magerun dev:setup:script:attribute catalog_product color
L'utilisation de la génération de code vous permettra d'accomplir votre travail plus rapidement et, avec le temps, vous commencerez à apprendre le format.
onClick
etonChange
dans les options d'attribut?Chaque élément du
value
tableau représente une option. Vous pouvez ajouter les étiquettes pour chaque vue de magasin si vous en avez plus comme ceci:Fondamentalement, c'est
store_id=>'Label for store'
la source
$installer = $this;
comme première ligne du script d'installation.backend
est l'équivalent de labackend_model
colonne dans leeav_attribute table
. Un attribut peut prendre en charge les modèles frontaux (qui sont en fait des blocs utilisés pour rendre le champ d'attribut dans le backend), les modèles source (pour les attributs déroulants et multisélectionnés. C'est la source des options) et le modèle backend. Vous pouvez utiliser la classe que vous définissez un modèle de backend pour effectuer des actions avant que la valeur d'attribut soit enregistrée ou après qu'elle soit chargée. Vous pouvez l'utiliser pour effectuer des validations supplémentaires ou pour modifier la valeur. Dans ce cas spécifique, le tableau que vous envoyez à partir du formulaire est sérialisé.Ajoutez un modèle source chaque fois que vous créez une liste déroulante de type d'attribut.
la source
essaye ça. J'ai ajouté tant d'attributs et de valeurs d'attribut via ce code et vous pouvez attribuer l'attribut à un ensemble d'attributs via ce code.
la source