XiConnect, Notre solution de couplage Magento vers votre ERP ou SI

L’utilisation simultanée d’un site de eCommerce Magento et d’un ERP nécessite une possibilité de synchronisation entre ces deux entités.

La solution XiConnect est un serveur d’échange intermédiaire entre un site Magento et un ERP, ce qui permet de synchroniser les données entre ces deux entités sans nuire aux performances du site eCommerce.

Chaque flux de données (produits, commandes, stocks…) passant entre l’ERP et Magento via XiConnect est matérialisé par un ou plusieurs fichiers CSV.
L’ERP et Magento possèdent des API d’import/export capables de créer et consommer ces fichiers.

cap1_fr

Schema des flux entre Magento et un ERP

XiConnect possède une base de données où ces échanges sont répertoriés sous forme d’objets Task, ou tâches. Chaque tâche est caractérisée entre autres par un type d’entité (client, produit, commande…), un sens (de l’ERP vers le site eCommerce ou inversement), son état (actuel et précédent) et son contenu (fichiers concernés).

Un composant de XiConnect, le Task Manager, manipule les tâches, met à jour leur état et lance les traitements nécessaires pour appliquer les règles métier aux flux.

En consultant la base de données, un utilisateur peut à tout moment connaître l’état de chaque flux.

Les screenshots valent mieux qu’un long discours, vous noterez que le css n’est pas sans rappeler une certaine plateforme eCommerce, permettant à nos utilisateurs d’y être familier.

1 – Connexion

Interface de connexion

Authentification

2 – Gestion des tâches

La page de gestion des tâches est utilisée pour consulter les tâches répertoriées dans la base de données du serveur d’échange, que ce soit les tâches terminées ou les tâches en cours d’exécution.

Elle permet également de donner l’ordre au serveur d’échange de relancer les tâches qui ont échoué.

Affichage des tâches

Affichage des tâches

En double-cliquant sur une tâche, une pop-up apparaît avec, en plus des informations de base sur la tâche, l’emplacement courant du ou des fichiers CSV représentant le flux de données. Si un fichier se trouve sur le serveur d’échange, son chemin est également affiché.

Dans le cas où la tâche en question est une tâche échouée, la pop-up comporte un bouton permettant de la redémarrer.

Détails d'une tâche

Détails d'une tâche

3 – Consultation de la base intermédiaire

La page de consultation de la base intermédiaire permet de consulter toutes les tables de la base de données du serveur d’échange. Elle peut être accédée en cliquant sur l’onglet « Base intermédiaire » dans la barre de navigation.

magento-xiconnect-view-table

Consultation des données stockées par XiConnect

4 – Gestion des utilisateurs
La page de gestion des utilisateurs permet de visualiser, créer, modifier et supprimer les utilisateurs enregistrés. Elle peut être accédée en cliquant sur l’onglet « Utilisateurs » dans la barre de navigation.

magento-xiconnect-users-edit1

Création / Modification d'un utilisateur

5 – Configuration de XiConnect
La page de configuration du serveur d’échange permet de visualiser et modifier les fichiers de configuration du serveur d’échange, plusieurs configurations sont possibles : «production », «développement », «recette», «intégration»

Elle peut être accédée en cliquant sur l’onglet « Configuration du serveur » dans la barre de navigation.

6 – Configuration de l’adaptateur ERP

Cette page permet de visualiser et modifier le fichier de configuration de l’adaptateur ERP.Elle peut être accédée en cliquant sur l’onglet « Configuration de l’adaptateur » dans la barre de navigation.

Les détails des parties “Configuration du serveur d’échange” et “Configuration de l’adaptateur ERP” sont réservés à nos clients. N’hésitez pas à nous contacter pour avoir plus d’informations sur XiConnect en suivant ce lien : couplage entre Magento et les ERP.

Tests de site Magento : la réduction des tests manuel

Aujourd’hui, nos clients sous Magento progressent vite, très vite. En effet la possibilité de multiplication des boutiques sur le même socle Magento ouvre de nouvelles portes mais aussi de nouvelles problématiques :

-    un bug en production peut faire planter l’ensemble des sites.
-    un mauvais contenu en ligne peut se répercuter sur l’ensemble des boutiques

Aujourd’hui, nous avons décidé de réduire au maximum une activité chronophage et couteuse : le test manuel.

La maturité dans ce domaine de PHP ne nous propose pas le panel d’outils que nous avons l’habitude d’utilisé en Java, mais les premières briques sont là et vont bien nous aidé.

Les tests automatiques sont réalisés sur 2 niveaux :

