Architecture globale du système automatisé de traitement des commandes marée Carrefour
Le système est organisé en chaîne de traitement automatique en 4 étapes, visant à remplacer l’ensemble des manipulations humaines nécessaires au traitement quotidien des commandes du rayon marée. Ce système en étapes distincte à été choisi pour son aspect modulaire, maintenable et traçable.
1. impcarf.py – Téléchargement automatisé des commandes WebOffre
🎯 Objectif :
• Automatiser la récupération quotidienne des commandes envoyées par Carrefour (rayon marée), depuis le portail WebOffre.
⚙️ Fonctionnalités :
• Connexion au portail via Selenium (headless).
• Authentification sécurisée avec identifiants stockés dans .env.
• Sélection du statut “Commande envoyée” (option value="B" dans le menu déroulant).
• Récupération des liens de téléchargement .xls (transformation edit/ → exportCsv/).
• Téléchargement des fichiers dans commandes_xls/.
• Journalisation complète des actions (connexion, statut, téléchargements, erreurs).
🔬 Points techniques :
• Sélection du statut via exécution JavaScript (élément masqué).
• Conversion des cookies Selenium → Requests pour les téléchargements directs.
• Sauvegarde des pages HTML à chaque étape pour permettre des diagnostics.
• Gestion d’erreurs avec captures d’écran en cas d’échec de connexion.
2. Conversion des commandes au format CSV
🎯 Objectif :
• Convertir automatiquement tous les fichiers .xls du dossier commandes_xls/ en fichiers .csv exploitables.
• Assurer le suivi et la traçabilité des conversions.
⚙️ Fonctionnalités :
• Lecture des fichiers Excel avec pandas.
• Vérification que le fichier n’a pas déjà été traité via un contrôle dans liste.txt.
• Mise à jour de ce fichier liste.txt pour garder la trace des fichiers convertis.
• Enregistrement dans un fichier commandes_recurrentes.csv des métadonnées suivantes :
• Nom du fichier,
• Première date de traitement,
• Dernière date de traitement,
• Durée entre la première et la dernière occurrence (pour identifier les commandes récurrentes).
• Archivage automatique des fichiers .xls dans archives/commandes_xls/YYYYmmDD.
• Journalisation complète des conversions, des erreurs et des déplacements.
🔬 Points techniques :
• Création automatique de liste.txt et commandes_recurrentes.csv s’ils n’existent pas.
• Ajout de la ligne d’horodatage hors DataFrame pour éviter les altérations du contenu source.
• Les fichiers déjà présents dans liste.txt sont ignorés pour éviter les doublons.
• L’archivage respecte une structure datée stricte pour une traçabilité maximale.
🧾 3. csv2edi.py – Génération des fichiers EDI à partir des CSV
🎯 Objectif :
• Transformer les fichiers .csv issus de du script précédent en fichiers .edi conformes à la norme EANCOM/ORDERS.
• Assurer le suivi des commandes et archiver chaque traitement.
⚙️ Fonctionnalités :
• Lecture et extraction intelligente des données depuis les fichiers .csv.
• Génération d’un fichier .edi structuré contenant :
• Les métadonnées : n° commande, client, entrepôt, dates,
• Les lignes articles (code EAN, libellé, quantité, prix),
• Les segments EDI normés (BGM, DTM, LIN, PIA, IMD, etc.).
• Mise à jour du fichier commandes_recurrentes.csv :
• Si la commande a déjà été traitée, mise à jour de la date de dernière occurrence et du délai cumulé.
• Sinon, création d’une nouvelle entrée.
• Archivage automatique des .csv dans archives/commandes_csv/YYYYmmDD.
• Journalisation complète du traitement.
🔬 Points techniques :
• Contrôle de la structure CSV (lignes, colonnes, présence des données critiques).
• Création automatique du dossier d’archive daté.
• Utilisation d’une structure MANQUANT pour les champs vides ou corrompus.
• Nommage des fichiers .edi basé sur le nom source CSV (sans extension).
🏭 4. edi2erp.py – Transfert et intégration des fichiers EDI dans l’ERP
🎯 Objectif :
• Transférer automatiquement les fichiers .edi générés vers le répertoire d’import de l’ERP interne.
• Archiver chaque fichier traité pour garantir la traçabilité.
⚙️ Fonctionnalités :
• Scan du dossier commandes_edi/ pour détecter les nouveaux fichiers .edi.
• Copie ou déplacement vers le répertoire surveillé par l’ERP.
• Archivage dans archives/commandes_edi/YYYYmmDD.
• Journalisation du transfert réussi ou de toute erreur rencontrée.
🔬 Points techniques :
• Exécution prévue en tâche planifiée régulière (cron ou Task Scheduler).
• Création automatique du répertoire d’archive si absent.
• Le fichier n’est déplacé que si le transfert ERP est réussi.