Notre stack technologique pour modules PrestaShop | mypresta.rocks
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é.
Pas seulement des modules — une plateforme
Chaque module mypresta.rocks fonctionne sur une fondation partagée de 12 packages propriétaires que nous avons développés et maintenus depuis 2012. Ce ne sont pas des wrappers ou des générateurs de boilerplate — ce sont des bibliothèques construites sur mesure qui résolvent des problèmes complexes dans le développement de modules PrestaShop.
Quand vous installez un de nos modules, vous obtenez des années d'ingénierie accumulée : des interfaces admin cohérentes, une sélection d'entités intelligente, une compatibilité multi-versions de PS 1.6 à 9.x, et une infrastructure partagée qui signifie que les bugs corrigés dans un module sont corrigés partout.
Les packages partagés
prestashop-admin
Notre package le plus fondamental. Chaque panneau d'administration de module est construit dessus — une boîte à outils UI complète qui fournit :
- Controleurs de base — MPRAdminController et MPRListController avec upload d'images AJAX intégré, édition en ligne et modals de champs
- Filtrage avancé — filtrage basé sur la base de données avec six types de filtres : texte, plage numérique, plage de dates, sélection, sélection multiple et booléen
- Gestion des colonnes — les utilisateurs choisissent quelles colonnes afficher, sauvegardent des presets, et l'état persiste par employé
- 20+ composants JavaScript — datepickers, modals, toasts, éditeurs en ligne, listes AJAX, tous fonctionnant ensemble
- 35+ styles de composants SCSS — apparence cohérente à travers chaque module, chaque version de PrestaShop
C'est pourquoi chaque panneau d'administration de module mypresta.rocks a la même apparence. Ce n'est pas une coïncidence — c'est une boîte à outils partagée avec plus d'une décennie d'itération.
prestashop-entity-selector
Probablement notre package le plus complexe. Un widget universel pour sélectionner des entités PrestaShop avec une logique d'inclusion/exclusion.
- 18 types d'entités — produits, catégories, fabricants, fournisseurs, pages CMS, employés, clients, groupes de clients, transporteurs, zones, pays, devises, langues, boutiques, profils, états de commande, taxes et plus
- 130+ méthodes de sélection — sélectionner des produits par catégorie, fabricant, tag, attribut, caractéristique, combinaison, condition, visibilité, état de stock, fourchette de prix, plage de dates, plage d'ID, motif de nom et des dizaines d'autres
- Logique d'inclusion/exclusion — définissez ce qui est inclus, puis découpez les exceptions. « Tous les produits de la categorie X, sauf ceux du fabricant Y, à moins qu'ils ne soient en promotion »
- Regroupement avec AND/OR — plusieurs groupes de sélection combinés avec une logique booléenne, chacun avec sa propre limite et son tri
- Aperçu en direct — voyez les éléments correspondants se mettre à jour en temps réel lorsque vous ajustez les conditions
Au lieu que chaque module réinvente la sélection de produits avec un simple autocomplete, ils partagent tous un composant puissant et testé.
prestashop-compatibility
PrestaShop change considérablement entre les versions. Signatures de contrôleurs, chemins de templates, formats de réponse AJAX, noms de hooks — tout est différent entre 1.7 et 8.x et 9.x.
Ce package absorbe ces differences. Les modules programment contre une API stable, et la couche de compatibilité gère le comportement spécifique à la version en dessous. C'est ainsi que nous supportons PS 1.6 à 9.x à partir d'une seule base de code sans encombrer le code de vérifications de version.
template-injector
Certains modules doivent injecter du contenu dans les templates du theme sans nécessiter de modifications manuelles. Ce package scanne les fichiers Smarty .tpl, identifie les points d'appel de hooks et injecte la sortie du module au bon endroit.
- Scan automatique des templates — découvre les points d'injection dans n'importe quel thème
- Résolution adaptée au thème — gère les thèmes enfants, les overrides de templates et les fallbacks du thème parent
- Suivi des injections — sait ce qui a été injecté où, pour pouvoir se retirer proprement à la désinstallation
- Gestion des profils — différentes configurations d'injection pour différents contextes
Utilise par des modules comme mprsubtitles, mprblogrevolution et mprhtmlblocks qui doivent placer du contenu à des emplacements où PrestaShop ne fournit pas de hooks.
prestashop-url
La gestion des URL dans PrestaShop est notablement fragile. Ce package fournit un veritable moteur d'URL avec gestion de patterns, routage et gestion du cycle de vie des entites.
- Génération d'URL basée sur des patterns — définissez des patterns d'URL avec des variables, générez automatiquement des URL SEO-friendly
- Intégration du cycle de vie des entités — quand un produit ou une catégorie est créé, mis à jour ou supprimé, les URL se mettent à jour automatiquement
- Backends de stockage interchangeables — patterns basés sur la base de données ou la configuration selon le cas d'utilisation
- Gestion du schema — gère sa propre création et migration de tables de base de données
Alimente mprseorevolution et mprfriendlyurl.
prestashop-icons
Les thèmes PrestaShop utilisent différents sets d'icones — Hummingbird utilise Material Icons, Classic utilise Font Awesome, certains themes tiers utilisent quelque chose de complètement différent.
- Noms d'icônes sémantiques — les modules utilisent des noms comme « cart », « success », « edit », « delete » au lieu de noms de classes spécifiques aux polices
- Détection du thème — détecte automatiquement quel set d'icônes le thème actif utilise et associe les noms sémantiques aux bonnes classes
- Auto-hébergement — si le thème n'inclut pas la police d'icones nécessaire, le package l'intègre
- Feuilles de sprites SVG — 38 icônes de marques de paiement et 12 icônes de réseaux sociaux avec des variantes claires, sombres et d'accentuation
prestashop-session
Suivi de session partage entre les modules, utilisant une seule table de base de données mpr_sessions.
- Detection de bots — identifie les crawlers et le trafic automatisé avant qu'ils n'atteignent la logique du module
- Empreinte d'appareil — detection du navigateur, du système d'exploitation et du type d'appareil
- Hachage de session — identification de session cohérente à travers les chargements de pages
Utilise par mprsecurityrevolution et mprcheckoutrevolution — ils partagent les données de session au lieu que chacun suive indépendamment.
prestashop-schedule & prestashop-public-holidays
Logique temporelle dont plusieurs modules ont besoin :
- Widget de planification — plages de dates/heures, planifications hebdomadaires récurrentes, gestion des fuseaux horaires
- Gestion des jours feries — base de données centralisée de jours fériés partagée entre les modules via la table mpr_public_holidays
- Utilises ensemble — « appliquer cette remise les jours ouvrables sauf les jours fériés » dans mprsalesrevolution, ou « afficher ces résultats de recherche uniquement pendant les heures d'ouverture » dans mprsearchrevolution
prestashop-target-conditions & prestashop-front
Packages plus récents dans notre écosystème :
- Target Conditions — règles de ciblage réutilisables (par groupe de clients, pays, appareil, valeur du panier, etc.) partagées entre les modules qui nécessitent une logique d'affichage conditionnelle
- Composants front — blocs de construction d'interface utilisateur frontend pour la sortie de module côté client, garantissant un style cohérent sans conflits de thème
Pourquoi c'est important pour vous
Cohérence
Chaque panneau d'administration de module fonctionne de la même manière. Même filtrage, même gestion des colonnes, mêmes raccourcis clavier, mêmes patterns AJAX. Apprenez un module, et vous savez comment ils fonctionnent tous. Ce n'est pas un guide de style — c'est du code partage.
Fiabilité
Un bug corrigé dans prestashop-admin est corrigé dans chaque module qui l'utilise lors de la prochaine mise à jour. Les correctifs de sécurité se propagent partout. Quand nous optimisons les requêtes de base de données de l'entity selector, chaque module avec sélection de produits devient plus rapide.
Support multi-versions
La couche de compatibilité signifie que vous pouvez mettre à jour PrestaShop sans vous soucier de la compatibilité de nos modules. Nous testons sur PS 1.6, 1.7, 8.x et 9.x — et l'infrastructure partagée gère les différences pour que les modules individuels n'aient pas à le faire.
Pas de conflits
Les modules qui partagent des tables de base de données (ps_mpr_config, mpr_sessions, mpr_public_holidays) sont conçus pour coexister. Installez cinq de nos modules et ils se coordonnent via l'infrastructure partagée au lieu de se gêner mutuellement.
Leger
Les packages partagés signifient du code partage. L'entity selector n'est pas dupliqué dans chaque module — il est installé une fois et utilisé par tous. Cela garde les fichiers ZIP des modules plus petits et évite le gonflement lié à l'intégration multiple de la même bibliothèque.
Les chiffres
- 12 packages partagés maintenus comme bibliothèques séparées avec leur propre versionnement
- 30+ modules construits sur cette fondation
- 130+ méthodes de sélection d'entites dans l'entity selector seul
- 4 versions majeures de PrestaShop supportées à partir d'une seule base de code (1.6, 1.7, 8.x, 9.x)
- 20+ composants JavaScript admin pour une interactivité cohérente
- 13 ans de développement continu depuis 2012
Architecture ouverte
Tous les packages partages utilisent le namespace PHP MyPrestaRocks avec l'autoloading PSR-4. Ils sont installes via Composer comme de vraies dépendances — pas copiés-collés dans les répertoires de modules. Chaque package a ses propres contraintes de version, et les modules déclarent les versions dont ils ont besoin.
Cela signifie que quand vous regardez dans le répertoire vendor/myprestarocks/ d'un module, vous regardez de vraies bibliothèques maintenues — pas des dépôts de code abandonnés.
Voyez-le en action
La meilleure façon de comprendre ce que font ces packages est d'essayer un module. Chaque module de notre catalogue offre une demo gratuite — installez-le, ouvrez le panneau d'administration et voyez l'infrastructure partagée à l'œuvre.
Des questions sur notre architecture ou intéressé par du développement sur mesure ? Contactez-nous.