Prestashop

Logo PrestashopPrestashop est une solution e-commerce facile et pratique à mettre en œuvre.
C’est également une plateforme sur laquelle je travaille quotidiennement depuis presque 10 ans.
A travers une centaines d’articles écrits durant cette période, j’ai creusé de nombreuses problématiques liées à cette solution, des versions 1.4.x jusqu’aux dernières versions 1.7
J’ai également partagé des canevas de modules et creusé des points spécifiques de la solution, essentiellement une vision orientée module ( ç’est à dire comment interagir le plus simplement avec Prestashop via un module )

FOP day #4 à Marseille les 2,3 avril

L’association Friends of Presta dont je fait partie organise son 4 ème FOP Day les 2 et 3 avril 2024 à Marseille.
Après 3 première éditions très réussies à Poitiers / Toulouse et Lyon, place à Marseille cette année et au MUCEM pour ne rien gâcher 🙂 !

Une occasion de plus d’échanger autour des problématiques techniques et de l’écosystème Prestashop.

Pour ne rien gâcher j’ai la chance d’animer une master class autour de la CI/CD et des tests 🙂

Fop day 2024

Voici le programme de cette année :

Master Class – Mardi 2 Avril matin (incluses dans le pack FopDays)

  • 8h45 – 9h15 : Accueil MasterClass
  • 9h15 – 9h45 : Master Class #1 -Présentation de PrettyBlocks Guillaume Batier
  • 9h45 – 10h30 : Master Class #2 – Démarrer dans le CI/CD et les tests UI Hervé Hennes
  • 10h30 – 10h45 : Pause
  • 10h45 – 11h30 Master Class #3 – Il n’y a pas que GPT dans la vie ! Apprenez à créer un module de recommandation basé sur un modèle d’IA éduqué en live sur les données de votre boutique by Louis Authier
  • 11h30 – 12h15 : Master Class #4 – Web performance, chouchouter son TTFB

Fop Days 2024 – Mardi 2 Avril après midi + soirée + Mercredi 3 Avril

Mardi après midi

  • 13h30 – 14h00 : Accueil
  • 14h00 – 14h15 : Conférence d’ouverture par le bureau FoP
  • 14h15 – 15h00 : Conférence #1 – L’open source : licences, enjeux, business, IA par Antoine Thomas
  • 15h00 – 15h45  : Conférence #2 : Cybersécurité & qualité par Vincent Guesnard & Clotaire Renaud
  • 15h45 – 16h :  Pitchs
  • 16h15 – 16h30 : Pause
  • 16h30 – 17h15 : Conférence #3 : Les différentes mécaniques d’intégration avec PrestaShop – modules, framework Built For…use cases, avantages, services de type saas par Dimitri Mouillard
  • 17h15 – 18h : Conférence #4 : Comment Ocarat monitore et debug la prod Jérôme Weill
  • 18h – 18h15 : Pitchs
  • 18h15 – 19h00 : Questions / Réponses avecvPrestaShop SA – Eric Sénéchal Managing Director + Clément Paillasse CPO + Olivier Fontenelle CTO
  • 19h – 19h30 : Pause
  • 19h30 – 20h15 : FoP Awards
  • 20h15 – 2h00  : Soirée de Gala – Cocktail et animation jusqu’à 1h

Mercredi matin :

  • 9h – 9h30 : Accueil
  • 9h30 – 10h15 : Conférence #5 :  CRO par Sébastien Tortu
  • 10h15 – 11h : Conférence #6 : Tester son PrestaShop et ses modules par Jonathan Danse
  • 11h00 – 11h15 :Pause
  • 11h15 – 11h30 : Pitchs
  • 11h30 – 12h15 : Conférence #7 : SEO : Etude d’un cas pratique de A à Z.

FOP day #4 à Marseille les 2,3 avril Lire la suite »

Prestashop : Migrer les hooks dépréciés des modules

Il existe depuis très longtemps dans le fonctionnement des hooks de prestashop une fonction d’alias qui permets de mettre à jour le nom d’un hook tout en maintenant la compatibilité avec son ancien nom.
Le meilleur exemple de cette fonctionnalité est le hook header qui a été remplacé par displayHeader depuis très longtemps mais qui continue à fonctionner.
Ceci fonctionnait très bien et continue d’ailleurs de fonctionner, mais depuis la version 8.1 de Prestashop , chaque appel à un hook à un ancien alias va générer une erreur de log sur le serveur.
De ce type :

The hook « header » is deprecated, please use « displayHeader » instead in module « moduleName »

En fonction du nombre de modules concernés on peut vite remplir son serveur avec des milliers de lignes inutiles.

