Skip to main content

Transfert des commande des boutiques en ligne vers le serveur 4D

  1. Un client passe une commande sur le site e‑commerce (WordPress + WooCommerce).
  2. WooCommerce exporte la commande automatiquement au format XML vers une URL.
  3. Un reverse proxy redirige cette URL vers un serveur interne.
  4. Un script PHP reçoit, valide et enregistre la commande.
  5. Un script Python transfère ensuite le fichier vers le NAS Synology et l’archive localement.
  6. Toutes les étapes sont journalisées dans un fichier de logs.

2️⃣ Configuration côté WooCommerce

  • Rubrique utilisée : WooCommerce > Exporter Commandes
  • Onglet : Tâches de changement d’état

Tâche configurée :

Paramètre Valeur
Nom de la tâche export vers 4D V2
Format d’export XML
Type de destination HTTP POST
URL cible https://order.tarbouriech.tech/web_order.php

⚠️ Chaque fois qu’une commande change d’état, WooCommerce envoie le contenu XML via HTTP POST vers l’URL configurée.


3️⃣ Reverse Proxy (Nginx Proxy Manager)

Domaine configuré :

  • https://order.tarbouriech.tech

Redirection mise en place :

URL externe Redirection interne
/web_order.php (sur le domaine) http://192.168.1.17/web_orders/web_order.php

✅ Cela permet de rendre l’endpoint PHP accessible depuis Internet tout en gardant le serveur derrière un proxy.


4️⃣ Traitement côté Serveur : Script PHP web_order.php

  • Emplacement : /var/www/html/web_orders/web_order.php
  • Rôle : Recevoir et traiter les commandes XML envoyées par WooCommerce.

Fonctionnement :

  1. Vérifie que la requête est bien en POST.
  2. Valide que le contenu est bien du XML et qu’il est correctement formé.
  3. Enregistre le fichier XML reçu dans le dossier orders/ avec un nom unique :
    order_YYYYMMDD_HHMMSS_HASH.xml
  4. Journalise l’opération dans orders/web_order.log.
  5. Lance le script Python send_folder_to_synology.py pour transfert vers le NAS.

5️⃣ Script Python send_folder_to_synology.py

  • Emplacement : /var/www/html/web_orders/send_folder_to_synology.py
  • Rôle : Transférer les commandes vers le NAS Synology et archiver localement.

Fonctionnement :

  1. Se connecte en SSH au NAS Synology (via clé privée id_rsa).
  2. Parcourt tous les fichiers .xml dans orders/.
  3. Pour chaque fichier :
    • Le transfère vers le NAS via SCP.
    • Renomme order_ en commande_ sur le NAS.
    • Déplace le fichier localement dans orders/archive/.
  4. Journalise chaque étape dans orders/web_order.log.

6️⃣ NAS Synology

  • Dossier de réception :
    /volume1/DATAS/4DDocuments/WebOrders/FTP/

Tous les fichiers .xml y sont stockés sous le nom commande_YYYYMMDD_HHMMSS_HASH.xml.


7️⃣ Logs et Archivage

Fichier de log :