Connecter PrestaShop à Epsylon
Un module à installer sur votre boutique, une clé d'API à coller, vos références alignées et une ligne de crontab : le stock de la boutique suit celui de l'atelier, et les commandes web arrivent dans Epsylon. Comptez une vingtaine de minutes.
Version 1.0.0 · PrestaShop 1.7.6 → 8.x · PHP 7.4
Avant de commencer
- Un compte Epsylon avec le module e-commerce (offre Shop)
- Une boutique PrestaShop 1.7.6 ou plus récente, jusqu'à la 8.x
- PHP 7.4 minimum sur l'hébergement
- L'accès à la planification de tâches (crontab) de votre hébergement
Installation pas à pas
1. Créer la clé d'API dans Epsylon
Dans Epsylon : Paramètres → Intégrations → Clés API → Créer une clé. Donnez-lui un nom explicite (« Boutique PrestaShop ») et choisissez le magasin concerné.
- La clé et le secret ne s'affichent qu'une seule fois, à la création : copiez-les immédiatement.
- Une clé est liée à un magasin : avec plusieurs magasins, créez une clé par boutique.
- Permissions nécessaires : read et write:orders. Ajoutez write:stock uniquement si vous comptez remonter le stock de la boutique vers Epsylon.
Une clé créée sans préciser ses permissions n'a que « read ». Elle répond correctement aux lectures et refuse toutes les écritures. Le test de connexion du module interroge /v1/me et vous nomme précisément les permissions manquantes — il ne peut pas afficher « connexion réussie » sur une clé insuffisante.2. Activer PrestaShop côté Epsylon
Toujours dans Paramètres → Intégrations, ouvrez le panneau PrestaShop et activez-le. Tant que l'intégration est désactivée, Epsylon rejette les commandes envoyées par la boutique.
- Vendeur associé aux commandes web. À défaut, Epsylon crée un utilisateur système « prestashop_bot » qui portera ces documents.
- Type de document créé à réception d'une commande : brouillon, bon de commande ou facture.
- Email de notification, facultatif : vous recevez un message à chaque commande synchronisée.
3. Installer le module sur PrestaShop
Téléchargez l'archive ZIP en haut de cette page, puis dans PrestaShop : Modules → Gestionnaire de modules → Installer un module → sélectionner le fichier.
- Compatible PrestaShop 1.7.6 à 8.x, PHP 7.4 minimum.
- Le module crée sa propre table de journal et s'abonne à trois hooks : validation de commande, changement d'état, mise à jour de quantité.
- Pour mettre à jour, téléversez simplement la nouvelle archive : vos réglages sont conservés.
4. Renseigner la connexion
Ouvrez la configuration du module. Saisissez l'adresse de votre instance Epsylon, la clé et le secret, enregistrez, puis cliquez sur « Tester la connexion ».
- L'adresse est celle de votre instance, par exemple https://app-epsylon.fr — sans barre oblique finale et sans /api.
- Le test affiche le magasin et la société auxquels la clé donne accès : c'est le moyen de vérifier que vous n'avez pas collé la clé d'un autre magasin.
- Le champ secret affiche des points une fois enregistré. Le laisser tel quel conserve la valeur en place.
5. Aligner les références
C'est le point qui décide de tout. La correspondance entre les deux catalogues se fait par référence : le champ « Référence » de la fiche PrestaShop doit être strictement identique au SKU du produit Epsylon — majuscules, tirets et espaces compris.
- Produits simples : product.reference ↔ SKU du produit Epsylon.
- Déclinaisons : la référence propre à chaque déclinaison ↔ SKU de la déclinaison Epsylon. Une déclinaison sans référence propre ne peut pas être synchronisée, et sa commande remontera sous la référence du parent.
- Référence différente ou absente : la commande arrive quand même, mais en ligne libre, au prix de la boutique et avec une TVA de 20 % par défaut, sans mouvement de stock.
- Avant la première synchronisation, exportez vos deux catalogues et comparez. C'est une heure de travail qui évite des semaines d'écarts de stock.
6. Mettre en place la tâche planifiée
C'est la seule vraie différence avec WooCommerce. PrestaShop ne déclenche aucune tâche périodique de lui-même : la synchronisation descendante doit être appelée par la planification de votre hébergement. L'écran du module affiche la ligne exacte à copier, jeton compris.
- Une exécution horaire convient à la plupart des boutiques. Rapprochez-la si votre stock tourne vite.
- L'URL est protégée par un jeton généré à l'installation. Vous pouvez le régénérer depuis l'écran du module — pensez alors à mettre à jour la ligne de crontab.
- Un bouton « Synchroniser maintenant » permet de déclencher un cycle à la main, et « Reprise complète » de tout resynchroniser après un incident.
- Si votre boutique utilise des états de commande personnalisés pour les annulations ou les retours, déclarez leurs identifiants dans le champ prévu : sans eux, le stock réservé dans Epsylon ne sera pas libéré.
Sans tâche planifiée, les commandes remontent toujours vers Epsylon (elles partent en temps réel), mais le stock de la boutique ne descend plus. C'est le mode de panne le plus courant, et le plus silencieux : tout semble fonctionner jusqu'à la première survente.
Ce qui se passe à chaque commande
Rien n'est validé à votre place : une commande web devient un brouillon que vous contrôlez.
La commande est passée sur votre site
Le module envoie la commande à Epsylon dès sa validation, puis à chaque changement d'état : paiement accepté, expédition, annulation ou remboursement. Les trois états d'annulation natifs de PrestaShop sont reconnus d'office ; si vous avez créé vos propres états d'annulation, déclarez-les dans la configuration du module.
Epsylon crée le document
Un document du type que vous avez choisi est créé en brouillon, au nom du client, avec ses adresses de facturation et de livraison et le mode de paiement en commentaire.
Les lignes sont rattachées à vos produits
Chaque ligne est recherchée par référence, d'abord parmi les produits puis parmi les déclinaisons. Trouvée, elle reprend le prix et le taux de TVA d'Epsylon — pas ceux du site. Pour un produit simple, la quantité est réservée sur le stock du magasin ; pour une déclinaison, elle ne l'est pas (voir l'encadré ci-dessous).
Vous validez comme d'habitude
Le document reste en brouillon jusqu'à votre contrôle. Si la commande passe dans un état d'annulation reconnu par le module, Epsylon libère la quantité réservée — pour les produits simples, seuls concernés par la réservation.
La commande web réserve le stock, elle ne le déduit pas. La sortie définitive intervient à la validation du document, comme pour une vente au comptoir. Une réserve à connaître : Epsylon ne tient pas de stock réservé par déclinaison. Concrètement, la vente d'une déclinaison ne pose aucune réservation, et la quantité publiée en boutique est le stock brut. Sur un catalogue essentiellement composé de déclinaisons, la réservation ne joue donc pas — le stock reste juste, mais il n'est pas mis de côté entre la commande et la validation.
Dépannage
- « Connexion établie » mais des permissions sont signalées manquantes
- La clé n'a pas tous les droits nécessaires. Dans Epsylon, ouvrez Paramètres → Intégrations → Clés API et ajoutez les permissions nommées dans le message, ou recréez une clé depuis cet écran.
- « Clé ou secret refusé par Epsylon (401) »
- La clé ou le secret comporte un espace en trop, ou la clé a été révoquée. Le secret n'étant affiché qu'à la création, il n'est pas récupérable : générez une nouvelle clé si vous l'avez perdu.
- « Clé valide mais IP non autorisée (403) »
- La clé porte une liste d'adresses IP autorisées qui n'inclut pas celle de votre hébergement. Ajoutez l'IP sortante de votre serveur PrestaShop, ou retirez la restriction.
- Les commandes remontent, mais le stock ne descend jamais
- La tâche planifiée n'est pas en place, ou le jeton a été régénéré depuis sa mise en place. Vérifiez la ligne de crontab affichée dans l'écran du module, et appelez l'URL manuellement dans un navigateur pour voir la réponse.
- Le stock affiché en ligne est inférieur à celui d'Epsylon
- C'est le comportement attendu : la boutique publie le stock disponible, donc déduction faite des quantités réservées par les commandes et les réparations en cours.
- Le prix affiché en boutique ne correspond pas à celui d'Epsylon
- PrestaShop stocke les prix hors taxes et applique ensuite la règle de taxe de la fiche. Le module convertit le prix TTC d'Epsylon en HT avec le taux de TVA d'Epsylon : si la règle de taxe PrestaShop porte un taux différent, le TTC affiché diverge. Alignez les deux, ou laissez la synchronisation des prix désactivée.
- Une déclinaison remonte sous la référence du produit parent
- La déclinaison n'a pas de référence propre dans PrestaShop. Renseignez-la dans l'onglet Déclinaisons de la fiche produit, en reprenant le SKU de la déclinaison Epsylon.
Journal des versions
- Synchronisation du stock et des prix depuis Epsylon, produits et déclinaisons, par lots paginés.
- Synchronisation incrémentale : seuls les articles modifiés depuis le dernier cycle sont redemandés.
- Remontée des commandes en temps réel : création, paiement, expédition, annulation (états natifs et états personnalisés déclarés).
- Test de connexion vérifiant les permissions réelles de la clé.
- Journal de synchronisation consultable depuis l'écran du module.
- Tâche planifiée protégée par jeton, régénérable.
Vous êtes plutôt sur WooCommerce ?
Une extension équivalente existe pour WooCommerce. Et pour tout le reste, l'API publique d'Epsylon est documentée et ouverte : n'importe quel site peut y lire le stock et y déposer ses commandes.