Skip to main content

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.

• Navigation automatique vers la page de commande.

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

• Ajout d’une ligne d’horodatage de conversion en tête de chaque fichier .csv au format Horodatage: JJ/MM/AAAA - HH:MM.

• 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 Carrefour en fichiers .edi conformes à la norme EANCOM/ORDERS.

• Assurer le suivi des commandes récurrentes 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.