docs/20-commandes/99-technique.md —
ce document se lit aussi dans le dépôt, sans serveur.
Commandes — le côté technique
Les fichiers
| Rôle | Fichier |
|---|---|
| Liste | public/erp/commandes.php + public/erp/assets/js/pages/commandes-2.js |
| Fiche | public/erp/commande.php + public/erp/assets/js/pages/commande-2.js |
| Création | public/erp/new-order.php + public/erp/assets/js/pages/new-order-2.js |
| API | src/Http/Controllers/OrderController.php, OrderCreationController.php, GroupedOrderController.php |
| Données boutique | src/Woo/WooOrderRepository.php |
| Statuts et vues | src/Orders/OrderStatus.php |
| Actions métier | src/Orders/OrderActionService.php |
| Finances d'une commande | src/Orders/OrderFinancials.php |
| Écriture côté boutique | darsy-plugin/includes/commandes.php |
Les tables
Côté boutique (lecture seule, HPOS) : wp_wc_orders, wp_wc_order_addresses, wp_wc_order_operational_data, wp_wc_orders_meta, wp_woocommerce_order_items, wp_woocommerce_order_itemmeta.
Côté darsy : order_notes, order_costs, order_documents, supplier_actions, customer_contacts, supplier_grouped_orders, et stock_movements pour les sorties liées à une commande.
Les pièges connus
Les attributs de variation sont sur la ligne, en slugs
WooCommerce copie pa_sens => droite dans les métas de la ligne. La ligne ne dit pas lesquelles de ses métas sont des attributs — c'est la variation qui le sait, par ses métas attribute_*.
Voir WooOrderRepository::attacherLesVariations().
Le numéro de suivi a deux sources possibles
Et elles étaient lues dans des ordres inverses à deux endroits : la même commande pouvait être « livrée » d'un côté et « introuvable » de l'autre.
La règle vit maintenant dans Woo\SuiviColis, et nulle part ailleurs.
Le coût d'une commande vient de deux endroits
bill_orders — le montant alloué depuis une facture — pour la marge globale, et order_costs pour la fiche.
Les deux ne sont pas réconciliés. C'est un point d'audit connu, pas une fatalité ; il est suivi dans le développement de Darsy.
Les tests
tests/Integration/WooOrderQueryIntegrationTest.php (les vues, les filtres, la recherche), tests/Unit/AttributsDeVariationTest.php, tests/Unit/EtatDeCommandeTest.php (le verdict de stock), tests/Unit/LigneDeLivraisonTest.php, tests/Unit/CaseEnvoiEmailTest.php.