Plusieurs solution pour corriger ce point.


Quick & dirty et déconseillée  :  Commenter les lignes suivantes dans la méthode exec de la classe Hook ( via un override )

// We throw an error - aliases are deprecated.

Prestashop : Migrer les hooks dépréciés des modules Lire la suite »

Prestashop : Retour sur la première Developer Conference

La semaine dernière s’est déroulé la première conférence des développeurs Prestashop organisée directement par l’éditeur.

L’occasion de rencontrer de nombreux développeurs de l’éco-système, des agences, des freelances et éditeurs de module, dont de nombreux membres de l’association Friends Of Presta 🙂

Durant ces journée nous avons pu voir des conférences très intéressantes autour de nos problématiques communes telles que :

  • La mise en place de stratégie CI/CD
  • Les bonnes pratiques de développement de modules
  • Les mises à jour automatiques de modules via github
  • Le nouveau thème graphique HummingBird, et l’outil de gestion de block PrettyBlock
  • Les bonnes pratiques de sécurité dans la construction de vos modules
  • ….
  • Des échanges francs et direct avec les équipes de Prestashop sur la santé du projet et les évolutions en cours et à venir

Mon seul regret est de ne pas avoir pu suivre toutes les conférences, car il y’en avait 2 en même temps !

A l’issue de cette conférence, les retours sont très positifs avec une volonté commune entre l’éditeur et l’écosystème pour avancer ensemble vers les nouveaux défis qui attendent Prestashop pour les années à venir.…

Prestashop : Retour sur la première Developer Conference Lire la suite »

Prestashop : Hhmodule manager, fonctionnement technique et extension

Dans ma série d’articles précédents sur la mise en place de la CI/CD sur Prestashop, j’ai présenté une étape qui permets d’automatiser le déploiement de changements de modules et de configuration.
Celle-ci est géré via le module hhmodulesmanager, dont j’ai également présenté le fonctionnement basique qui est disponible dans cet article : Prestashop : Comment limiter les interactions manuelles avec le déploiement continu
Ce module gère nativement les actions suivantes :

  • Installation / Désinstallation / Activation / Désactivation / Mise à jour de module
  • Ajout / Mise à jour / Suppression de configuration

En revanche avec sa conception il peut servir de base technique pour gérer pleins d’autres actions, telles que  la Création/Modification/Suppression d’entités spécifiques…
Nous verrons plus loin comment le mettre en place.
Tout d’abord voici le fonctionnement technique du module et les notions importantes.
Pour rappel pour vous télécharger le module (gratuitement) sur la boutique ici :
Pensez à vous abonnez aux mises à jour de celui-ci pour être informés de la sortie des dernières versions 🙂

Télécharger le module complet ( et gratuit ) sur la boutique

Objet « Change »

Chaque action effectuée dans la back office est retranscrite sous la forme d’un objet « Changement » qui est une instance de la classe Change.…

Prestashop : Hhmodule manager, fonctionnement technique et extension Lire la suite »

Prestashop : Est-ce que mon site fonctionne toujours après ma livraison de code.

Cet article est le 5ème de la série sur le déploiement et l’intégration continu dans Prestashop.
Les autres articles de cette série sont les suivants :

Pour finir nos étapes de déploiement continu, une question se pose toujours après la livraison du code.
Est-ce que mon site fonctionne toujours ?
Est-ce que le module que j’ai installé ne casse rien ?

Pour répondre à cette question, il est souvent nécessaire de faire des tests manuels des parcours critiques.
C’est long et répétitif, mais nous allons voir à travers cette étape comment mettre en place des tests fonctionnels qui vont vérifier ce comportement pour nous 🙂

Pour cela nous allons utiliser la librairie playwright : https://playwright.dev/ 

Playwright

Cette librairie est utilisée par Prestashop pour faire l’ensemble des tests automatisés de la solution.…

Prestashop : Est-ce que mon site fonctionne toujours après ma livraison de code. Lire la suite »

Prestashop : Comment limiter les interactions manuelles avec le déploiement continu

Cet article est le 4ème de la série sur le déploiement et l’intégration continu dans Prestashop.
Les autres articles de cette série sont les suivants :

Un point relativement pénible avec Prestashop et qu’il n’existe pas nativement de solution automatisée pour installer / mettre à jour / désinstaller des modules, et pour déployer des configurations.

