Notification de Retard de Commande
Ce module est conçu pour vérifier quotidiennement les commandes en retard sur un site PrestaShop via une tâche CRON. Lorsqu'un retard est détecté, le script identifie le client concerné, récupère son email, et lui envoie un message d'excuse.
Fonctionnalités principales
Vérification des commandes :
Parcourt les commandes depuis l'API PrestaShop.
Identifie les commandes en retard en fonction de leur date de livraison estimée.
Gestion des emails :
Vérifie si un email a déjà été envoyé pour une commande donnée.
Marque les commandes traitées pour éviter les doublons.
Envoi d'email :
Récupère les informations du client.
Envoie un email personnalisé en cas de retard.
Base de données :
Utilise une base PostgreSQL pour suivre les commandes pour lesquelles un email a déjà été envoyé.
Workflow du module
1. Initialisation
Base de données
Le script initialise une table PostgreSQL appelée sent_emails
pour enregistrer les références des commandes déjà traitées :
Configuration API
Chaque boutique PrestaShop est configurée dans le script via un dictionnaire contenant :
Clé API
URL de l’API des commandes
Nom de la boutique
URL et logo de la boutique
Exemple :
2. Récupération des commandes
Étape 1 : Dernier ID de commande
Pour limiter les requêtes, le module récupère l'ID de la commande la plus récente via l'API PrestaShop :
Requête :
Réponse attendue :
Code :
Étape 2 : Parcours des commandes
Le module parcourt les commandes récentes, jusqu'à 1000 en arrière :
Requête :
Réponse attendue :
Code :
3. Vérification des retards
Une commande est considérée comme en retard si :
Sa date de livraison estimée est dépassée.
Son statut actuel correspond à "En cours de traitement" (ID = 3).
Code :
4. Récupération des informations client
Une fois qu'une commande en retard est identifiée, le module récupère les informations du client via l'ID client :
Requête :
Réponse attendue :
Code :
5. Envoi d'email
L'email est personnalisé avec les informations du client et de la commande.
Exemple de template :
Code :
6. Gestion des emails envoyés
Avant d'envoyer un email, le module vérifie si l'email a déjà été envoyé en consultant la table PostgreSQL.
Code :
Emplacement du module
Le script est exécuté via une tâche CRON quotidienne. Le fichier est situé à :
Chemin :
/var/www/scripts/notify_late_orders.py
Last updated