1)    Test de fonctionnalité des principaux éléments du site, de la recherche de produit au processus de commande sous plusieurs modes en passant par la création de compte client.
2)    Test de contenu afin de vérifier que celui-ci n’as pas changé de façon non intentionnelle.

Ces tests une fois implémentés seront exécutés sur des serveurs d’intégration continu (reprenant à l’identique les serveurs de production). Ces tests automatisés seront exécutés automatiquement tous les jours sur la dernière version du code disponible en configuration (SVN, GIT).

Avec CubicTest, Selenium, Hudson, je m’assure d’avoir mon socle Magento fonctionnels de livraison en livraison.

La première partie a été réalisée avec CubicTest, un plugin Eclipse du logiciel de test reconnu Selenium.

La création des tests est relativement simple et rapide puisqu’il existe un mode enregistrement qui enregistre les opérations faites par l’utilisateur.

Le logiciel capte les actions réalisées dans le navigateur et les transforme en un test fonctionnel et facilement compréhensible grâce à l’interface graphique.

magento-selenium-hudson-cubictest

Ci-dessus un exemple de test simple réalisé avec CubicTest. Ce test exécute une recherche dans le moteur interne du site puis visite un lien du résultat.

En plus des fonctionnalités classiques il permet notamment de réaliser des tests personnalisés ce qui permet d’ajouter les interactions qui n’existeraient pas.

Il devient donc possible de constituer une véritable batterie de test pour passer en revue toutes les fonctionnalités vitales d’un site e-Commerce :
-    création de compte
-    mise au panier
-    processus d’achat
-    abonnement newsletter
-    navigation a facette
-    et tous les autres (mode grille/liste, prix, filtre, …)

La compatibilité avec des logiciels d’intégration continue tel qu’Hudson permet de réaliser une programmation des tests (journalière, hebdomadaire ou mensuelle par exemple en fonction des besoins).
Cela permet de recevoir par email par exemple les rapports des tests ayant échoués afin d’évaluer et de corriger les éventuelles erreurs.

Avec ce système de test automatisé réalisé de manière continue l’accessibilité et la fonctionnalité du site est vérifié, les problèmes sont donc corrigés au plus vite afin d’éviter toute perte trop importante.

Mon socle fonctionnel Magento est sécurisé, de quels outils je dispose pour la vérification du contenu qui peut être modifié par mon service client.

La deuxième partie qui concerne la vérification du contenu a été réalisée en Java.

Après avoir cherché et testé de nombreux softs de tests de contenu, nous avons opté pour développer notre propre moteur. En effet aucun ne répond suffisamment finement à notre besoin :

  1. Parcourir un site entièrement
  2. Historiser tous les liens du site ainsi que leur contenu à des dates précises
  3. Pouvoir comparer les contenus du site actuel au contenu enregistré dans la base de référence.
  4. Pourvoir changer le contenu de référence pour que les évolutions des contenus ne soit pas détecté comme des erreurs.

Ce développement maison s’intègre dans le processus d’intégration continue afin d’être alerté de toutes modifications non souhaitées.

Ces deux outils sont donc complémentaires pour vérifier l’intégrité et la fonctionnalité d’un site e-Commerce et ce particulièrement s’il est en évolution constante (vérifier que la correction d’un problème ou l’ajout d’une fonctionnalité n’entame pas le reste du site).

Si vous aussi vous souhaitez mettre en place ce type de processus, contactez nous par mail ou par téléphone au 05 61 82 58 86.

Augmenter la qualité des photos sur Magento

Modifier la qualité de compression des photos Magento :

  1. Étape 1

    Copier le ficher “/lib/Varien/Image/Adapter/Gd2.php” vers “/app/code/local/Varien/Image/Adapter/Gd2.php” en créant les répertoires manquant si nécessaire.

  2. Étape 2

    Ouvrez le fichier Gd2.php (la copie, pas l’original) au environ de la ligne 80 et remplacer :

    call_user_func($this->_getCallback('output'), $this->_imageHandler, $fileName);

    par :

    if ($this->_fileType === IMAGETYPE_JPEG) {
    call_user_func($this->_getCallback(’output’), $this->_imageHandler, $fileName, 90);
    } else {
    call_user_func($this->_getCallback(’output’), $this->_imageHandler, $fileName);
    }

    Dans mon cas j’ai opté pour 90, mais vous pouvez faire varier cette valeur entre 0 et 100 de qualité.

  3. Étape 3

    Pour déterminer, pensez à vider le cache des images via System > Cache Management.

Voilà, c’était simple, efficace et réutilisable sur n’importe quel projet, à partir du moment ou vous travaillez avec des images au format JPG et que votre serveur supporte GD2.

