nov 13

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”.

Tagged with:
preload preload preload