2012-10-17 7 views
7

Yeni özellikler grubu, özellik kümesi ve öznitelikleri eklemek için modül kurulum komut dosyası kullanıyorum. Özellik kümesi, özellik grubu oluşturabilir ve gruba/gruba ürün ekleyebilirim. Ama is_filterable, is_visible, is_visible_on_front ve is_html_allowed_on_front parametreleri ayarlamak zor anlar yaşıyorum. Ben OFFER_TYPE bkzKurulum komut dosyasını kullanarak Magento'da özel ürün özellikleri ekleme

$installer->addAttribute('catalog_product', 'offer_type', array(
     'backend'  => '', 
     'frontend'  => '', 
     'class' => '', 
     'default'  => '', 
     'label' => 'Offer type', 
     'input' => 'text', 
     'type' => 'int', 
     'source'  => '', 
     'global'  => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE, 
     'visible'  => 1, 
     'required'  => 1, 
     'searchable' => 0, 
     'filterable' => 1, 
     'unique'  => 0, 
     'comparable' => 0, 
     'visible_on_front' => 1, 
     'is_html_allowed_on_front' => 1, 
     'user_defined' => 1, 
)); 

$installer->addAttributeToSet('catalog_product', $sSetId, $groupName, 'offer_type'); 

Magento için ve ($ sSetID) ayarlamak ve gruba ($ groupname) öznitelik eklenmeye. Ben magento admin UI (Catalog-> öznitelikler-> Manage Attributes) özniteliğine baktığımda, is_filterable, is_visible, is_visible_on_front ve is_html_allowed_on_front parametrelerinin No olarak ayarlandığını görüyorum, ancak çeşitli kombinasyonları denedim ancak şans denemedim. Magento CE 1.7.0.2 kullanıyorum. Kur dosyamda eksik olanlardan emin değilim. Bunun için http://blog.chapagain.com.np/magento-adding-attribute-from-mysql-setup-file/'u tekrar ekledim. Ben bir şey eksik miyim? Şimdiden teşekkürler.

cevap

7

Yükleyicinizi config.xml dosyasında doğru şekilde yapılandırdınız mı? Magento yükleyicileri için standart sınıf Mage_Eav_Model_Entity_Setup'dur, ancak ürünlerle uğraşırken, bunun yerine Mage_Catalog_Model_Resource_Setup'u kullanmanız gerekir. Neden? yöntemlerine _prepareValues() bakmak ve yetkili nitelikler nelerdir anlayacaksınız

iyi yükleyici sınıfının işaret etmek için almak (ürün standart eav_objects daha fazla seçeneğe sahip, tabloları eav_attribute ve catalog_eav_attribute karşılaştırırken olduğunu görebilir) bir özelliği eklerken _prepareValues() yöntemi yalnızca denir notu o ... sen gerekir öznitelik güncellemek istiyorsanız: standart bir Mage_Catalogconfig.xml bakmak ve modül için adapte:

<resources> 
    <catalog_setup> 
     <setup> 
      <module>Mage_Catalog</module> 
      <class>Mage_Catalog_Model_Resource_Setup</class><!-- that line !--> 
     </setup> 
    </catalog_setup> 
</resources> 

ps Tam seçenek adını kullanın ("is_visible" ve sadece "görünür" değil) ...

Başka kesmek sonra bu özellikleri eklemek olacaktır, ama çok güzel değil:

// adding atribute : 
// [...] 

//getting the new attribute with full informations 
$eavConfig = Mage::getSingleton('eav/config'); 
$installer->cleanCache(); 
$attribute = $eavConfig->getAttribute('catalog_product', $attributeCode); 
$attribute->addData(array(
    'is_visible' => 1 
)); 
$attribute->save() 
+2

Teşekkürler! Sorun çözüldü. – sukkad

+0

is_visible_on_front nasıl ayarlanır? AddAttribute çağrısında 1'e ayarlamama rağmen ('is_visible_on_front' => 1, DB/admin'de değiştirilmediğini göremiyorum. – sukkad

-2

Kullanım 'visible_on_front' => 1, çağrı addAttribute içinde.