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

  1. 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.

  2. 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.

  3. Envoi d'email :

    • Récupère les informations du client.

    • Envoie un email personnalisé en cas de retard.

  4. 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