Prestashop 1.6 sur un serveur récent ? C’est possible !

Petit retour d’expérience sur une migration de serveur que j’ai eu a faire il y’a quelques jours sur un vieux site prestashop qui tourne depuis une 10 aine d’années.
Je passe outre le fait qu’il serait nécessaire de le migrer vers une version supérieure de Prestashop 😉
L’ancien serveur tournait encore sur une débian 8 plus maintenue non plus depuis pas mal d’années.

Au final j’ai réussi à mettre en place le site de manière fonctionnelle sur une version ubuntu 24.04 serveur, qui devrait lui permettre de tourner encore quelques années si nécessaires.
Voyons ensemble les différentes étapes nécessaires :

Installation de php 5.6

Rien de très compliqué ici, grâce à notre ami ondrej qui permets d’installer facilement toutes les versions php de la 5.6 à la 8.4 sur ubuntu
On va installer un php-fpm de la version 5.6 avec toutes les extensions souhaitées qu’on utiliseras dans le vhost.

#Ajouter le ppa Ondrej
add-apt-repository ppa:ondrej/php
#Installer ensuite php5.6 et les différentes extensions nécessaires :
apt-get install php5.6-fpm php5.6-xml php5.6-gd php5.6-mcrypt php5.6-mysql php5.6-pdo

Pour avoir la liste complète des extensions nécessaires à installer pour Prestashop vous pouvez utiliser l’outil spécifique téléchargeable ici : https://github.com/PrestaShop/php-ps-info

Prestashop 1.6 sur un serveur récent ? C’est possible ! Lire la suite »

Magento 2 : Gagner du temps sur la création de vos DataPatch

Les datapatches magento permettent de déployer rapidement des changements spécifiques via un module sur l’ensemble des environnements de votre projet de manière automatique.

  • 
Ils sont rangés dans le dossier Setup/Patch/Data de votre module et ils implémentent l’interface \Magento\Framework\Setup\Patch\DataPatchInterface
  • Il sont appliqués automatiquement si nécessaire uniquement lors de l’exécution de la commande bin/magento setup:upgrade

Dans le cas de la réalisation de patchs complexes il peut être nécessaire de les rejouer plusieurs fois pour vérifier que tout fonctionne correctement.

La procédure à effectuer est la suivante :

  1. Suppression du patch dans la base de données dans la table patch_list
  2. Exécution de la commande bin/magento setup:upgrade


Cette procédure est relativement lente comme l’exécution du setup:upgrade est longue, car magento réalise pleins d’opérations autres que l’application des patches.


Nous allons voir ici comment gagner du temps à cette étape.



Nous allons utiliser une fonctionnalité qui est proposée par l’indispensable commande console n98-Magerun2 , que vous pouvez télécharger ici : https://github.com/netz98/n98-magerun2 


La commande qui nous intéresse est dev:console .…

Magento 2 : Gagner du temps sur la création de vos DataPatch Lire la suite »

Friends of Presta : Adhérez pour aller plus loin dans la communauté !

Je transfère le message d’information sur l’adhésion de l’association Friends of Presta dont je fais partie depuis plusieurs années 🙂
Et dont je vous invite à faire de même, il y’a le lien pour rejoindre le slack dans la barre de droite également.

Saviez-vous que notre communauté Slack rassemble aujourd’hui plus de 1000 utilisateurs actifs, mais seulement 100 adhérents ?
Ce déséquilibre entrave le développement de l’association et limite nos actions pour continuer à faire vivre et grandir Friends of Presta.

Adhérer, c’est bien plus qu’un geste de soutien, c’est accéder à des avantages uniques :

  • Des formations exclusives pour enrichir vos compétences.
  • Des tarifs préférentiels sur nos événements phares, comme les FOP Days et les Meetups locaux.
  • Des réductions auprès de nos partenaires pour vos projets e-commerce.
  • Accompagnement à la contribution dans le projet open source avec la contrib academy

Et bien sûr, l’opportunité de contribuer activement à l’avenir de la communauté PrestaShop.

Notre objectif : renforcer la communauté ensemble !

Friends of Presta : Adhérez pour aller plus loin dans la communauté ! Lire la suite »

Prestashop : Simplifier les migrations de version avec une commande console

Comme vous avez sans doute pu le suivre sur mes derniers articles sur le blog, j’essaye d’automatiser au maximum toutes les actions lors du déploiement des sites Prestashop.
Si besoin je vous renvoie vers la série d’articles ici : https://www.h-hennes.fr/blog/2023/09/16/prestashop-deploiement-continu-initialisation-du-projet/

Il y’a cependant encore un point qui me posait pas mal problème c’est les mises à jour de version de Prestashop.
Pour les mises à jour mineures, l’utilisation du module autoupgrade fait tout à fait l’affaire, mais il n’est pas pratique à utiliser dans car il est nécessaire de le lancer directement sur l’instance pour réaliser les différentes mises à jour.

Avec un workflow standard de CI/CD ce n’est pas possible de travailler de cette manière.
Les fichiers changés peuvent facilement être suivis via git, mais il est toujours nécessaire d’appliquer les mises à jour de la base de données.
Et le module autoupgrade ne permets pas à ma connaissance de le faire facilement

Je n’ai pas trouvé de solution existante et pratique pour faire cela, mais comme souvent avec Prestashop la création d’un module permets de répondre facilement à la problématique.…

Prestashop : Simplifier les migrations de version avec une commande console Lire la suite »

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 »

Magento 2 : Mute logs Add of item with id … and other useless in developement

Note rapide sur comment réduire au silence les logs du module Magento_Backend qui remplis le fichier system.log  avec des centaines d’entrées inutiles du type

[2024-02-10T17:13:48.877379+00:00] main.INFO: Add of item with id Magento_Sales::sales was processed [] []
[2024-02-10T17:13:48.878055+00:00] main.INFO: Add of item with id Magento_Sales::sales_operation was processed [] []

Pareil pour moi qui fait essentiellement du développement back office pour tous les logs du type

[2024-02-13T10:54:24.978175+00:00] report.INFO: Broken reference: the ‘catalog.leftnav’ element cannot be added as child to ‘sidebar.main’, because the latter doesn’t exist [] []

Cela  noie les informations intéressantes d’autant que c’est une information qui n’est pas très utile.

Pour masquer ça la méthode la plus simple est de faire un fichier patch, avec le contenu suivant  :
Dans un fichier qui s’appelerais par exemple : LOCAL-mute-useless-logs.patch

diff --git a/vendor/magento/framework/View/Layout/Data/Structure.php b/vendor/magento/framework/View/Layout/Data/Structure.php
--- a/vendor/magento/framework/View/Layout/Data/Structure.php
+++ b/vendor/magento/framework/View/Layout/Data/Structure.php
@@ -122,10 +122,10 @@
                 $siblingParentName = $this-getParentId($sibling);
                 if ($parentName !== $siblingParentName) {
                     if ($this-state-getMode() === State::MODE_DEVELOPER) {
-                        $this-logger-info(
+                        /*$this-logger-info(
                             "Broken reference: the '{$childName}' tries to reorder itself towards '{$sibling}', but " .

Magento 2 : Mute logs Add of item with id … and other useless in developement 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 »