Les 3 principales solutions pour faire du E-Commerce

 

3_solutions_ecommerce

 

Qui veut monter un site e-commerce doit choisir l'outil spécialisé pour l'administrer en ligne : cet article montre plusieurs solutions techniques… J'ai choisi de ne pas évoquer celles en mode SAS comme Wizishop, qui peuvent être choisies par des personnes n'ayant absoluement aucune connaissance en développement web…

 

 

Les CMS

 

Prestashop obtient la meilleur note des solutions e-commerce suivant un comparatif du JournalDuNet sortit le 30/04/12. Le code est léger, sans framework, mais la liste de fonctionnalités n'en pâtit pas, elles sont jugées « très poussées » par certains, grâce à quelques systèmes uniques à PrestaShop, comme l'assurance panier. Autre point fort : l'application mobile, saluée comme « une clef de succès » avec un résultat pour le moment parmi les plus convaincants du marché.

Son principal défaut est le manque de cache qui l'empêche de pouvoir bien encaisser les pics de trafic ou gros volumes de visiteurs, d'autant plus qu'aucune solution basée sur PHP ne peut réellement prétendre cibler les très grands sites en raison notamment de problème de gestion des multiples accès simultanés au back office. Cependant Prestashop dispose en natif du cache disque Memcached et du CCC (Combine, Compress, and Cache) qui permet de combiner, compresser et mettre en cache les feuilles CSS et les scripts Javascript, et de minimiser le HTML. L'activation de CCC permet de dupliquer le contenu sur plusieurs serveurs permet donc de multiplier d’autant le nombre de requêtes simultanées de votre navigateur (par défaut, il peut en autoriser jusqu’à 8) grâce à un pseudo système de CDN qui consiste à créer 3 sous-domaines (cdn1.maboutique.com, cdn2.maboutique.com, cdn3.maboutique.com) en allant dans « Préférences > Performances > Serveurs de média ».

