v2.0.0 — PrestaShop 1.7 → 9

Prestadget Analytics API

REST API JSON pour statistiques PrestaShop — clients, commandes, CA, produits, coupons, visiteurs.

v2.0.0 Stable Acheter

Présentation

Prestadget est un module PrestaShop open source qui expose les données de votre boutique via une API REST JSON sécurisée. Il permet à des applications externes (dashboards, apps mobiles, scripts) de récupérer des statistiques en temps réel.

Architecture modulaire
9 contrôleurs indépendants dispatché par un router central
2 tables SQL
prestadget_api_logs et prestadget_ip_bans
6 onglets back-office
Logs, Erreurs, Sécurité, Config, Documentation
Zéro dépendance
Aucune librairie externe requise, 100% natif PS

Installation

1
Copier le module
Déposez le dossier prestadget/ dans /modules/ de votre PrestaShop.
2
Installer depuis le back-office
Allez dans Modules → Gestionnaire de modules, cherchez "Prestadget" et cliquez Installer.
3
Tables SQL créées automatiquement
L'installation crée prestadget_api_logs et prestadget_ip_bans et enregistre les onglets d'administration.
4
Tester l'API
Accédez à /module/prestadget/api — vous devez recevoir le JSON d'info.
# Réponse attendue sur GET /module/prestadget/api { "name": "Prestadget REST API", "version": "2.0.0", "available_routes": ["auth", "dashboard", "orders", ...] }

Authentification

L'API utilise un système de tokens Bearer. Vous devez d'abord obtenir un token via la route auth, puis l'inclure dans chaque requête suivante.

POST
/module/prestadget/api?route=auth

Corps de la requête (JSON) :

{ "email": "admin@maison.com", "password": "monMotDePasse" }

Réponse :

{ "success": true, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "expires_in": 3600 }

Ensuite, ajoutez le token dans l'entête de chaque requête :

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Routes API

Toutes les routes sont accessibles via GET /module/prestadget/api?route=nom_route avec l'entête Bearer.

GET
?route=dashboard Authentifié

Vue synthétique de la boutique : commandes du jour, CA, clients, produits top.

{ "orders_today": 47, "revenue_today": 3240.50, "new_customers": 12, "pending_orders": 8 }
GET
?route=orders Authentifié

Liste des commandes avec pagination, filtrage par période, statut, client.

ParamètreTypeDescription
pageintNuméro de page (défaut: 1)
limitintRésultats par page (défaut: 20)
periodstringtoday / week / month / year
statusintID statut PrestaShop
GET
?route=revenue Authentifié

Chiffre d'affaires agrégé par période, comparaison N-1, courbe journalière.

GET
?route=customers Authentifié

Liste clients, détail par ID, segments (actifs, inactifs, nouveaux), top acheteurs.

GET
?route=products Authentifié

Catalogue produits, stock, best-sellers, produits sans stock.

GET
categories
Arborescence catégories
GET
coupons
Codes promo et stats
GET
visitors
Trafic et visites

Sécurité

Prestadget intègre plusieurs mécanismes de protection actifs dès l'installation.

IP Ban

Ban automatique après N échecs d'authentification. Durée configurable (défaut 1440 min). Gestion manuelle via l'onglet Sécurité.

Rate Limiting

Maximum 60 requêtes par fenêtre de 60 secondes. Répond 429 Too Many Requests si dépassé.

Détection IP avancée

Compatible Cloudflare, Nginx proxy, load balancers. Utilise CF-Connecting-IP, X-Real-IP, X-Forwarded-For.

Logs complets

Chaque requête est loggée : IP, route, méthode HTTP, code réponse, temps (ms), user-agent. Purge automatique.

Codes de réponse HTTP
CodeSignification
200Succès
401Token manquant ou invalide
403IP bannie
404Route inconnue
405Méthode HTTP non autorisée
429Rate limit dépassé
503API désactivée (mode maintenance)

Configuration

Tous les paramètres sont modifiables depuis l'onglet Configuration du back-office.

CléDéfautDescription
PRESTADGET_LIVE_MODEtrueActive/désactive l'API entière
PRESTADGET_RATE_LIMIT60Nombre max de requêtes par fenêtre
PRESTADGET_RATE_WINDOW60Durée de la fenêtre en secondes
PRESTADGET_MAX_FAILS5Tentatives avant ban automatique
PRESTADGET_BAN_DURATION1440Durée du ban en minutes (0 = permanent)
PRESTADGET_LOG_RETENTION30Rétention des logs en jours

Back-office

Prestadget ajoute 6 onglets dans le menu Améliorer de PrestaShop :

Prestadget
Menu parent
API Logs
Historique des requêtes
Erreurs
Requêtes en échec
Sécurité
Gestion des IP bannies
Configuration
Paramètres du module
Documentation
Guide intégré