Magento

[Magento] url d'une action dans le tpl

$url = $this->getUrl('MODULE/CONTROLLER/ACTION');

[Magento] Obtenir le nom de l'action courante dans le tpl

$_action = $this->getRequest()->getActionName();

[Magento] Créer un attribut

ici nous allons voir comment créer un nouvel attribut (de type texte) par code, pour cela on va utiliser le mysql4-install (ou -upgrade, en fonction de la situation) du dossier setup de votre module.

voici le code pour ajouter un nouvel attribut :

$installer = $this;
/* @var $installer Mage_Eav_Model_Entity_Setup */

$installer->startSetup();

$params = array(
    'type'              => 'text',
    'backend'           => '',
    'frontend'          => '',
    'label'             => 'Nom de l attribut',
    'input'             => 'text',
    'class'             => '',
    'source'            => '',
    'global'            => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
    'visible'           => true,
    'required'          => false,
    'user_defined'      => true,
    'default'           => '',
    'searchable'        => false,
    'filterable'        => false,
    'comparable'        => false,
    'visible_on_front'  => false,
    'visible_in_advanced_search'=>false,
    'unique'            => false,
    'apply_to'          => '',
    'is_configurable'   => false,
);

$installer->addAttribute('catalog_product', 'IDENTIFIANT_DE_L_ATTRIBUT', $params);

$installer->endSetup();

dans le cas d'un upgrade, pensez à mettre à jour la version du module dans le config.xml du module.

[Magento] Comment ajouter un AttributeSet

Un snippet pour montrer comment ajouter un nouvel AttributeSet (groupe d’attributs) automatiquement :

//on vérifie qu'il n'existe pas déjà :
$attributeSetId = Mage::getModel('eav/entity_attribute_set')
	->getCollection()
	->addFilter('attribute_set_name', 'LeNomDeMonAttributeSet')
	->getLastItem()
	->getId();

//si pas trouvé, on l'ajoute :
if(!$attributeSetId) {
	$attributeSetId = Mage::getModel('eav/entity_attribute_set')
		->setEntityTypeId(Mage::getModel('eav/entity')->setType('catalog_product')->getTypeId())
		->setAttributeSetName('LeNomDeMonAttributeSet')
		->save()
		->initFromSkeleton(4) // le 4 c'est pour l'attributeSet Default.
		->save()
		->getId();
}

initFromSkeleton(4) permet de le créer à partir du « template » de l’attributeSet par défaut, on peut mettre autre chose, du moment où c’est un id d’attributeSet valide

[Magento] Sélectionner tous les produits d’un AttributeSet

un snippet pour montrer comment sélectionner les produits d’un attribute set donné.
pas besoin de connaitre son id, on fera avec le nom :

//trouver l'id a partir du nom :
$set_id = Mage::getModel('eav/entity_attribute_set')
                    ->getCollection()
                    ->addFilter('attribute_set_name', 'AttrbuteSetName')
                    ->getLastItem()
                    ->getId();

//selectionner les produits :
$products = Mage::getModel('catalog/product')
	        	->getCollection()
	        	->addFieldToFilter('attribute_set_id', $set_id)
	        	->getItems();

et là, on a un tableau de produits appartenant au groupe « AttrbuteSetName ».

Tags:

Pages

Subscribe to RSS - Magento