Entreprise et services Information

Notre stack technologique pour modules PrestaShop

Découvrez l'écosystème de packages partagés derrière les modules mypresta.rocks. 12 bibliothèques propriétaires, interface admin cohérente et compatibilité.

La stack derriere 151 modules

Chaque module que nous livrons repose sur un socle commun d'environ 38 packages Composer internes. Ce ne sont pas de simples wrappers -- ce sont des bibliotheques que nous avons construites et maintenues depuis ~2015 pour resoudre des problemes recurrents dans le developpement de modules PrestaShop : interfaces admin, selection d'entites, compatibilite multi-versions, gestion des URL, suivi de session, planification.

Quand vous installez un de nos modules, vous obtenez des annees d'ingenierie accumulee. Un bug corrige dans un package se propage a chaque module qui l'utilise des la prochaine mise a jour.

Infrastructure de developpement

Nous gerons tout sur un serveur TrueNAS (Debian 12, 64 Go de RAM) avec plus de 25 conteneurs Docker -- boutiques de production, environnements de staging, generateurs de demos, outils de developpement. La toolchain : PHP 8.4, Node.js 20, Composer 2.8, Redis pour le cache partage, Claude Code et Codex pour le developpement assiste par IA, VS Code comme editeur.

Chaque module est teste sur PrestaShop 1.7.6 a 9.1, plusieurs versions de PHP et differentes configurations serveur avant publication. Un seul ZIP couvre toutes les versions supportees -- pas de builds separees par version majeure de PS.

Les packages partages

prestashop-admin

Le socle de chaque panneau d'administration de module. Fournit les controleurs de base (MPRAdminController, MPRListController) avec upload d'images AJAX integre, edition en ligne et modals de champs. Filtrage base sur la base de donnees avec six types de filtres. Gestion des colonnes avec persistance par employe. Plus de 20 composants JavaScript (datepickers, modals, toasts, editeurs en ligne, listes AJAX) et plus de 35 styles de composants SCSS.

C'est pourquoi chaque panneau d'administration mypresta.rocks a le meme rendu. Ce n'est pas un guide de style -- c'est du code partage avec plus d'une decennie d'iteration.

prestashop-entity-selector

Un widget universel pour selectionner des entites PrestaShop avec une logique d'inclusion/exclusion. 18 types d'entites, plus de 130 methodes de selection, regroupement booleen AND/OR, et apercu en direct. Au lieu que chaque module reinvente la selection de produits avec un simple autocomplete, ils partagent tous un composant teste.

"Tous les produits de la categorie X, sauf ceux du fabricant Y, a moins qu'ils ne soient en promotion" -- c'est une seule configuration d'entity selector.

prestashop-compat

PrestaShop change considerablement entre les versions. Signatures de controleurs, chemins de templates, formats de reponse AJAX, noms de hooks -- tout differe entre 1.7, 8.x et 9.x. Ce package absorbe ces differences. Les modules programment contre une API stable, et la couche de compatibilite gere le comportement specifique a la version en dessous. C'est ainsi que nous supportons PS 1.7.6 a 9.1 depuis une seule base de code sans encombrer le code de verifications de version.

Exemple : Tools::displayPrice() a ete supprime dans PS 9.0. Notre wrapper PriceFormatter::format() detecte la version et appelle la bonne methode.

prestashop-integrity

Gestion du schema de base de donnees et auto-reparation. Quand la structure des tables d'un module derive de ce qui est attendu (colonnes manquantes, types incorrects, index absents), le package d'integrite detecte et repare automatiquement. Gere le sauvetage des onglets d'administration et les mises a jour en un clic pour les 151 modules.

prestashop-license

Verification de licence qui transmet uniquement le domaine, la version du module et la cle de licence. Rien d'autre. Pas de donnees client, pas d'analytics boutique, pas de tracking.

prestashop-search

Moteur de recherche partage avec tokenisation, gestion des dimensions et synchronisation. Utilise par les modules qui necessitent une recherche full-text sur les entites PrestaShop -- produits, pages CMS, articles de blog.

prestashop-url

Gestion des URL avec generation basee sur des patterns, integration du cycle de vie des entites, et backends de stockage interchangeables. Quand un produit est cree ou mis a jour, les URL se regenerent automatiquement. Alimente SEO Revolution et Friendly URL.

prestashop-icons

Mapping d'icones adapte au theme. Hummingbird utilise Material Icons, Classic utilise Font Awesome, les themes tiers utilisent autre chose. Ce package associe des noms semantiques ("cart", "edit", "delete") au jeu d'icones du theme actif. Inclut egalement 38 icones de marques de paiement et 12 icones de reseaux sociaux sous forme de sprites SVG.

prestashop-session

Suivi de session partage entre les modules via une seule table mpr_sessions. Detection de bots, fingerprinting d'appareil, identification de session coherente. Security Revolution et Checkout Revolution partagent les donnees de session au lieu que chacun suive independamment.

prestashop-schedule et prestashop-public-holidays

Logique temporelle : plages de dates/heures, planifications hebdomadaires recurrentes, gestion des fuseaux horaires, et base de donnees centralisee de jours feries. "Appliquer cette remise les jours ouvrables sauf les jours feries" est une seule configuration dans Sales Revolution.

template-injector

Certains modules doivent placer du contenu la ou PrestaShop ne fournit pas de hooks. Ce package scanne les fichiers Smarty .tpl, trouve les points d'injection et insere la sortie du module. Gere les themes enfants, les overrides de templates et les fallbacks du theme parent. Trace ce qui a ete injecte ou, pour pouvoir se retirer proprement a la desinstallation.

Et le reste

prestashop-front (composants UI frontend), prestashop-target-conditions (regles d'affichage conditionnel par groupe de clients, pays, appareil, valeur du panier), prestashop-crawler (moteur curl_multi partage pour les health checks et le scan d'URL), et d'autres. Environ 38 packages au total, chacun avec son propre versionnage et ses contraintes Composer.

Pourquoi c'est important pour vous

Coherence : Chaque panneau d'administration fonctionne de la meme facon. Meme filtrage, meme gestion des colonnes, memes raccourcis clavier. Apprenez un module, vous les connaissez tous.

Fiabilite : Un correctif dans prestashop-admin est corrige dans chaque module des la prochaine mise a jour. Les patchs de securite se propagent partout.

Support multi-versions : La couche de compatibilite signifie que vous pouvez mettre a jour PrestaShop sans craindre que nos modules ne cassent.

Pas de conflits : Les modules qui partagent des tables de base de donnees (ps_mpr_config, mpr_sessions, mpr_public_holidays) sont concus pour coexister. Installez cinq de nos modules et ils se coordonnent via l'infrastructure partagee.

Architecture

Tous les packages partages utilisent le namespace PHP MyPrestaRocks avec l'autoloading PSR-4. Ils sont synchronises via des scripts de deploiement en tant que vraies dependances Composer -- chacun avec ses contraintes de version, chacun maintenu comme une bibliotheque separee. Quand vous regardez dans le repertoire vendor/myprestarocks/ d'un module, vous regardez du vrai code maintenu.

Voyez-le en action

La meilleure facon de comprendre ce que font ces packages est d'essayer un module. Chaque module du catalogue offre une demo gratuite -- installez-le, ouvrez le panneau d'administration et voyez l'infrastructure partagee a l'oeuvre.

Des questions sur l'architecture ou interesse par du developpement sur mesure ? Contactez-nous.

Chargement...
Retour en haut