0

インストーラー スクリプトを使用した属性および属性セットの作成に関する問題に直面しています。

以下は私のインストーラースクリプトです:

<?php
$installer = $this;
$installer->startSetup();
try{
$sNewSetName = 'Product Bundler Package';
$iCatalogProductEntityTypeId = (int) $installer->getEntityTypeId('catalog_product');

$oAttributeset = Mage::getModel('eav/entity_attribute_set')
->setEntityTypeId($iCatalogProductEntityTypeId)
->setAttributeSetName($sNewSetName);

if ($oAttributeset->validate()) {
$oAttributeset
    ->save()
    ->initFromSkeleton($installer->getAttributeSetId('catalog_product', 'Default'))
    ->save();
 }
else {
   Mage::log('Attributeset with name ' . $sNewSetName . ' already exists.');
   }
  }
  catch(Exception $ex){
 Mage::log('Attributeset with name ' . $sNewSetName . ' already exists.');

}


$installer->addAttributeGroup('catalog_product', 'Product Bundler Package', 'Bundled Package Data', 1000);

$data1= array (
    'attribute_set' =>  'Product Bundler Package',
    'group' => 'Bundled Package Data',
    'label'    => 'Preset1 name',
    'visible'     => true,
    'type'     => 'varchar', 
    'input'    => 'text',
    'system'   => true,
    'required' => false,
    'user_defined' => 1, 
);

$installer->addAttribute('catalog_product','bundle_preset1_name',$data1);

  $data2= array (
    'attribute_set' =>  'Product Bundler Package',
    'group'    => 'Bundled Package Data',
    'label'    => 'Preset2 name',
    'visible'  => true,
    'type'     => 'varchar', 
    'input'    => 'text',
    'system'   => true,
    'required' => false,
    'user_defined' => 1, 
);
$installer->addAttribute('catalog_product','bundle_preset2_name',$data2);

$data3= array (
    'attribute_set' =>  'Product Bundler Package',
    'group' => 'Bundled Package Data',
    'label'    => 'Preset3 name',
    'visible'     => true,
    'type'     => 'varchar', 
    'input'    => 'text',
    'system'   => true,
    'required' => false,
    'user_defined' => 1, 
);
$installer->addAttribute('catalog_product','bundle_preset3_name',$data3);

$data4 = array (
    'attribute_set' =>  'Product Bundler Package',
    'group' => 'Bundled Package Data',
    'label'    => 'Preset4 name',
    'visible'     => true,
    'type'     => 'varchar', 
    'input'    => 'text',
    'system'   => true,
    'required' => false,
    'user_defined' => 1, 
);
   $attribute =  $installer->addAttribute('catalog_product','bundle_preset4_name',$data4);


$installer->endSetup();
 ?>

属性セット名が「Product Bundler Package」のカスタム属性を作成し、すべての属性をその属性セットのみに割り当てたいと考えています。

解決するのを手伝ってください。

4

1 に答える 1

0

$installer->endSetUp(); の前に次のコードを追加できます。

/*delete the group from default attribute set in the end of the script */
$resource = Mage::getSingleton('core/resource');
$write = $resource->getConnection('write');
$groupTable = $installer->getTable('eav_attribute_group');
$defaultSetId = $installer->getDefaultAttributeSetId($iCatalogProductEntityTypeId);
$groupNameToRemove = 'Bundled Package Data';
$write->query("Delete from $groupTable where attribute_set_id=$defaultSetId and attribute_group_name='$groupNameToRemove'");
于 2013-11-10T11:57:21.947 に答える