Flux CRF (Carrefour)
Contexte
- Pas de flux EDI natif disponible pour le secteur d’activité.
- Téléchargement manuel requis via le SaaS Carrefour.
- Mise en place d’un flux automatisé (scraping + conversion) pour générer de “faux EDI” → traités de manière transparente par l’ERP.
Étapes principales
- Téléchargement XLS via Selenium (
impcarf.py). - Conversion XLS → CSV (
xls2csv.py). - Conversion CSV → EDI (
csv2edi.py). - Transfert SSH vers l’ERP (
edi2erp.py crf). - Archivage automatique (XLS et CSV).

Utilisation pratique
-
Lancement manuel
cd /home/rms/edi/crf/import source /home/rms/edi/venv/bin/activate python impcarf.py # Récupération XLS python xls2csv.py # Conversion CSV python csv2edi.py # Conversion EDI python /home/rms/lib/edi2erp.py crf deactivateOu via le chef d’orchestre :
./run_crf.sh -
Contrôle des logs
/home/rms/logs/crf/crf2erp.log→ Chercher
✅ CONVERTI,INFO: ... Fichier EDI généré.
→ Les erreurs sont préfixées par❌. -
En cas de problème
- Vérifier
.xlsdans :/home/rms/edi/crf/import/commandes_xls/ - Vérifier
.csvdans :/home/rms/edi/crf/import/commandes_csv/ - Vérifier
.edidans :/home/rms/edi/crf/import/commandes_edi/ - Vérifier archives :
/home/rms/edi/crf/archives/
- Vérifier
CRON
# Créneaux matin et soir
*/5 7-9,16-17 * * * /home/rms/edi/crf/import/run_crf.sh
*/15 10-12,18-19 * * * /home/rms/edi/crf/import/run_crf.sh
Fichiers de config
.envUSER_CARF=XXXX PASS_CARF=XXXXcrf.ini- SSH :
edi@192.168.1.13:34322→/volume1/DATAS/4DDocuments/EDIBL/ - Local :
/home/rms/edi/crf/import/... - Archives :
/home/rms/edi/crf/archives/ - Logs :
/home/rms/logs/crf/crf2erp.log
- SSH :
Arborescence
crf/
├── archives/commandes_csv/YYYYMMDD/*.xls
└── import/
├── commandes_xls/
├── commandes_csv/
├── commandes_edi/
├── archives/commandes_edi/
├── run_crf.sh
├── impcarf.py
├── xls2csv.py
├── csv2edi.py
├── liste.txt
├── xls_dl.txt
└── ...
Scripts
run_crf.sh→ orchestre la chaîne complète.impcarf.py- Selenium + ChromeDriver
- Connexion au portail Carrefour
- Téléchargement des commandes au format .xls
xls2csv.py- Conversion
.xls→.csv - Mise à jour de
liste.txt(fichiers déjà traités) etxls_dl.txt(encore présents). - Archivage des
.xls.
- Conversion
csv2edi.py- Parsing CSV → génération d’un
.ediconforme ORDERS D96A. - Archivage des
.csv. - Règles de mapping :
KG→KGMPI→PCE- Génération d’un
id_clientprovisoire basé surclient + entrepôt.
- Parsing CSV → génération d’un
edi2erp.py crf- Transfert SSH des
.edivers l’ERP.
- Transfert SSH des