Objectifs
L’acronyme CRUD pour Create, Read, Update et Delete désigne les quatre opérations basiques
relatives au stockage d’une information en base de données.
Sur la plateforme Magento, les classes modèles se chargent de ce type d’opérations et nous verrons
ici comment utiliser ces méthodes sur un produit.
Exemples
Les portions de code suivantes peuvent être indifféremment testées dans un contrôleur, bloc, helper
ou même template de Magento (ici 1.3.2.1).
Charger la collection des produits
// récupérer le modèle de données Product du module Mage/Catalog $model = Mage::getModel('catalog/product'); // charger la collection de produits $products = $model->getCollection(); // inspecter l'objet (Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection) var_dump($products); // parcourir les produits foreach ($products as $product) { // inspecter le produit (Mage_Catalog_Model_Product) var_dump($product); }
Comme nous avons pu le préciser dans le billet Manipuler les collections d’objets Magento, les produits chargés via une collection ne comportent pas tous leurs attributs.
Charger un produit
// charger un produit par son identifiant $product = Mage::getModel('catalog/product')->load(16); // afficher son nom de trois manières différentes echo $product->name; echo $product->getName(); echo $product->getData('name'); // inspecter le produit var_dump($product);
Créer un produit
// créer un produit vide $product = Mage::getModel('catalog/product'); // préparer les attributs $data = array( 'entity_type_id' => '4', // type produit 'attribute_set_id' => '4', // groupe d'attributs par défaut 'type_id' => 'simple', // type de produit 'name' => 'mon super produit', // nom du produit 'sku' => 'super-produit', // identifiant unique 'weight' => '1.5', // poids 'price' => '49.99', // prix 'status' => '1', // activé 'tax_class_id' => '0', // pas de taxe appliquée 'visibility' => '4', // visible dans le catalogue et la recherche 'short_description' => '<p>ma présentation courte</p>', 'description' => '<p>ma présentation longue</p>' // autres attributs, etc ); // affecter les attributs au nouveau produit $product->setData($data); // sauver le nouveau produit (insère en base de données) $product->save();
Modifier un produit
// charger un produit par son identifiant $product = Mage::getModel('catalog/product')->load(18); // changer le nom via un modificateur $product->setName('mon nouveau nom'); // sauver le produit (met à jour en base de données) $product->save(); // changer plusieurs attributs $data = $product->getData(); $data['weight'] = '2.5'; $data['price'] = '29.99'; $product->setData($data); // sauver le produit (met à jour en base de données) $product->save();
Supprimer un produit
// charger un produit par son identifiant $product = Mage::getModel('catalog/product')->load(18); // supprimer le produit $product->delete();
Conclusion
Notre brève présentation des opérations CRUD sur un produit Magento est désormais terminée, notons au passage que ces méthodes sont utilisables sur tous les modèles Magento (catégories, clients, etc).
Magento
Joomla!
Zend Fr.
Ubuntu



![Validate my RSS feed [Valid RSS]](/wp-content/themes/libre-a-vous/images/rss-valid.png)