Ce qui fait que pour chaque déploiement de code, il est nécessaire de se rendre sur l’environnement cible  ( préproduction ou production ) et de réaliser manuellement les actions d’installations et mises à jour de modules, ainsi que l’application des configurations.
Il est donc nécessaire pour une action de la réaliser manuellement sur tous ces environnements.
Ceci est forcément source d’erreurs ou d’oublis, c’est pourquoi il serait beaucoup plus simple que tout se passe tout seul.…

Prestashop : Comment limiter les interactions manuelles avec le déploiement continu Lire la suite »

Prestashop : Déploiement continu, vérifier la qualité du code

Cet article est le 3ème de la série sur le déploiement et l’intégration continu dans Prestashop.
Les autres articles de cette série sont les suivants :

État des lieux

En préalable de cette étape nous allons ajouter un nouveau module prestashop de mauvaise qualité et avec une erreur de syntaxe php.
C’est volontairement ce qu’il ne faut pas faire 🙂

Pour faire ça simplement vous pouvez utiliser l’outil prestashopConsole qui est disponible ici : https://github.com/nenes25/prestashop_console
Et créer un module basique de test hhtestci  via la commande suivante :
php prestashopConsole.phar module:generate:module hhtestci

Dans ce module rajouter n’importe quelle erreur php, commiter et envoyer la modification dans git, puis faire une merge request comme nous l’avons vu dans l’étape précédente.
Dans le code de la merge request, rien ne nous indique qu’il y’a une erreur.…

Prestashop : Déploiement continu, vérifier la qualité du code Lire la suite »

Prestashop : Déploiement continu, qui peut livrer du code et ou

Cet article est le 2ème de la série sur le déploiement et l’intégration continu dans Prestashop.
Les autres articles articles de cette série sont les suivants :

Configuration initiale

Cette étape va surtout vous concerner si vous travaillez en équipe sur les projets et/ou si vous faites intervenir ponctuellement des intervenants externes.
Dans le cas ou vous travaillez tout seul, ce n’est pas forcément nécessaire mais c’est tout de même une bonne pratique.

Dans le cadre de mes projets j’ai toujours 3 environnements :

  1. Environnement local
  2. Environnement de préproduction ( branche git dev )
  3. Environnement de production ( branche git master )

Au niveau de git, le workflow utilisé est le suivant :

Toute nouvelle fonctionnalité est faite d’abord en local, dans une nouvelle branche, issue de master.…

Prestashop : Déploiement continu, qui peut livrer du code et ou Lire la suite »

Prestashop : Déploiement continu, initialisation du projet

Cet article est le 1er article de la série sur le déploiement et l’intégration continue dans Prestashop.
Les autres articles articles de cette séries sont les suivants :

Introduction

L’essentiel de l’article de 2017 que j’avais écrit sur le sujet reste d’actualité, à l’exception de la version de Prestashop et de la structure globale du projet.
Je vous invite donc à suivre l’ensemble des éléments de l’ancien article pour la base.
Celui-ci est disponible ici : https://www.h-hennes.fr/blog/2017/04/27/prestashop-passer-au-deploiement-continu/
Et je vais détailler uniquement les changements apportés.

Structure globale du projet

Dans le projet git, je recommande à présent de créer un sous-dossier qui  contiendra les fichiers du site.
Et non plus de mettre le code de Prestashop directement à la racine.

Pour ma part  je vais l’appeler www , mais libre à vous de lui en donner un autre nom.…

Prestashop : Déploiement continu, initialisation du projet Lire la suite »

Prestashop : Aller plus loin dans le déploiement continu

La gestion du code et son déploiement via la CI (Continuous Integration) / CD ( Continuous Deployment ) apporte un vrai confort dans la gestion des projets web.
Un projet prestashop n’en fait pas exception.

J’avais déjà fait un article sur le sujet il y’a quelques années : https://www.h-hennes.fr/blog/2017/04/27/prestashop-passer-au-deploiement-continu/
Celui-ci est encore basé sur la version 1.6.1, mais la logique de fonctionnement reste la même, et ce workflow de base est en place sur l’ensemble des mes projets depuis ce temps.
Mais nous allons voir ensemble qu’il est possible d’aller plus loin et se se simplifier encore plus la vie  à travers une nouvelle série d’articles.

Pour commencer j’ai prévu de faire un article rapide qui va définir certains changements par rapport à mon article initial.
Ainsi que gérer les versions plus récentes de Prestashop.

Puis je détaillerais une série de nouvelles étapes qui vont partir des besoins suivants :

  • Qui peut livrer du code et ou
  • Est-ce que la qualité du code livrée est correcte
  • Comment limiter les interactions manuelles
  • Est-ce que mon site fonctionne toujours après ma livraison de code.

Prestashop : Aller plus loin dans le déploiement continu Lire la suite »