Transfert des commande des boutiques en ligne vers le serveur 4D
📦 Documentation Flux Commandes WooCommerce → NAS Synology
1️⃣ Vue d’ensemble du flux
- Un client passe une commande sur le site
e‑e-commerce (WordPress +WooCommerce)WooCommerce). - WooCommerce exporte la commande automatiquement au format XML vers une
URL.URL publique. - Un reverse proxy (Nginx Proxy Manager) redirige cette URL vers un serveur
interne.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, puis récupérées dans Grafana.
✅ Ce mécanisme permet un suivi complet, une redondance (log + archive locale), et un stockage final sur le NAS.
2️⃣ Configuration côté WooCommerce
- Rubrique utilisée :
WooCommerce > Exporter Commandes - Onglet :
Tâches de changement d’état
TâcheExemple de 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 leun contenu XML via HTTP POST vers l’URL configurée.définie.
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 gardantgarder le serveur interne derrière un proxy.proxy et de l’exposer uniquement via le domaine externe.
4️⃣ Traitement côté Serveur : Script PHP web_order.php
- Emplacement :
/var/www/html/web_orders/web_order.php - 📌 Rôle :
RecevoirRéceptionner ettraitervalider les commandesXML envoyées par WooCommerce.
📂
Fonctionnement :
- Vérifie que la requête est bien en POST.
ValideVérifie que le contenu estbien duun XMLet qu’il estcorrectement formévalide.- Enregistre le fichier
XML reçudansle dossierorders/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 :
SeConnexionconnecteSSHen+SSHclé privée au NASSynology(via clé privéeid_rsa).ParcourtParcours tous les fichiers.xmlprésents dansorders/.- Pour chaque fichier :
Le transfère vers le NASTransfert via SCP.Renommeorder_encommande_survers le NAS.DéplaceRenommageleautomatique deorder_→commande_.- Déplacement du fichier
localementlocaldansenorders/archive/.
JournaliseJournalisationchaque étapecomplète dansorders/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 nomformat : commande_YYYYMMDD_HHMMSS_HASH.xml.
7️⃣ Logs et Archivage
Local
- Fichier :
/var/www/html/web_orders/orders/web_order.log - Contient toutes les étapes : réception, validation, transfert, archivage.
Centralisation Grafana
- Les logs sont également récupérés par Grafana pour visualisation et monitoring.
8️⃣ Scripts présents et utilité
Scripts utiles
- ✅
web_order.php→ réception XML côté serveur. - ✅
send_folder_to_synology.py(version 1.4) → transfert + archivage.
Scripts obsolètes
- ⚠️
scp_transfer.py→ doublon, car remplacé parsend_folder_to_synology.py. - ⚠️ Ancienne version de
send_folder_to_synology.py(v1.0) → à supprimer.
👉 À garder uniquement :
web_order.phpsend_folder_to_synology.py(la version avec archivage + log complet).
9️⃣ Cas particulier : Deuxième site
Un autre site e-commerce est configuré de la même façon mais avec un suffixe _O pour séparer les commandes :
- 📂 PHP :
web_order.php→web_order_O.php - 📂 Python :
send_folder_to_synology.py→send_folder_to_synology_O.py - 📂 Répertoire :
orders/→orders_O/ - 📂 Log :
web_order.log→web_order_O.log
Cela permet de distinguer les flux et de ne pas mélanger les fichiers entre les deux boutiques.
🔟 Guide pour duplication / maintenance
Étapes pour ajouter une nouvelle boutique
- Créer un nouveau dossier serveur : /var/www/html/web_orders_X/
- Copier les scripts :
web_order.php→ renommer enweb_order_X.phpsend_folder_to_synology.py→send_folder_to_synology_X.py
- Adapter les chemins :
orders_X/pour les fichiers reçusweb_order_X.logpour les logs
- Configurer le reverse proxy :
- Ajouter une règle Nginx Proxy Manager
- Exemple :
https://order2.tarbouriech.tech/web_order_X.php→ serveur interne
- Configurer WooCommerce :
- Nouvelle tâche d’export vers l’URL cible de la boutique.
- Vérifier :
- Commande test
- Apparition du fichier sur le NAS
- Logs disponibles localement + Grafana.
✅ Conclusion
- Scripts actifs :
web_order.php+send_folder_to_synology.py. - Scripts à supprimer :
scp_transfer.py+ anciennes versions. - Logs : toujours dans
orders/web_order.log+ Grafana. - Duplication facile en ajoutant un suffixe (ex :
_O,_X) pour isoler les flux de chaque boutique.
👉 Ce document peut être donné à un technicien (ou à ChatGPT) pour :
- corriger un problème,
- améliorer la solution,
- ou déployer une nouvelle boutique en suivant les mêmes étapes.
📦 Documentation Flux Commandes WooCommerce → NAS Synology
...
🔄 Schéma du flux (Vue d’ensemble)
+------------------+
| Client |
| Passe commande |
+--------+---------+
|
v
+---------------------------+
| WooCommerce (WordPress) |
| Export XML via HTTP POST |
+------------+--------------+
|
v
+---------------------------+
| Reverse Proxy (Nginx PM) |
| Expose URL publique |
+------------+--------------+
|
v
+---------------------------+
| Serveur interne (PHP) |
| - web_order.php |
| - Valide XML |
| - Stocke en local |
| - Log local + Grafana |
+------------+--------------+
|
v
+---------------------------+
| Script Python |
| - SCP → NAS Synology |
| - Renommage fichier |
| - Archivage local |
+------------+--------------+
|
v
+---------------------------+
| NAS Synology |
| /volume1/DATAS/.../FTP/ |
| Stockage final XML |
+---------------------------+