Transfert des commande des boutiques en ligne vers le serveur 4D
- Un client passe une commande sur le site e‑commerce (WordPress + WooCommerce).
- WooCommerce exporte la commande automatiquement au format XML vers une URL.
- Un reverse proxy redirige cette URL vers un serveur interne.
- Un script PHP reçoit, valide et enregistre la commande.
- Un script Python transfère ensuite le fichier vers le NAS Synology et l’archive localement.
- 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 :
- Vérifie que la requête est bien en POST.
- Valide que le contenu est bien du XML et qu’il est correctement formé.
- Enregistre le fichier XML reçu dans le dossier
orders/avec un nom unique :
order_YYYYMMDD_HHMMSS_HASH.xml - Journalise l’opération dans
orders/web_order.log. - Lance le script Python
send_folder_to_synology.pypour 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 :
- Se connecte en SSH au NAS Synology (via clé privée
id_rsa). - Parcourt tous les fichiers
.xmldansorders/. - Pour chaque fichier :
- Le transfère vers le NAS via SCP.
- Renomme
order_encommande_sur le NAS. - Déplace le fichier localement dans
orders/archive/.
- 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.