Un tiers des projets PrestaShop se situent entre 50 000 et 500 000 euros – plus de la moitié étant néanmoins de petits projets (chiffre d'affaires compris entre 1 000 et 50 000 euros).

Fonctionnalités :

  • Possibilité en natif de vendre des produits numériques téléchargeables.
  • Affichage des offres spéciales (bons de réduction, promotions) ou offre sur les frais de port
  • Mise en avant de produits sur la page d’accueil de type meilleures ventes, nouveautés…
  • Plusieurs moyens de paiement disponibles : carte bleu, paypal, virement bancaire, paiement à la livraison…
  • Un processus de commande qui prévoit la possibilité de générer des retours et avoirs, de demander un emballage cadeau pour une commande à offrir.
  • Gestion des devises et taxes par pays ou par zone et taux de change en temps réel
  • Transporteurs et destinations illimités, notification par e mail ou par sms des statuts de livraison
  • Importation de fichiers CSV, exportation des contacts newsletter
  • Statistiques

 

Pour résumer, l'installation de Prestashop est simple et l'exploitation est facile. En revanche, les nombreux thèmes / extensions restent payants.

 

Les Frameworks

 

Symfony2 est visiblement le framework PHP le puissant sur le marché avec Zend. La version 2 est une ré-écriture totale d'après le recueil des feedbacks sur les premières versions. Aussi il existe des versions LTS 5 ans. Symfony 2.0 a été repensé pour être très performant. Il est 2 à 3 fois plus rapide que Zend Framework 1. Il est aussi facile d'accès pour les débutants tout en étant flexible pour les professionnels. On peut utiliser Symfony 2.0 aussi bien pour un blog qu'au sein d'une grande société. La flexibilité se traduit notamment par l'injection de dépendances, l'appuie sur des bibliothèques existantes, le tout au sein d'une expérience unifiée. Respect des standards, notamment pour la gestion du cache, qui permet des fortes montées en charge pour les sites à fort trafic. Par défaut les sites sont protégés contre les attaques XSS, CRSF ou les injections SQL.

Symfony a l'avantage de la génération des applications et modules en ligne de commande, la gestion des classes et de la base de données, ses tests unitaires, les "fixtures ", la structure du framework, etc… Mais c'est une usine à gaz pour un projet plus petit, difficile de trouver des exemples de code hors documentation officielle et de trouver d'autres développeurs Symfony pour assurer la maintenance… On se sent parfois seul quand on rencontre un problème sur ce framework.

Il faut donc voir si le besoin métier sur le projet est suffisamment conséquent, ou si un CMS comme Drupal, SPIP, ezPublish ou Joomla couvre nativement l'ensemble du périmètre fonctionnel cible. Pour nuancer ce propos, de plus en plus de plugins Symfony tendent à apparaître pour couvrir ce type de besoins fonctionnels.

Un développement spécifique introduira le plus souvent beaucoup plus d'exigences, de compétences et de complexité qu'une intégration basée sur un outil de gestion de contenu autonome existant (et digne de ce nom). L'idée est bel et bien de renoncer à se faire plaisir à tout prix pour se situer au plus près de la réalité du besoin.

Avec les principaux CMS PHP open source du marché et la la propension naturelle d'un client à enrichir au gré de l'avancement projet le périmètre fonctionnel souhaité, il est préférable de se baser sur un framework afin de rester agile et parer à toute éventualité. Mais dès qu'une équipe hétérogène entre en ligne de compte, généralement les problèmes commencent.

La montée en compétences sur l'utilisation du framework – déjà naturellement exigeante – requière également pour certains une montée en compétences en programmation tout court. Et cette dernière, si elle peut se faire sur un projet, peut également allègrement le plomber. Un développeur PHP débutant mettra plus de temps qu'un codeur expérimenté à appréhender l'ensemble des possibilités introduites par PHP5, la programmation orientée objet, les motifs de conception, mais aussi le respect des bonnes pratiques notamment liées au travail collaboratif etc.

Ce n'est pas en mettant plus de développeurs sur un projet Symfony que celui-ci sera développé plus vite. Au contraire, même ; souvent on vend un projet de 100 jours de développement, on se fixe un retroplanning ambitieux avec une mise en ligne à 20 jours ouvrés, et on staffe donc arithmétiquement cinq développeurs à plein temps en pensant que le résultat sera totalement équivalent au travail qu'aurait fourni un unique développeur en 100 jours de développement pour concevoir l'intégralité du code de l'application résultante.

Il est paré pour le développement de site de e-commerce : le site Knpbundles.com, qui recense tous les bundles pour ce framework, proposent de nombreuses réponses à la requête « ecommerce ». Le pack Vespolina, fonctionnant avec une base de donnée MongoDb, contient à lui seul 26 bundles, avec un wiki à disposition, et le pack Sylius 22 bundles, avec une doc à disposition ici. On peut encore citer le pack Sonata qui fonctionne avec une douzaine de bundles.

 

 

Les langages

 

PHP, le langage le plus répandu sur le web (un tiers des sites) semble parfaitement convenir pour un site de e-commerce car il est utilisé par Pixmania. Ce langage de script côté serveur a d'ailleurs aussi été utilisé pour développer les applications de gestion de contenu du commerçant, notamment son CMS et son système de gestion de produits, en s'appuyant sur JQuery. Côté base de donnée, le site est sous Oracle, également pour le front et le back office. 

PHP est un langage interprété au détriment de la vitesse d'exécution. Sa forte popularité associée à son utilisation sur des sites Web à très fort trafic (Yahoo, Facebook) ont amené certains à chercher à améliorer ses performances pour pouvoir servir un plus grand nombre d'utilisateurs de ces sites sans nécessiter l'achat de nouveaux serveurs. La réécriture du cœur de PHP ayant abouti au Zend Engine pour PHP 4 puis le Zend Engine 2 pour PHP 5 sont des optimisations. Le Zend Engine compile en interne le code PHP en bytecode exécuté par une machine virtuelle. Les projets open source APC et eAccelerator fonctionnent en tant que cache pour accélérer encore un peu la génération des pages Web.

 

 

Comparaisons

 

Prestashop et Symfony proposent sensiblement les mêmes possibilités techniques. Il semble que Symfony soit plus puissant au niveau performance de part l'utilisation d'un cache, comme en témoigne l'utilisation de ce framework par des sites à fort trafic comme Yahoo answers, Delicious, Monsieur prix ou Dailymotion.

Il est difficile de juger de l'efficacité du développement en PHP pur car il existe autant de méthodes de développement qu'il y a d'entreprise. On peut néanmoins prendre en compte que c'est un langage qui a beaucoup de défaut (voir cet article par exemple).

 

 

Conclusion

 

Si l'on veut déployer rapidement une boutique, il faut opter pour la solution d'un CMS comme Prestashop. L'utilisation d'un framework comme Symfony se justifie pour des sites à fort trafic ou bien nécessitant des développements particuliers impossibles à produire avec un CMS. Un framework est aussi fort utile pour le travail d'équipe, mais le choix de son adoption doit prendre en compte la nécessité de compétence pour le maîtriser. Enfin, la solution de développer directement en PHP a le désaventage de réinventer des modules qui sont déjà disponibles dans les frameworks, mais avec l'avantage de pouvoir organiser son code avec plus de légèreté et selon ses besoins.

 

Laisser un commentaire