Point final « Commandes » (Orders)
Commandes v2.32.0
Lire, créer et modifier des commandes, supprimer des entrées de l'historique.
Aperçu
| Opération | Méthode | Point de terminaison | Portée |
|---|---|---|---|
| Exportation | GET | /xpanel/xoport/Export/JSON/orders | orders:read |
| Créer | POST | /xpanel/xoport/Import/JSON/orders | orders:write |
| Mise à jour | PUT | /xpanel/xoport/Import/JSON/orders | orders:write |
| Supprimer une entrée d'historique | DELETE | /xpanel/xoport/Delete/JSON/order_status_history/{id} | orders:write |
Remarque : l'importation et la suppression d'entrées d'historique nécessitent l'utilisation de orders:write. L'API ne supprime pas les commandes elles-mêmes : DELETE /Delete/JSON/orders renvoie un code HTTP 501 NOT_IMPLEMENTED. L'enregistrement en stock s'effectue automatiquement lors de la création. Seule l'API DELETE /Delete/JSON/order_status_history/{id} permet de supprimer une entrée d'historique : le statut de la commande est alors mis à jour, et la boutique rejette l'entrée la plus ancienne d'une commande (HTTP 409 FIRST_HISTORY_ENTRY). Détails : API de suppression.
Importation (POST / PUT)
Crée ou met à jour une commande. POST = Créer, PUT avec orders_id = Mettre à jour. Tous les champs sont vérifiés et enregistrés par le même service que celui utilisé pour créer les commandes lors des importations depuis les places de marché.
Charge utile minimale (Création)
{
"data": [{
"customers_id": 51,
"payment_method": "PayPal",
"products": [
{"products_id": 42, "quantity": 2, "products_price": "29.99"}
]
}]
}
Charge utile complète avec toutes les options
{
"data": [{
"customers_id": 51,
"language_id": 2,
"payment_method": "Stripe",
"shipping_method": "DHL",
"tax_flag": 1,
"totals_mode": "auto",
"expected_total": "59.98",
"strict_totals": true,
"currency": "EUR",
"products": [
{
"products_id": 42,
"quantity": 2,
"products_price": "29.99",
"products_tax": "19.00",
"attributes": [
{"option_id": 1, "value_id": 5}
]
}
],
"external_reference": {
"source": "amazon",
"external_id": "AMZ-12345"
},
"tracking": [
{"service_provider": "DHL", "code": "1234567890", "link": "https://nolp.dhl.de/?piececode=1234567890"}
]
}]
}
Modes de calcul des totaux (v2.21.0)
Le paramètre « totals_mode » permet de contrôler la manière dont les montants totaux des commandes sont calculés :
| Mode | Comportement | Utilisation |
|---|---|---|
auto Par défaut | Aucune valeur « totals » dans la charge utile → la boutique recalcule entièrement les montants. Avec des valeurs « totals » → celles-ci sont reprises. | Cas par défaut : l'appelant ne dispose d'aucun total, la boutique les calcule. |
recalc | Charge les valeurs « products_price » et « products_tax » à partir de la base de données (prix par groupe de clients + promotions + remise par catégorie/client, en fonction du pays) et recalcule le sous-total, la TVA et le total. De plus, le prix d'achat (products_ek_price) et le GTIN sont rechargés. Les lignes manuelles (products_id=0) restent inchangées. | Forcer un recalcul sécurisé ; parité dropship lors du paiement. |
verbatim | La boutique reprend à l’identique les valeurs « totals » transmises, SANS recalcul. | Importations depuis des places de marché avec un montant total fixe (Amazon, Otto, eBay). |
tax_flag Déduction automatique et interprétation des prix
Si tax_flag n’est pas explicitement défini, il est dérivé du groupe de clients :
customers_groups.show_tax = 1+DISPLAY_PRICE_WITH_TAX = true→tax_flag = 1(brut)customers_groups.show_tax = 0→tax_flag = 0(net)- Groupes exonérés de taxe (par ex. numéro d'identification TVA UE) →
tax_flag = 2(exonéré de taxe)
Interprétation de « products_price » en fonction de tax_flag
tax_flag | products_price est | ot_subtotal | ot_tax | ot_total |
|---|---|---|---|---|
0 (net) | net | Σ(net × qté) | Σ(net × taux/100), additionné | Sous-total + Frais de port + Taxes |
1 (brut) | brut | Σ(brut × qté) | à titre indicatif (« TVA comprise ») | Sous-total + frais de port (TVA NON incluse) |
2 (hors taxes) | net = brut | Σ(prix × quantité) | 0 | Sous-total + frais de port |
⚠️ Important pour les importations depuis une place de marché : si la place de marché envoie des prix nets, la variable « tax_flag: 0 » DOIT être explicitement définie — sinon, les prix (pour un groupe de clients « brut ») seront interprétés comme des prix bruts.
Depuis la version v2.122.8, les lignes de commande présentant un montant de TVA négatif, comme les remboursements, se voient attribuer une ligne de TVA identique à celle de la page de paiement. Lors de l’ajout de lignes de commande via PUT, la TVA des lignes négatives est prise en compte. Les nouvelles lignes enregistrent, lors de leur création, s’il s’agit d’une marchandise ou d’un service ; les documents relatifs aux livraisons et prestations intracommunautaires restent ainsi inchangés.
Origine du prix
Le fait qu’un montant soit interprété comme net ou brut dépend de qui l’a déterminé : l’interface (Payload) ou la boutique (base de données, module d’expédition).
| Origine | tax_flag = 0 (Net) | tax_flag = 1 (Brut) | tax_flag = 2 (hors taxes) |
|---|---|---|---|
Interface : prix dans les modes auto et verbatim, recalc- articles sans correspondance dans la boutique ou sans products_id, propres attributes[].price, totals.shipping | net, TVA en sus | brut, TVA comprise. La boutique enregistre le prix net de l’article et les suppléments liés aux caractéristiques propres (depuis la v2.122.11) | net, pas de TVA |
Boutique : résultats de recherche sur recalc(prix de groupe, prix spécial, remise par catégorie), caractéristiques présélectionnées (apply_default_attributes), expédition depuis compute_shipping | net, TVA en sus | net, extrapolé : ligne = net × (1 + taux/100) | net, pas de taxe |
Articles via PUT avec products_mode: "append" | montant net | net | net |
- les prix des lignes de commande envoyés en brut par l'interface
tax_flag = 1sont enregistrés par la boutique en net (÷ (1 + taux/100), 8 décimales), comme pour une commande passée depuis la caisse. Auparavant, le prix brut figurait dans la ligne de commande, et l'éditeur de commande, le PDF de la facture, l'e-mail de commande ainsi que l'ajout ultérieur de lignes de commande appliquaient la taxe une deuxième fois. orders:readfournit désormais ces lignes de commande au prix net (products_price,final_price,attributes[].options_values_price) : 10,00 à 19 % devient8.40336134. Les interfaces qui lisent ces champs et les comparent aux données envoyées procèdent à la conversion. Les lignes de totalisation,order_total/tax_totalde la réponse et le contrôle de cohérence restent inchangés.- Dans deux cas, c’est désormais la valeur de caisse qui s’applique : le supplément lié aux caractéristiques présélectionnées (
apply_default_attributes) sur un tel poste est inclus dans le calcul de la taxe, et un barème de frais de port en fonction de la valeur des marchandises (compute_shipping) utilise la valeur nette. Les frais de port et le montant total peuvent ainsi varier ; une méthode de calcul des frais de port (expected_total) adaptée à l’ancienne valeur renvoie alors «TOTAL_DRIFT». - Les commandes existantes ne sont pas converties. Si l’on ajoute un élément à une ancienne commande dont les lignes sont enregistrées en brut, la double taxation reste en vigueur.
- La ligne d’expédition d’une commande nette (
tax_flag = 0) comportetax0 et le taux d’imposition indiqué danstax2, comme pour une commande nette issue de la caisse ; les commandes exonérées d’impôt comportent également 0 et 0 en modeverbatim, tandis que les commandes brutes conservent, comme auparavant, le taux indiqué dans les deux colonnes. Si vous lisez le taux d’expédition uniquement à partir detotals[].tax, utiliseztax2pour les commandes nettes. Les totaux restent identiques, les commandes enregistrées ne sont pas modifiées ; la facture électronique de ces commandes indique désormais le montant correct pour les frais d’expédition. - Lors de l’ajout de postes via
PUT, la taxe d’expédition d’une commande nette provenant de la caisse est désormais prise en compte ; auparavant, elle n’apparaissait pas dans le total général.
Champ de ligne service lors de la création
Depuis la v2.122.8, chaque article nouvellement créé (POST et PUT avec products_mode: "append") enregistre s’il s’agit d’une marchandise (0) ou d’un service (1). Cette valeur détermine, sur la facture et la facture électronique, la mention fiscale relative aux livraisons ou prestations intracommunautaires ainsi que l’exclusion du droit de rétractation.
En l’absence de ce champ, la boutique détermine la valeur à partir du produit, à l’instar de la caisse et de l’éditeur de commande :
| Position | service |
|---|---|
| Champ « Service » coché | 1 |
| Poids 0 (y compris celui des caractéristiques) et fichier à télécharger, lorsque le téléchargement des produits est activé | 1 |
| tous les autres produits | 0 |
poste libre sans products_id | 0 |
Nouveauté de la version v2.122.11 : avec ce champ, la valeur envoyée s’applique, même si elle contredit les données du produit, par exemple pour un poste de service libre :
curl -X POST "https://shop.de/xpanel/xoport/Import/JSON/orders" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"type":"orders","data":[{"customers_id":123,"products":[
{"products_name":"Programmierung Schnittstelle","products_quantity":3,
"products_price":150.00,"products_tax":0,"service":1}]}]}'
- Les valeurs autorisées sont
1,0,true,false,"1"et"0". Aucune autre valeur n’est prise en compte : la réponse indique «service_invalid» dans «records[].warnings», et la valeur provient du produit. - Uniquement lors de la création. Les lignes existantes conservent leur valeur :
products_mode: "update"rejetteservice, l'enregistrement échoue avecFIELD_NOT_UPDATABLE, et rien n'est écrit, pas même les autres champs (réponse HTTP 200 comme pour toute importation groupée). Pour corriger cela, annulez la ligne et rajoutez-la avecservice. - Les boutiques jusqu’à la version 4.9.170 ne reconnaissent pas ce champ : il est ignoré sous la forme
UNKNOWN_FIELD(avec?_strict=trueet un code HTTP 400), et un poste de service libre y est considéré comme une marchandise. Pour savoir si une boutique reconnaît ce champ, consultezapi_versiondansGET /me. - L'exportation fournit la valeur par ligne dans
products[].service:0,1ounullpour les anciennes commandes sans valeur enregistrée.
language_id Auto-Derive (v2.21.0)
Si language_id ne figure pas dans la charge utile, la résolution s'effectue en cascade :
- valeur de la charge utile (si définie)
customers.language_idissu de la fiche clientDEFAULT_LANGUAGEissu de la configuration de la boutique (recherche de code dans la table «languages»)- Solution de secours :
1(anglais)
Remarque : dans le contexte xoPort, « $_SESSION['languages_id'] » n’ est délibérément PAS une solution de secours — sinon, la langue de l’appelant de l’API d’administration serait transmise par inadvertance à la commande client.
Contrôle de dérive : expected_total + strict_totals
En option, l’appelant peut envoyer le montant total attendu — la boutique effectue une comparaison et déclenche une alerte en cas d’écart :
expected_total(décimal) : montant total attendu de l’ot_totalaprès calcul.strict_totals(booléen, par défautfalse) :false→ L'écart est signalé sous forme d'avertissement dans la réponse, mais la commande est tout de même créée.true→ La commande est refusée si le total calculé ≠expected_total(tolérance : 0,01 €).
Utilisation : importations depuis une place de marché où celle-ci connaît déjà le montant final — la boutique vérifie que le produit « prix × quantité × taxe + frais de port » donne le même montant localement.
Champs de commodité et parité de paiement (v2.28.0–v2.32.0)
Pour les intégrations qui ne connaissent que le numéro de client, une adresse de livraison différente et la référence/quantité — la commande est créée de manière à ce qu’elle reprenne exactement les prix, les caractéristiques, les frais de port et la confirmation d’une commande manuelle passée sur la boutique (parité dropshipping, par exemple SPV → SST).
| Champ / Comportement | Type | Description |
|---|---|---|
| Remplissage automatique de l'adresse | auto | En cas d’ customers_id > 0 et d’ billing manquant ou incomplet, l’adresse de facturation par défaut du client est chargée. Les champs explicitement fournis prévalent. delivery revient à billing si des champs obligatoires sont manquants. v2.28.0 |
Résolution des codes SKU/products_model | auto | Les lignes de commande ne peuvent fournir que l'{products_model, quantity} — products_id et le nom sont récupérés depuis la base de données de la boutique. Modèle inconnu → avertissement PRODUCT_MODEL_NOT_FOUND. v2.28.0 |
apply_default_attributes | bool (par défaut : false) | Pour chaque position ne disposant pas de ses propres attributes, récupère les valeurs d’options présélectionnées, y compris le supplément signé — y compris les caractéristiques d’affichage (type d’option 5, par exemple « version »/« indice de protection »), telles qu’elles sont transmises lors du passage à la caisse. v2.28.0 / v2.30.0 |
compute_shipping | bool ( false par défaut) | En l’absence d’ totals.shipping explicite, le mode de livraison le moins cher est calculé « en arrière-plan » à l’aide du calculateur de frais de port du front-end pour l’adresse de livraison, puis enregistré sous la forme ot_shipping. Best-effort : erreur → avertissement SHIPPING_AUTO_FAILED / SHIPPING_AUTO_EMPTY, la commande est conservée. v2.30.0 Depuis la v2.122.9, la ligne de frais de port est également créée lorsque la valeur des marchandises est égale à 0 (taux d’imposition : le taux le plus élevé des articles ; en l’absence de celui-ci, le taux du mode de livraison). |
send_confirmation_email | bool (par défaut false) | Une fois la création effectuée, la confirmation de commande standard est envoyée au client (y compris les copies provenant de SEND_EXTRA_ORDER_EMAILS_TO). Résultat sous forme de « confirmation_email_sent » (true/false) dans l'enregistrement. v2.29.0 |
Remise par catégorie/client dans le recalc | mode automatique | Le mode « recalc » applique, en plus du prix de groupe et des offres spéciales, la remise par catégorie/client (customers_discount + customers_groups_discount, y compris l’héritage des sous-catégories) — c’est le prix effectif le plus avantageux qui prévaut. Problème → Avertissement CATEGORY_DISCOUNT_UNAVAILABLE. v2.31.0 |
additional_address | chaîne | Complément d’adresse par bloc d’adresse — est repris selon customers_additional_address, delivery_additional_address et billing_additional_address. v2.32.0 |
Ligne fiscale par enregistrement (v2.32.0) : ot_tax est généré pour chaque taux d’imposition avec une libellé précis au format front-end — « TVA de 19 % en sus » (net) ou « TVA de 19 % incluse » (brut), à condition que MODULE_ORDER_TOTAL_PREFIX=true.
Sous-ressources
external_reference — Connexion à la place de marché
Relie la commande à une source externe. Champs autorisés :
source(chaîne de caractères, obligatoire) : par exempleamazon,ebay,otto,kaufland.external_id(chaîne de caractères, obligatoire) : identifiant/numéro sur la place de marché.marketplace_id(int, facultatif) : identifiant interne de la place de marché XONIC.
tracking — Suivi d'expédition
Tableau d’entrées de suivi. Autorisé par entrée :
service_provider(alias :method) : nom du transporteur (DHL, DPD, UPS, …).code(alias :tracking_number) : numéro d'envoi.link: URL de suivi.label_link: URL de l'étiquette d'expédition (PDF).external_id: ID auprès du prestataire de services d'expédition.is_retoure(bool) : envoi de retour au lieu d’un envoi initial.
status_history — Historique des statuts
Journal d'audit en mode « append-only ». Par entrée : orders_status_id, comments, customer_notified (0/1), date_added.
customer_notified Au niveau de la commande
Booléen, détermine si l’envoi d’un e-mail de confirmation est déclenché lors d’un changement de statut.
Exemple de requête (Création)
curl -X POST "https://shop.de/xpanel/xoport/Import/JSON/orders" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"data": [{
"customers_id": 51,
"payment_method": "PayPal",
"tax_flag": 0,
"expected_total": "71.38",
"products": [{"products_id": 42, "quantity": 2, "products_price": "29.99", "products_tax": "19.00"}]
}]
}'
Exemple de réponse (succès)
{
"success": true,
"api_version": "2.32.0",
"type": "orders",
"operation": "create",
"data": [{
"orders_id": 46482,
"customers_id": 51,
"ot_subtotal": "59.98",
"ot_tax": "11.40",
"ot_total": "71.38",
"totals_mode": "auto",
"tax_flag": 0,
"language_id": 2
}],
"warnings": []
}
Exemple de réponse (vérification de dérive échouée, strict_totals=true)
{
"success": false,
"api_version": "2.32.0",
"error": {
"code": "TOTAL_DRIFT",
"message": "Calculated ot_total 71.38 differs from expected_total 70.00 (diff: 1.38).",
"details": {"expected": "70.00", "calculated": "71.38", "tolerance": "0.01"}
}
}
Codes d'erreur
| Code | Signification |
|---|---|
INVALID_PAYLOAD | Champs obligatoires manquants ou type de données incorrect. |
CUSTOMER_NOT_FOUND | customers_id n'existe pas. |
PRODUCT_NOT_FOUND | products_id n'existe pas. |
TOTAL_DRIFT | expected_total ≠ total calculé et strict_totals=true. |
STOCK_INSUFFICIENT | Le stock est insuffisant (si auto_stock=true). |
DUPLICATE_EXTERNAL_REFERENCE | La combinaison source + external_id existe déjà. |
Avertissements non critiques (la commande est tout de même créée, retour dans warnings[]) : PRODUCT_MODEL_NOT_FOUND, RECALC_PRODUCT_NOT_FOUND, CATEGORY_DISCOUNT_UNAVAILABLE, SHIPPING_AUTO_FAILED, SHIPPING_AUTO_EMPTY, TOTAL_DRIFT (sauf pour strict_totals=true), UNKNOWN_FIELD.
Exportation (GET)
Lecture des commandes avec GET /orders, Scope orders:read.
| Paramètres | Type | Description |
|---|---|---|
status | int | Statut de la commande |
date_from, date_to | Date et heure | Date de commande (du… au…) |
since | Date | Comparaison : modifié ou commandé à partir de cette date |
last_modified | Date | Nouveauté de la version v2.122.10: autre orthographe de « since » (remarque : FILTER_ALIAS) ; les deux, avec des dates différentes, génèrent une erreur HTTP 400 |
customer_id | int | Commandes d'un client |
products_id, products_model, categories_id | int / string / int | Commandes contenant cet article ou un article de la catégorie |
marketplace_id | int | Place de marché de la commande |
external_id, source | chaîne | Numéro de commande ou source de l'intégration à la place de marché |
po_number | chaîne | Référence de la commande |
delivery_country | chaîne | Nouveauté de la version v2.122.9: pays de livraison sous forme de code ISO à deux ou trois chiffres, plusieurs codes séparés par des virgules ; un code inconnu génère une erreur HTTP 400 |
sort, order | chaîne | Tri de la liste (par défaut : ordre croissant selon orders_id) |
limit, offset, page | int | Défilement |
Formes de sentiers
/order/{id},/orders/{von}:{bis},/orders/{von}:et/orders/new:{datum}(classés par date).- Depuis la version 2.122.9, les filtres s'appliquent en plus de la forme de chemin. Jusqu'à la version 2.122.8, un filtre remplaçait la forme de chemin :
/order/{id}?status=3renvoyait toutes les commandes ayant le statut 3. - Depuis la v2.122.10, les formes de chemin parcourent la base de données par ordre croissant d’ID. Sans
?limit=, la réponse reste non triée jusqu’à la limite maximale ; au-delà, elle est renvoyée en taille standard avechas_more.new:{datum}est vérifié (YYYY-MM-DD,YYYY-MM-DD HH:MMouYYYY-MM-DD HH:MM:SS), sinon une erreur HTTP 400 est renvoyéeINVALID_RANGE. - v2.122.12 Le segment suivant
/orderou/ordersest un nombre entier comportant au maximum 18 chiffres, une plage délimitée par des nombres entiers ounew:{datum}suivi d’un deux-points non codé ; toute autre valeur génère une erreur HTTP 400INVALID_RANGE. Les espaces en bordure ne sont pas pris en compte :/order/42%20correspond à la commande n° 42.
/orders/new%3A2026-10-01(les deux-points encodés, par exemple avecurlencode()) renvoyaient jusqu’à la version v2.122.11 un code HTTP 200 avec la liste complète au lieu du delta, ce qui impliquait une synchronisation sur l’ensemble du catalogue. Désormais, un code HTTP 400 est renvoyé : envoyez les deux-points non encodés aprèsnew./order/42x,/order/42%2Bet/orders/5%3A10renvoyaient la liste, tandis que/order/42.0,/order/+5et/orders/100.0:200.0renvoyaient l'enregistrement ou la plage de données souhaitée. Toutes ces requêtes renvoient désormais un code HTTP 400. Envoyer l'ID sous forme de nombre entier sans décimales, ce qui est courant pour les valeurs issues de tables./order/42%20et/order/42%0Aont fourni la liste et correspondent désormais à la commande n° 42.
Valeurs non valides
- Depuis la v2.122.10, les dates et heures doivent être exprimées sous des formats fixes :
YYYY-MM-DD,YYYY-MM-DD HH:MMouYYYY-MM-DD HH:MM:SS, avec ou sans fuseau horaire (Zou±HH:MM; envoyer le signe « + » sous la forme%2B). Les entrées telles queyesterdayou01.10.2026renvoient une erreur HTTP 400INVALID_FILTER_VALUE. - Depuis la version v2.122.10, les valeurs sous forme de liste telles que
?customer_id[]=5, ainsi qu’une liste séparée par des virgules, un texte ou un nombre décimal envoyés àstatus,customer_id,marketplace_id,products_idetcategories_id, génèrent une erreur HTTP 400INVALID_FILTER_VALUEavecdetails[]. Auparavant, un tel filtre était ignoré et la réponse contenait toutes les commandes. Seuldelivery_countryaccepte plusieurs valeurs. - Une valeur vide est considérée comme non définie. Les paramètres inconnus sont signalés par
warnings[]sous la formeUNKNOWN_FILTER, tandis que?_strict=truerenvoie une erreur HTTP 400.
Données de base sur les statuts de commande (order_statuses)
Nouveauté de la v2.122.10: tous les statuts de commande avec leur nom dans chaque langue et leur signification, portée orders:read. Jusqu’à présent, un statut n’apparaissait que sur la commande, sous forme d’ID et avec son nom dans une seule langue.
curl "https://shop.de/xpanel/xoport/Export/JSON/order_statuses" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"{
"success": true,
"api_version": "2.122.10",
"type": "order_statuses",
"data": [
{
"orders_status_id": 5,
"orders_status_label": "secondary",
"orders_status_label_bg": "#000000",
"orders_status_label_color": "#ffffff",
"orders_status_sort_order": 0,
"is_default": false,
"is_cancelled": true,
"is_offer": false,
"counts_as_revenue": false,
"is_paid": false,
"is_shipped": false,
"languages": {
"en": { "language_id": 1, "language_code": "en", "orders_status_name": "Returned/Cancelled" },
"de": { "language_id": 2, "language_code": "de", "orders_status_name": "Retoure/Storniert" }
}
}
],
"stats": { "total": 1, "count": 1, "timestamp": "2026-10-15 10:00:00" }
}Indicateurs
| Indicateurs | Signification |
|---|---|
is_default | Statut des nouvelles commandes |
is_cancelled | Annulation : la boutique réintègre le stock |
is_offer | Devis (onglet dédié « Devis » dans l’interface d’administration) |
counts_as_revenue | ni annulation ni offre ; même distinction qu’entre order_stats.orders_count_valid et /customers. Ne donne aucune indication sur le paiement ou l’expédition |
is_paid | payé (paiement reçu) |
is_shipped | expédiée ; les statuts d’annulation ne sont jamais is_shipped, même si la boutique les répertorie dans sa liste d’expédition (réglage par défaut de la série 4.9 : 3,5) |
Les indicateurs suivent les paramètres de statut de la boutique. Un paramètre vide n'indique aucun statut. Absents de l'enregistrement : « retourné », « clôturé » et paiement partiel.
Formats de chemin et paramètres
/order_statuses: tous les statuts, classés par ordre croissant selonorders_status_id./order_status/{id}et/order_statuses/{id}: exactement ce statut, sans résultat (HTTP 404NOT_FOUND)./order_statuses/{von}:{bis}et/order_statuses/{von}:: plage, vide = HTTP 200 avecdatavide.- Pas de filtres ;
?language=ne change rien, toutes les langues s’affichent systématiquement.new:{datum}renvoie un HTTP 400INVALID_RANGE.
orders_status_label correspond à la classe de couleur de la liste du backend (custom = couleurs personnalisées issues de orders_status_label_bg et orders_status_label_color), orders_status_sort_order à l'ordre des listes de sélection. La ligne correspondant à la langue « Allemand » est renvoyée, comme sur /orders.