2012-07-09 17 views
5

属性が割り当てられているセットから属性を削除するには、関数またはコードが必要です。Magento:属性セットから属性をプログラムで削除する

$setup->addAttributeToSet($entityTypeId, $setId, $groupId, $attributeId, $sortOrder=null) 

または属性を削除するには:

$setup->removeAttribute($entityTypeId, $code) 

が、属性は削除すべきではない私は、属性を割り当てるために、機能を知っています。 AttributeSet 'Default'(グループ 'General')でその属性を見ることはもはや不可能でなければなりません。

removeAttributeFromAttributeSet() 

またはSTH:

は、私のような任意の関数を見つけることができません。

$installer = $this; 
$installer->startSetup(); 

$attributeType = 'catalog_product'; 

$attribute_set_name = 'Default'; 

$attributeCode='my_attribute'; 

$setId = $installer->getAttributeSetId('catalog_product', $attribute_set_name); 

$attributeId=$installer->getAttributeId($attributeType, $attributeCode); 

$installer->deleteTableRow('eav/entity_attribute', 'attribute_id', $attributeId, 'attribute_set_id', $setId); 

$installer->endSetup(); 

答えて

9

のようにあなたは、あなたのセットアップスクリプト

<?php 
/** @var $this Mage_Eav_Model_Entity_Setup */ 
$this->startSetup(); 

$this->deleteTableRow(
    'eav/entity_attribute', 
    'attribute_id', 
    $this->getAttributeId('catalog_product', 'attribute_code_here'), 
    'attribute_set_id', 
    $this->getAttributeSetId('catalog_product', 'Default') 
); 

$this->endSetup(); 
+0

から感謝の属性を削除します – Marco

0

これは今私が使用する完全なコードで、ウィッヒは作品内でこのコードを試みることができます。以下は

$Attributes = array('accessories_size','accessories_type','apparel_type','author_artist','bag_luggage_type','bedding_pattern','bed_bath_type','books_music_type','camera_megapixels', 
'camera_type','coater','color','colors','cost','decor_type','ebizmarts_mark_visited','electronic_type','featured','fit','format','frame_style','gender','gendered','genre','homeware_style', 
'home_decor_type','impressions','is_sold','jewelry_type','length','lens_type','luggage_size','luggage_style','luggage_travel_style','make','manufacturer','material','model','necklace_length', 
'occasion','perfector','sample_item_1','sheet_size','shoe_size','shoe_type','size','sleeve_length','style'); 

$entityType = 'catalog_product'; 

foreach($Attributes as $index => $attrCode){ 

     $attributeId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode($entityType,$attrCode); // it return false when attribute not exist. 

     if($attributeId){ 
      Mage::getModel('catalog/product_attribute_api')->remove($attributeId);   
     } 
} 
0

//それは永久にあなたの属性を削除します。その

0

、この作品属性セット

<?php 
$installer = $this; 
$installer->startSetup(); 
$setup = new Mage_Eav_Model_Entity_Setup('core_setup'); 
$entityTypeId = $setup->getEntityTypeId('catalog_product'); 
$attributeId = $setup->getAttributeId('catalog_product', 'feature'); //feature is attribute code 
$attributeSetId = $setup->getAttributeSetId($entityTypeId, 'Default'); 
$installer->deleteTableRow('eav/entity_attribute', 'attribute_id', $attributeId, 'attribute_set_id', $attributeSetId);      
$installer->endSetup(); 
?> 
関連する問題