Voici un petit florilège de code PHP qui m’a été utile pour le développement d’application externe en relation avec Magento à partir de la v1.7. Avant j’utilisais l’API SOAP qui n’est pas complète et très lente !
Charger Magento à l’extérieur
// Chemin de Magento
require_once 'ton/chemin/app/Mage.php';
umask(0);
// Chargement en mode admin (backoffice)
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
getBaseUrl – Lien de Magento
// http://example.com/
echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
// http://example.com/js/
echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS);
// http://example.com/index.php/
echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
// http://example.com/media/
echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
// http://example.com/skin/
echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);
Récupérer l’URL courante dans Magento
echo Mage::helper('core/url')->getCurrentUrl();
Charger un produit avec l’id
$_product = Mage::getModel('catalog/product')->load($id);
$_product = Mage::getModel('catalog/product')->load(128);
Charger un produit avec un attribut
$_product = Mage::getModel('catalog/product')->loadByAttribute('sku','MASUPERREFERENCE');
Récupérer les données du produit
var_dump($_product->getData());
// D'autres exemples
// Type du produit (simple, grouped, configurable)
echo $_product->getTypeId();
// Nom du produit
echo $_product->getName();
// Id de l'attribut marque
echo $_product->getManufacturer();
Récupérer les attributs personnalisés du produit
echo $_product->getShippingChronopost();
// "votre_attribut_custom"
echo $_product->getVotreAttributCustom();
Tous les attributs personnalisés peuvent être récupérés dans vos templates. Par exemple j’ai créé un attribut « shipping_chronopost ». La méthode pour avoir la valeur sera donc : ->getShippingChronopost()
Pour récupérer le texte de votre attribut
echo $_product->getAttributeText('votre_attribut')
Et voilà ce que j’utilise au quotidien.