2010-08-19 3 views

Antwort

3

Ich tat dies vor 6 Monaten, ich habe den Code nicht mehr, aber ich weiß, dass Sie die initFromSkeleton() Methode auf Ihrem Attributsatz verwenden müssen. Sie können den Magento-Code nach Anrufen zu dieser Funktion durchsuchen, es gibt sehr wenige Anrufe (nur einen vielleicht). Es zeigt Ihnen seine Verwendung.

EDIT: Ich erinnere mich, ich hatte das gleiche Problem, über das Sie sprechen, und ich habe darüber per E-Mail. Hier ist die Verwendung, die ich empfohlen wurde:

$attrSet = Mage::getModel('eav/entity_attribute_set'); 
$attrSet->setAttributeSetName('MyAttributeSet'); 
$attrSet->setEntityTypeId(4);//You can look into the db what '4' corresponds to, I think it is for products. 
$attrSet->initFromSkeleton($attrSetId); 
$attrSet->save(); 

Die Initialisierung wird vor dem Speichern durchgeführt.

+0

Heres die Sache aber im Admin-Bereich, wenn Sie über den Link für das Standardattribut schweben gesetzt, zeigt die ID als 4. Wenn i Mage nennen :: getModel ('eav/entity_attribute_set ') \t \t \t \t -> laden ($ setName,' attribute_set_name '); Die Attribut-ID wird als 1 zurückgegeben. Beim Aufruf von initFromSkeleton lautet die Standardgruppe also 4 und nicht 1, also sind keine Attribute zugeordnet. – Bill

3
  // create attribute set 
      $entityTypeId = Mage::getModel('eav/entity') 
       ->setType('catalog_product') 
       ->getTypeId(); // 4 - Default 

      $newSet = Mage::getModel('eav/entity_attribute_set'); 
      $newSet->setEntityTypeId($entityTypeId); 
      $newSet->setAttributeSetName(self::ATTRIBUTE_SET_NAME); 
      $newSet->save(); 

      $newSet->initFromSkeleton($entityTypeId); 
      $newSet->save(); 
0

hier:

$entityTypeId = Mage::getModel('eav/entity') 
    ->setType('catalog_product') // This can be any eav_entity_type code 
    ->getTypeId(); 
$attrSet = Mage::getModel('eav/entity_attribute_set'); 

$attrSetCollection = $attrSet->getCollection(); 
$attrSetCollection 
    ->addFieldToFilter('entity_type_id', array('eq' => $entityTypeId)) 
    ->addFieldToFilter('attribute_set_name', array('eq' => 'Default')); // This can be any attribute set you might want to clone 

$defaultAttrSet = $attrSetCollection->getFirstItem(); 
$defaultAttrSetId = $defaultAttrSet->getAttributeSetId(); 

$attrSet->setAttributeSetName('Assinaturas'); // This is the new attribute set name 
$attrSet->setEntityTypeId($entityTypeId); 
$attrSet->initFromSkeleton($defaultAttrSetId); 
$attrSet->save(); 
1

Dies ist, was für mich gearbeitet.

$i_duplicate_attribut_set_id = 10; // ID of Attribut-Set you want to duplicate 
$object = new Mage_Catalog_Model_Product_Attribute_Set_Api(); 
$object->create('YOUR_ATTRIBUT_SET_NAME', $i_duplicate_attribut_set_id); 

Alex

+0

Beste Antwort imo –

Verwandte Themen