question d'attribut produit avec jeu d'attributs en utilisant un script d'installation
-
16-10-2019 - |
Question
Je suis face à un problème en ce qui concerne la création d'attribut et jeu d'attributs à l'aide set d'installation de script.attribute et l'attribut est créé, mais le problème est les attributs sont assignés à tous ensemble d'attributs au lieu de seulement un sur mesure la création avec le script d'installation.
suivant est mon script d'installation:
<?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();
?>
Je veux créer des attributs personnalisés avec le nom de jeu d'attributs « Package produit Bundler » et attribuer tous les attributs à cet ensemble d'attributs uniquement.
aide Veuillez me résoudre.
La solution
Pas grand-chose clairement ce que vous voulez vraiment faire. Quoi qu'il en soit c'est le script pour créer un attribut de produit après avoir créé le jeu d'attributs.
<?php
$th = new Mage_Catalog_Model_Resource_Setup();
$th->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'your_custom_attribute_code', array(
'group' => 'Prices',
'type' => 'text',
'attribute_set' => 'Default', // Your custom Attribute set
'backend' => '',
'frontend' => '',
'label' => 'My Custom Attribute',
'input' => 'text',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'visible' => true,
'required' => false,
'user_defined' => true,
'default' => '1',
'searchable' => false,
'filterable' => true,
'comparable' => false,
'visible_on_front' => true,
'visible_in_advanced_search' => true,
'used_in_product_listing' => true,
'unique' => false,
'apply_to' => 'simple', // Apply to simple product type
) );
Note: Pour plus d'information s'il vous plaît consulter http://www.magentocommerce.com/wiki/5_- _modules_and_development / catalogue / programmatically_adding_attributes_and_attribute_sets
Autres conseils
En fait comme réponse par @Sukeshini mais vous devez laisser group
non défini dans les données d'attributs et spécifiez user_defined
comme true
.
Ensuite, il ne sera pas ajouté à des ensembles d'attributs. Autant que je sache, vous ne pouvez pas définir l'ensemble d'attributs lors de la création de l'attribut dans cette méthode. Vous pouvez ajouter l'attribut à un ensemble d'attributs après l'avoir créé dans le script de mise à niveau ou la configuration.