getModel() une méthode importante de magento
octobre 27, 2009 3 CommentairesCertaines méthodes de magento sont importantes comme getModel(), getSingleton(), getData(). Nous allons voir dans ce tutoriel la méthode getModel () avec comme paramètre catalog/product qui permet d’instancier la classe product.php. getModel() peut être instancier avec d’autres paramètres.
getModel() pour instancier une classe Model, Mage::getModel(‘catalog/product’);
Pour instancier la classe vous pouvez créer une variable qui stockera l’instance comme ceci :
$produit= Mage::getModel(’catalog/product’);
Ce code instancie la classe product qui se trouve dans
=> app\code\core\Mage\Catalog\Model\Product.php
Vous avez accès à toutes les méthodes et variables de la classe Product.php ainsi que toutes les méthodes et variables étendues par la classe product, comme abstract.php.
Avec netbeans vous pouvez lister les méthodes d’une classe et ouvrir rapidement une classe étendue.
Vous pouvez également lister toutes les méthodes pour les afficher dans la page html avec des fonctions php comme ceci :
foreach (get_class_methods(get_class($this)) as $touteMethod) { echo $touteMethod ."<br>"; }

Une partie des méthodes générée par le code
Pour utiliser ces méthodes il faut renseigner le produit sur lequel vous travaillez et récupérer l’id du produit.
$Product->load (12); //charge le produit avec id 12
Utiliser les méthodes de la classe product.php
Vous pouvez maintenant utiliser les méthodes présentes dans la classe product.php comme getName(), getPrice() ou d’autres :
$Product= Mage::getModel('catalog/product'); $Product->load (180); //charge le produit avec une id de 180 echo "nom =". $Product->getName() ."<br>"; echo "prix =". $Product->getPrice() ."<br>"; echo "ID de la categorie=". $Product->getCategoryId() ."<br>"; echo "statut=". $Product->getStatus() ."<br>"
Utiliser les méthodes de la classe abstract.php
Vous pouvez également utiliser les méthodes de la classe Abstract
app\code\core\Mage\Catalog\Model\Abstract.phpecho "store=". $Product->getStore();
affichera les informations sur le store
=> statut=3,default,1,1,French,0,1,EUR,fr_FR,http://localhost/magento/?___store=default
Utiliser getModel avec d’autres paramètres
echo $_product->getShortDescription(); echo $_product->getDescription(); echo $_product->getName(); echo $_product->getUrlPath(); echo $_product->getPrice(); echo $_product->getSpecialPrice(); echo $_product->getProductUrl(); // url du produit echo $_product->getImageUrl(); echo $_product->getSmallImageUrl(); echo $_product->getThumbnailUrl();
Afficher le contenu de getModel()
Vous pouvez afficher les données :
dans le fichier view.phtml entrez ce code :
$Product = Mage::getModel(‘catalog/product’);
$Product->load (174); // 174 ou id d’un de vos produits
print_r($Product);
Affiche les éléments de votre produit. Un des plus important et le tableau => [_data:protected] => Array
Corresponds à la méthode getData() importante pour récupérer des éléments de votre objet. Nous verrons dans un prochain tutoriel comment utiliser getData().
Vous pouvez également utiliser getModel() avec d’autres paramètres comme :
Mage::getSingleton(‘checkout/type_onepage’)
$categories = Mage::getModel( ‘catalog/category’ )
$categories = Mage::getModel( ‘catalog/layer’ ) …

Bonjour,
je recherche un $Product->getStatus() qui renvoie autre chose que 1, donc qui fonctionne.
Merci
Bonjour,
Status 1 = actif il me semble. Que cherche tu as afficher ?
Hello,
J’aimerai récupérer les attributs d’un produit configurable.
J’ai procédé de la même manière que toi pour chargé le bon produit.
Puis j’ai voulu faire appel à la fonction:
$Product->getAttributeText(‘attribut_couleur’)
Mais ça ne fonctionne pas comme je le voudrai!
J’aimerai afficher toutes les valeurs d’attribut possible pour « couleur ».
Comment dois-je faire?
Je code dans un block perso car je suis en train de créer un module.
Merci