Prestashop une solution e-commerce performante… et pour le développeur ?

On voit de plus en plus de modules publiés sur le forum de Prestashop ou encore sur leur plateforme marchande Prestashop Addon. Il est vrai que  cette solution e-commerce fonctionne très bien et que l’on peut intégrer facilement sa nouvelle fonctionnalité en développant par exemple un module.


Du code à factoriser

Le problème survient déjà à ce niveau-là, car il est très permissif et permet de faire un peu ce qu’on a envie et sans véritablement respecter une convention stricte. Dans une série de cas je peine à comprendre pourquoi le système est si « rudimentaire » ou encore « mais pourquoi il n’est pas rangé dans une classe cet élément ? » Par exemple si on prend le cas de l’appel de « Tinymce » qui se charge d’afficher un éditeur HTML dans un article, dans l’éditorial etc… Pourquoi ne pas faire une classe qui puisse prendre des paramètres ?  Idem pour les formulaires, chaque formulaire est codé en dur au lieu de nous faire par exemple un $Form->input(xxx) et par la même occasion d’automatiser aussi la gestion des erreurs en proposant des règles de validation à appliquer aux champs. Faire des champs multilingues ? Oui mais à nouveau il faut répéter des foreach sur les langues + ajouter du JS à chaque fois ce genre de choses pourrait être pris en charge par un appel de Classe.


Eliminer les tâches rébarbatives

Poussons peut-être la chose encore plus loin, en basant mon expérience sur CakePHP. Vous désirez faire une mise à jour des données, un SELECT ou encore un UPDATE sur Prestashop ? Vous devrez coder votre requête entièrement à la main ce qui prend un certain temps. Certes certains diront « c’est pratique », mais si on avait à faire juste un $this->Product->find(‘all’); ou  $this->Product->save($this->data); et que le traitement se ferait automatiquement en fonction du respect des conventions ça serait un gain de temps considérable. Ou même pour l’appel des URL, il pourrait y avoir une classe du style Html::link(‘Mon lien’,array(‘param1’=>1,’param2’=>2)); afin de pouvoir évoluer et de proposer quelque chose de dynamique.

En regardant la communauté Prestashop on sent que le niveau est moins qualifié que du côté de Magento qui nécessite plus de connaissances. Je me demande parfois si les développeurs de Prestashop ont déjà utilisé un véritable Framework qui accélère le temps de développement, car sur le forum de Prestashop on ne voit pas vraiment cette problématique remise en question. En voyant cela je me pose la question si  Prestashop deviendra un jour le nouveau Oscommerce passé date.

Ceci m’amène à penser de créer ma propre couche pour proposer un chargement de modèle et faciliter la gestion des formulaires et du traitement des données. Bien sûr il s’agit là d’un travail complexe qui dans l’idéal aurait dû se trouver déjà dans le coeur de la solution. Mon idée est donc de créer un framework à intégrer dans le module pour faciliter les traitements et éviter toutes ces routines fastidieuses. Cela vous intéresse ? N’hésitez pas à me contacter !

Prestashop reste à l’heure actuelle une valeur sûr mais ce genre de détail pourrait empêcher une pérennité sur le long terme ou lors de grosses transformations.

Notez mon billet, Google va adorer :
1 étoiles - J'aime pas !2 étoiles - Bof !3 étoiles - Bien !4 étoiles - Très bien !5 étoiles - Génial ! (Soyez le premier à noter ce billet)
Loading...

2 commentaires sur “Prestashop une solution e-commerce performante… et pour le développeur ?”

  1. Bonjour,

    Étant développeur PHP depuis plus de 6 ans et ayant suivis le projet Prestashop depuis ses débuts. Je me dois d’intervenir.

    « Je suis d’accord » :
    – Avec le fait que Prestashop doit absolument se professionnaliser.
    Pour l’instant, je développe mes stratégies sures autour de ZF / Symfo / voir Django (Python).
    – Avec le fait que Prestashop est un peu parti en live depuis l’explosion en interne du nombre de développeurs.
    – Avec le fait que le niveau communautaire est très bas.

    « Je ne suis pas d’accord » :

    – Avec le fait que Prestashop présente aucun « pseudo-model-ORM », serte, nous sommes loin de Doctrine II avec les NameSpaces que j’utilise quotidiennement. Mais Prestashop propose malgré tout un pattern active recorde.

    $p = new Product();
    $p->name = array(1 => 'My Product', 2 => 'Mon Produit');
    $p->save();
    

    De même que :

    $p = new Product(14);
    $p->id_supplier = 4;
    $p->save();
    

    Prestashop possède aussi une sur-couche base de données qui permet de simplifier…

    Db::getInstance()->autoExecute(_DB_PREFIX_ . 'product', array('id_supplier' => 4), 'UPDATE', '`id_product` = 1');
    

    – Avec le fait que Prestashop devienne l’ancien osCommerce. Car je te laisse le loisir de monter le même business plan, d’avoir plus de 30 employés autour d’une solution et de la promouvoir gratuite en Open Source. Alors là, tu aura toute ma reconnaissance.

    Enfin il faut savoir que Prestashop n’est encore que sur la branche 1.y et l’idée générale est toujours de refaire une version 2.y puisant sur l’expérience de plus de 20 000 boutiques.

  2. Je suis plutôt d’accord avec Julien. Prestashop a quand même une bonne base. En jetant un oeil aux sources on s’aperçoit aussi qu’il est composé de controllers comme certains Frameworks. Que l’ont peut d’ailleurs surcharger facilement.

    Malgré certains bugs je pense que Prestashop a un bel avenir et que les versions suivante seront bien plus aboutis. C’est pour ça que je l’ai choisi pour mes projets.

    PS : Je ne dis pas ça parce que j’utilise des modules de Julien. Mais les JBX_Modules sont vraiment sympa. 😉

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *