Skip to main content

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

  1. Téléchargement XLS via Selenium (impcarf.py).
  2. Conversion XLS → CSV (xls2csv.py).
  3. Conversion CSV → EDI (csv2edi.py).
  4. Transfert SSH vers l’ERP (edi2erp.py crf).
  5. 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
    deactivate
    

    Ou 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 .xls dans :
      /home/rms/edi/crf/import/commandes_xls/
      
    • Vérifier .csv dans :
      /home/rms/edi/crf/import/commandes_csv/
      
    • Vérifier .edi dans :
      /home/rms/edi/crf/import/commandes_edi/
      
    • Vérifier archives :
      /home/rms/edi/crf/archives/
      

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

  • .env
    USER_CARF=XXXX
    PASS_CARF=XXXX
    
  • crf.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

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) et xls_dl.txt (encore présents).
    • Archivage des .xls.
  • csv2edi.py
    • Parsing CSV → génération d’un .edi conforme ORDERS D96A.
    • Archivage des .csv.
    • Règles de mapping :
      • KGKGM
      • PIPCE
      • Génération d’un id_client provisoire basé sur client + entrepôt.
  • edi2erp.py crf
    • Transfert SSH des .edi vers l’ERP.

Outils

  • Selenium (ChromeDriver 137.0.7151.70).
  • pandas pour conversion XLS/CSV.
  • Logs centralisés : /home/rms/logs/crf/crf2erp.log. flux_crf.png