Cercando in internet si trovano alcuni spunti a come creare dinamicamente attraverso le api Magento un nuovo set di attributi.
Dopo una serie di frustrazioni dovute alla non comparsa del nuovo set o alla mancata copia del set di default sono arrivato al seguente codice:
function createNewAttributeSet($name, $entityTypeId, $skeletonId) { $modelSet = Mage::getModel('eav/entity_attribute_set') ->setEntityTypeId($entityTypeId) ->setAttributeSetName($name); $modelSet->save(); $modelSet->initFromSkeleton($skeletonId)->save(); } $entityTypeId = Mage::getModel('eav/entity') ->setType('catalog_product') ->getTypeId(); $attributeSet = Mage::getResourceModel('eav/entity_attribute_set_collection') ->setEntityTypeFilter($entityTypeId) ->addFilter('attribute_set_name', 'Default') ->getLastItem(); createNewAttributeSet("nome del set", $entityTypeId, $attributeSet);
La funzione createNewAttributeSet crea un nuovo set generico in relazione ad i parametri in ingresso. $entityTypeId rappresenta il tipo di entità a cui si riferisce il gruppo mentre $skeletonId rappresenta il “modello” di default da cui partire.
Il blocco successivo di codice si occupa del recupero dei dati impostando i tipi che riguardano gli oggetti catalog/product e prendendo come base il set di nome “Default”.
