Frage

Ich stehe mit einem Problem mit dem Erstellen von Attribut- und Attribut -Set mit dem Installationsproskript.Attribute -Set und dem Attribut erstellt. Das Problem ist jedoch, dass Attribute für alle Attributsets zugewiesen werden, anstatt nur ein benutzerdefiniertes Erstellen mit dem Installationskript zu erstellen.

Im Folgenden finden Sie mein Installationskript:

<?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();
?>

Ich möchte benutzerdefinierte Attribute mit Attributsatzname "Produkt -Bundler -Paket" erstellen und alle Attribut nur diesem Attributsatz zuweisen.

Bitte helfen Sie mir, es zu lösen.

War es hilfreich?

Lösung

Nicht viel klar, was Sie wirklich tun möchten. Auf jeden Fall ist dies das Skript, um ein Produktattribut zu erstellen, nachdem Sie den Attributsatz erstellt haben.

<?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
        ) );

HINWEIS: Weitere Informationen finden Sie auf http://www.magentocommerce.com/wiki/5_-_modules_and_development/catalog/programmatic_adding_attributes_and_attribute_sets

Andere Tipps

Grundsätzlich genau wie die Antwort von @sukeshini, aber Sie müssen gehen group undefiniert in den Attributendaten und geben Sie an user_defined wie true.

Dann wird es nicht zu Attributsätzen hinzugefügt. Afaik Sie können das Attributsatz beim Erstellen des Attributs in dieser Methode nicht definieren. Sie können das Attribut zu einem Attribut -Set hinzufügen, nachdem Sie es im Upgrade- oder Setup -Skript erstellt haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top