Jest to klasyczny przypadek, w którym generowanie kodu jest twoim przyjacielem. Przestań tworzyć je ręcznie i spróbuj użyć następującego darmowego skryptu typu open source (który również został włączony do n98-magerun
narzędzia)
Na przykład następujące polecenie powieli atrybut koloru przykładowych danych
$ 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);
Jeśli używasz n98-magerun
wersji, byłoby to możliwe
$ n98-magerun dev:setup:script:attribute catalog_product color
Korzystanie z generowania kodu pozwoli Ci szybciej wykonać zadanie, a wraz z upływem czasu zaczniesz uczyć się formatu.
onClick
iwonChange
opcjach atrybutu?Każdy element w
value
tablicy reprezentuje opcję. Możesz dodać etykiety do każdego widoku sklepu, jeśli masz więcej takich:Zasadniczo to jest
store_id=>'Label for store'
źródło
$installer = $this;
jako pierwszy wiersz skryptu instalatora.backend
jest odpowiednikiembackend_model
kolumny weav_attribute table
. Atrybut może obsługiwać modele interfejsu użytkownika (które w rzeczywistości są blokami używanymi do renderowania pola atrybutu w zapleczu), modele źródłowe (dla atrybutów rozwijanych i wielokrotnego wyboru. To jest źródło opcji) i model zaplecza. Możesz użyć klasy, którą ustawiłeś model zaplecza, do wykonywania działań przed zapisaniem wartości atrybutu lub po załadowaniu. Możesz użyć tego do przeprowadzenia dodatkowych weryfikacji lub do zmiany wartości. W tym konkretnym przypadku tablica wysyłana z formularza jest serializowana.Dodaj model źródłowy za każdym razem, gdy tworzysz menu rozwijane typu atrybutu.
źródło
Spróbuj tego. Dodałem tak wiele atrybutów i wartości atrybutów za pomocą tego kodu i możesz przypisać atrybut do zestawu atrybutów za pomocą tego kodu.
źródło