magento

Comment créer une catégorie Magento par code

19 janvier 2010 Développement web | E-commerce | Marketing | Technologie

Voici la suite de notre découverte de l’API Magento. Aujourd’hui je vous propose de créer -par code- une catégorie Magento.

Magento-observer

Le concept des catégories est fondamentale de l’architecture Magento. Les catégories permettent d’organiser les produits de manière arborescente afin par exemple de structurer l’expérience visiteur sur le frontend.

Comme la création manuelle de -beaucoup de- catégories via l’interface d’administration peut s’avérer fastidieuse, il peut s’avérer trés pratique de créer les catégories par batch. Le code proposé ci-dessous aborde donc la manipulation d’une partie du modèle des catégories. Libre à vous ensuite de l’implémenter dans votre propre logique en fonction de vos besoins spécifiques.

Lire la suite

Comment créer un batch Magento

15 janvier 2010 Développement web | E-commerce | Technologie

« Damien, au lieu de Twitter écris des posts sur Australopitech … Damien fais un billet sur Australopitech … Damien tu ne montre pas l’exemple …« , gnia, gnia, gnia.

Et bien soit, je vous propose donc de commettre une série de posts sur Magento et son API.

Pour commencer par le commencement, voyons comment créer un batch Magento qui servira à nos futurs articles sur l’API Magento …

Magento-observer

Lire la suite

Magento et Zend s’associent

27 novembre 2009 Développement web

magento zend

La solution e-commerce PHP de la société Varien et la « PHP Company » viennent de s’associer pour fournir un pack comprenant un environnement PHP « Zend Server Community Edition » et la version community de Magento.
On peut imaginer que cela va contribuer à améliorer les 2 solution : fonctionnalités natives e-commerce au sein du Zend Framework, et optimisation de Magento.

zend magento pack

Pour en savoir plus :

Lire la suite

Magento – Jouer avec les stocks

16 octobre 2009 Développement web | E-commerce | Technologie

Comment afficher la quantité de stock disponible d’un produit :

$_product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
echo Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();

et voici comment mettre a jour les stocks (dans un batch par exemple) :

$_product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
Mage::getModel('cataloginventory/stock_item')
    	 ->loadByProduct($_product)
    	 ->setData('qty', 666)
    	 ->save();

et parfois tous ces « save() » sur le produit ne fonctionnent pas ; premier reflex (dans le cas d’un store unique bien sûr) :

Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); // a mettre avant le save...
Lire la suite

Magento et les urls canoniques

24 septembre 2009 Développement web

Depuis que les experts SEO sont apparus sur terre, les développeurs que nous sommes, sont beaucoup moins tranquilles. Il n’est pas rare de voir arriver le monsieur SEO, les yeux écarquillés et l’air stressés :
- « il y’a du contenu dupliqué qui remonte sur Google…faut le supprimer! »
- « Quoi? tu veux supprimer Google? »
- [...]
- « Oui bon c’est pas drôle, je reconnais. »

Lire la suite

Magento : supprimer le frontend

4 septembre 2009 Développement web | E-commerce | Marketing

Je suis tombé récemment sur une problématique assez intéressante, à savoir n’utiliser que la partie administration sur un site sous Magento.
L’objectif est que lorsque l’on arrive sur le site par l’url http://monsite.com, on accède directement à l’administration.

J’ai découvert que l’administration était considérée au sein de Magento comme un site à part entière (voir ici pour comprendre la structure multi-site, multi-boutique et multi-vue de Magento). Il suffit donc de démarrer ce site dans le fichier index.php:

//lancement du site admin
Mage::run('admin');

Il y’a tout de même un léger problème si vous avez besoin d’utiliser les web services de Magento car l’url http://monsite.com/api/soap/?wsdl devient de fait inaccessible. Pour y remédier il suffit de dupliquer le fichier index.php, de le renommer en api.php par exemple et de lancer le site par défaut :

//lancement du site par défaut
Mage::run();

L’api sera accessible à cette nouvelle url : http://monsite.com/api.php/api/soap/?wsdl. Si vous ne voulez pas faire apparaitre le fichier api.php dans l’url, une simple règle de réécriture dans le .htaccess fera l’affaire.

Lire la suite

Magento – Sélectionner tous les produits d’un AttributeSet

10 juillet 2009 Développement web | E-commerce | Technologie

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

Lire la suite

Magento – Comment ajouter un AttributeSet

3 juillet 2009 Développement web | E-commerce | Technologie

Un premier 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.

Lire la suite

Sortie de Magento 1.3 et de son plat catalogue

10 avril 2009 Développement web

Varien vient de sortir la version 1.3 de Magento. Cette version, trés attendue, corrige le lot habituel des bugs remontés dans les versions précédentes et nous gratifie de quelques fonctionnalités supplémentaires :

  • possibilité pour le client de rattacher un fichier au produit qu’il achète, trés utile si vous vendez des tee-shirts ou des napperons customizables
  • Il est également possible de définir une option au format date, le client choisit une taille, une couleur et aura la possibilité de définir une date de livraison pour un anniversaire par exemple
  • et cerise sur le gâteau: possibilité d’utiliser un catalogue plat
Lire la suite

Magento et les Observers

17 février 2009 Développement web

Magento-observer

Magento est pour moi et pour beaucoup d’autres développeurs de site e-commerce, la future solution e-commerce de référence dans le monde de l’Open Source PHP. Les possibilités de développement et la facilité avec laquelle on peut mettre en place des besoins métier sont assez bluffantes, si toutefois l’on maîtrise un tantinet la bête.

Pour accompagner cet élan d’enthousiasme, voici comment on peut utiliser le système d’evenement/observer dans Magento. Le principe de base est assez simple, il s’agit de dire à Magento de faire une ou plusieurs actions lorsqu’un évènement précis se produit (l’ajout d’un article au panier par exemple).

Voici donc comment on peut très simplement surveiller l’ajout d’un produit dans le panier.

Lire la suite