Extension Magento

Extension Magento : Baobaz Automatic Orders Cancel

Baobaz - Automatic Orders CancelNous sommes fiers de vous annoncer la publication de Baobaz Automatic Orders Cancel sur Magento Connect. Il s'agit de la première extension Baobaz publiée sur Magento Connect.

Le but de cette extension est d'annuler automatiquement les vieilles commandes non payées. Il est possible de paramétrer dans le back office les statuts d'annulation ainsi que le délai avant l'annulation d'une commande.

Pour plus de détails rendez vous sur la page de l'extension : http://www.magentocommerce.com/extension/3156

Afficher un block BestSellers (meilleures ventes) sur la page d'accueil de votre site Magento

Une des questions qui vient souvent lors de la mise en place d'un site Magento est la suivante : comment afficher les BestSellers (meilleures ventes) sur la page d'accueil ?

En effet, Magento - dans sa version actuelle du moins - ne propose pas nativement cette fonctionnalité.

Pour autant, si ce manque peut paraître étrange pour une solution e-commerce, il n'est en rien bloquant. Bien au contraire, il va nous permettre de nous rendre compte de la (relative) facilité avec laquelle il est possible de créer de nouveaux blocs, ou du moins de l'évolutivité de l'architecture de Magento.

  1. Récupérez les données

    C'est sûrement la partie la plus compliquée car elle nécessite de maîtriser le modèle objet de Magento.
    À partir du moment où vous savez où aller chercher les données (ici les produits vendus) et comment les requêter (ici en les triant par nombre de ventes décroissantes), obtenir les informations voulues est très simple et tient sur une seule ligne (en fait plusieurs pour un souci de lisibilité).

    $_productCollection = Mage::getResourceModel('reports/product_collection')
        ->addAttributeToSelect('*')
        ->addOrderedQty()
        ->setOrder('ordered_qty', 'desc');

  2. Créer votre block BestSellers

    Respectez le modèle MVC : dans Magento comme dans Zend, chaque objet a sa place et son rôle.
    Créez vos objets métier :
    Typiquement, dans un fichier app/code/local/ma_librairie/Bestseller/Model/Bestseller.php vous définissez votre classe métier qui contient la règle de calcul (ici : afficher les produit nombre de vente décroissante).
    Puis dans app/code/local/ma_librairie/Bestseller/Block/Bestseller.php vous étendez la classe Mage_Core_Block_Template qui se chargera de transmettre proprement les données au block d'affichage.
    Enfin dans app/design/frontend/mon_theme/default/template/catalog/product/view/bestseller.phtml affichez le contenu du block.
    Bien entendu, ces objets doivent être déclarés dans les fichiers XML adéquats.

  3. Affichez votre block

    Il ne vous reste plus qu'à placer votre block dans votre layout actif.
    Pour ce faire, vous pouvez soit modifier votre fichier XML de layout, soit effectuer l'ajout dans le back-office de configuration Magento sur votre page CMS d'accueil.

Pour plus d'information sur les Templates, consultez le billet Créer un template pour son site Magento.

Extension Magento SPPLUS : bug de calcul de clé HMAC

La solution e-commerce Magento permet d'intégrer de nombreuses interfaces de paiement via le système de module magento.

Parmi celles-ci, l'extension SPPLUS permet de mettre en place le module de paiement SP PLUS de la Caisse d'Épargne. Cette extension est disponible via Magento Connect.

Cependant, cette extension présente un bug fort contraignant. En effet toutes les commandes dont l'email du client contient le caractère _ ne sont pas traitées. Cela provient d'un mauvais calcul de la clé HMAC.

Pour info, la clé HMAC est un code d'authentification envoyée par SPPLUS. Pour calculer cette clé et ensuite pouvoir la comparer avec la clé reçue, on utilise la fonction nthmac présente dans la librairie spplus.so fournie par SP PLUS. Le calcul de cette clé se fait avec plusieurs paramêtres dont entre autre l'email du client. Cependant pour bien pouvoir utiliser cette fonction, il faut échapper les caractères spéciaux tels que _.

Pour corriger ce bug il faut donc modifier la méthode ipnPostSubmit du fichier app/code/community/Mage/Spplus/Model/Method/Spplus.php. Il faut remplacer les lignes :

$chaineParam = str_replace(":", ":", $chaineParam);
$chaineParam = str_replace("/", "/", $chaineParam);
$chaineParam = str_replace("_", "_", $chaineParam);
$chaineParam = str_replace("@", "@", $chaineParam);

Par

$chaineParam = str_replace(":", "%3A", $chaineParam);
$chaineParam = str_replace("/", "%2F", $chaineParam);
$chaineParam = str_replace("_", "%5F", $chaineParam);
$chaineParam = str_replace("@", "%40", $chaineParam);

Ce bug a été reporté sur le forum de l'extension et devrait très probablement corrigé dans sa version 1.1.5