Source : http://narno.com/blog/augmenter-la-qualite-des-photos-sur-magento

Ameliorer la performance de son site ecommerce (Part 1)

Aujourd’hui, pour dans un site ecommerce,  l’important c’est en general :

- d’ameliorer son taux de transformation,

- de diminuer son taux de rebond,

- d’augmenter le nombre de creation de compte client,

- d’augmenter le nombre de creation de panier,

- d’augmenter son nombre de pages vues.

Avec ces objectifs en memoire, nous repensons regulierement les ergonomies de nos pages, avec tous les doutes que cela implique. Heureusement, sony Google l’a fait, l’outil Google Optimiseur de site.

Cet outil va permettre de tester differentes combinaisons et laisser l’utilisateur final nous demontrer quelle est l’ergonomie la plus pertinente. Pour faire simple, voici avec un exemple les etapes :

  1. Definir ce que l’on souhaite ameliorer
    • ameliorer le taux de confirmation de commande
  2. Imaginer les differentes ergonomies possible avec par exemple :
    • Mettre 2 boutons “commander” au lieu d’un,
    • Changer le texte de validation, etc…
  3. Implementer ces differentes ergonomies
  4. C’est ici qu’on intervient, ces implementations necessitent des competences en developpement (n’hesitez donc pas à nous appeler)
  5. Suivre les resultats en observant les combinaisons les plus pertinentes.

En fonction du volume de visites/transformations, on obtient des resultats pertinents  plus ou moins rapidement.

Voici en pratique ce que cela donne pour quelques combinaisons de notre site de vente de vetements bio pour lequel nous avons mis en place 24 combinaisons possibles ( testees sur IE7 IE6 FF3 = 72 pages de tests) sur la page de liste des produits :

L’objectif etant de trouver une combinaison qui va ameliorer le passage de la page de liste de produit vers la fiche produit. Rendez-vous dans quelques jours semaines, des que Google  aura identifie les combinaisons gagnantes.

Voici le resultat d’un test qui vise a ameliorer le passage du blog a la boutique :

  1. vetements bio – le blog – Original
  2. vetements bio – le blog – Combinaison1
  3. vetements bio – le blog – Combinaison2

Et voici le resultat apres 4 jours de tests seulement :

2009-07-08_1446011

Nous sommes a priori sur une piste serieuse pour doubler le traffic entrant sur la boutique en provenance du blog !!!!! CQFD Merci Google.

En mettant ces techniques en place, on met l’amelioration de la performance au centre de sa strategie ecommerce et je pense que c’est un point au moins aussi important que les resultats pertinents que cela apporte.

Je vous exposerai dans la Partie 2 du sujet, le resultat du test des 24 combinaisons

Pour terminer, sachez que Magento supporte nativement Google Optimiseur de Site, en revanche il y a certaines limitations… suite dans le prochain episode.

Patch Magento pour l’envoi de mail sur les machines de dev

Dans le fichier app/code/core/Mage/Core/Model/Email/Template.php
Remplacer la method send(), ligne 317 par celle-ci :
public function send($email, $name=null, array $variables = array())
{
if(!$this->isValidForSend()) {
return false;
}
if (is_null($name)) {
$name = substr($email, 0, strpos($email, '@'));
}
$variables['email'] = $email;
$variables['name'] = $name;
//ini_set('SMTP', Mage::getStoreConfig('system/smtp/host'));
//ini_set('smtp_port', Mage::getStoreConfig('system/smtp/port'));
$config = array('port' => 25, 'auth' => 'login', 'username' => 'xxxxx', 'password' => 'xxxxxxx');
$transport = new Zend_Mail_Transport_Smtp('smtp.xxx.fr', $config);
Zend_Mail::setDefaultTransport($transport);
$mail = $this->getMail();
if (is_array($email)) {
foreach ($email as $emailOne) {
$mail->addTo($emailOne, $name);
}
} else {
$mail->addTo($email, '=?utf-8?B?'.base64_encode($name).'?=');
}
$this->setUseAbsoluteLinks(true);
$text = $this->getProcessedTemplate($variables, true);
if($this->isPlain()) {
$mail->setBodyText($text);
} else {
$mail->setBodyHTML($text);
}
$mail->setSubject('=?utf-8?B?'.base64_encode($this->getProcessedTemplateSubject($variables)).'?=');
$mail->setFrom($this->getSenderEmail(), $this->getSenderName());
//try {
$mail->send(); // Zend_Mail warning..
$this->_mail = null;
//}
//catch (Exception $e) {
//    return false;
//}
return true;
}
This site uses a Hackadelic PlugIn, Hackadelic SEO Table Of Contents 1.6.0.