Lister · Statuts — Commandes
Consultez les données de « Commandes ». Le résultat dépend des paramètres de cette opération.
GET/api/v1/order-statuses
- Authentification
Bearer- Disponible à partir de
- BASIC
- Autorisations requises
orders.order:read
Exemples de code
Exemple de requête
cURL
: "${SHOPENTLY_SHOP_URL:?}"
curl --disable --globoff --fail-with-body --silent --show-error \
--proto '=https' --connect-timeout 5 --max-time 30 \
--request GET \
--header "Authorization: Bearer ${SHOPENTLY_ACCESS_TOKEN:?}" \
--url "${SHOPENTLY_SHOP_URL%/}"'/api/v1/order-statuses?limit=20'
PHP
<?php
declare(strict_types=1);
$baseUrl = rtrim(getenv('SHOPENTLY_SHOP_URL') ?: '', '/');
$origin = parse_url($baseUrl);
if (!$origin || ($origin['scheme'] ?? '') !== 'https' || empty($origin['host']) ||
isset($origin['user'], $origin['pass']) || isset($origin['user']) || isset($origin['path']) ||
isset($origin['query']) || isset($origin['fragment'])) {
throw new RuntimeException('SHOPENTLY_SHOP_URL must be an HTTPS origin');
}
$credential = getenv('SHOPENTLY_ACCESS_TOKEN') ?: '';
if ($credential === '' || strpbrk($credential, "\r\n") !== false) {
throw new RuntimeException('Invalid credential');
}
$headers = [];
$headers[] = 'Authorization: Bearer ' . $credential;
$responseHeaders = [];
$handle = curl_init($baseUrl . '/api/v1/order-statuses?limit=20');
curl_setopt_array($handle, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_PROTOCOLS => CURLPROTO_HTTPS,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 30,
CURLOPT_HEADERFUNCTION => static function ($handle, string $line) use (&$responseHeaders): int {
if (str_contains($line, ':')) {
[$name, $value] = explode(':', $line, 2);
$responseHeaders[strtolower(trim($name))] = trim($value);
}
return strlen($line);
},
]);
$raw = curl_exec($handle);
$status = curl_getinfo($handle, CURLINFO_RESPONSE_CODE);
$error = curl_error($handle);
curl_close($handle);
if ($raw === false) {
throw new RuntimeException('Transport error: ' . $error);
}
if ($status < 200 || $status >= 300) {
throw new RuntimeException('HTTP ' . $status . '; request_id=' .
($responseHeaders['x-request-id'] ?? '') . '; retry_after=' . ($responseHeaders['retry-after'] ?? ''));
}
$result = $raw === '' ? null : json_decode($raw, true, 512, JSON_THROW_ON_ERROR | JSON_BIGINT_AS_STRING);
echo json_encode($result, JSON_THROW_ON_ERROR | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE), PHP_EOL;
Python
from contextlib import ExitStack
import json
import os
from urllib.parse import urlsplit
import requests # python -m pip install requests
base_url = os.environ["SHOPENTLY_SHOP_URL"].rstrip("/")
origin = urlsplit(base_url)
if origin.scheme != "https" or not origin.hostname or origin.username or origin.password or origin.path or origin.query or origin.fragment:
raise ValueError("SHOPENTLY_SHOP_URL must be an HTTPS origin")
credential = os.environ['SHOPENTLY_ACCESS_TOKEN']
if not credential or "\r" in credential or "\n" in credential:
raise ValueError("Invalid credential")
headers = {}
headers["Authorization"] = 'Bearer' + " " + credential
body = None
if body is not None:
headers["Content-Type"] = "application/json"
with ExitStack() as stack:
session = stack.enter_context(requests.Session())
files = None
if False:
image = stack.enter_context(open(os.environ["SHOPENTLY_IMAGE_FILE"], "rb"))
if os.fstat(image.fileno()).st_size > 5242880:
raise ValueError("Image exceeds 5 MiB")
files = {"file": ("article.png", image, "image/png")}
response = session.request(
'GET', base_url + '/api/v1/order-statuses?limit=20', headers=headers,
data=body.encode("utf-8") if body is not None else None, files=files,
timeout=(5, 30), allow_redirects=False,
)
if not 200 <= response.status_code < 300:
raise RuntimeError(f"HTTP {response.status_code}; request_id={response.headers.get('X-Request-ID', '')}; retry_after={response.headers.get('Retry-After', '')}")
if False:
if response.headers.get("Content-Type") != "image/webp" or len(response.content) > 5242880:
raise ValueError("Unexpected image response")
with open(os.environ["SHOPENTLY_OUTPUT_FILE"], "xb") as output:
output.write(response.content)
else:
result = response.json() if response.content else None
print(json.dumps(result, ensure_ascii=False, indent=2))
Exemple de réponse 200
{
"data": [
{
"created_at": "2026-01-01T12:00:00Z",
"id": "example",
"is_initial": false,
"name": "Example",
"position": 1
}
],
"meta": {
"pagination": {
"has_more": false,
"limit": 20,
"next_cursor": null
},
"request_id": "example"
}
}
Fonctionnement
- La collection fournit des résumés et des filtres par numéro, statut, statut de paiement et date de création.
- Le point d'accès de détail renvoie toutes les lignes, les images des produits, les données client, les montants, la livraison et les dates enregistrées.
- Obtenez les identifiants de statut valides via /api/v1/order-statuses.
- Le statut de commande et celui du paiement ont des opérations PATCH et des autorisations distinctes.
- Modifier le statut de paiement enregistré ne débite pas de carte et ne déclenche pas de remboursement chez un prestataire de paiement.
Paramètres
Paramètres de requête
limitEntierFacultatifNombre maximal d'enregistrements sur cette page.
minimum:1maximum:100cursorChaîne nullFacultatifValeur opaque de continuation renvoyée par la page précédente.
Chaîne:minLength:1maxLength:1024
Cette opération n'accepte pas de corps JSON.
Réponses
Réponse 200
dataTableau <shopently_engine__domains__orders__adapters__public_http__orders__schemas__StatusDefinitionData> ObligatoireDonnées d'une réponse réussie.
Champs ·
datashopently_engine__domains__orders__adapters__public_http__orders__schemas__StatusDefinitionDatacreated_atChaîneObligatoireDate et heure de création.
format:"date-time"idChaîneObligatoireIdentifiant de ressource ; conserver la valeur renvoyée.
is_initialBooléenObligatoireIndique s'il s'agit du statut initial.
nameChaîneObligatoireNom de la ressource dans le contexte concerné.
positionEntierObligatoirePosition dans la collection ordonnée.
metaContextPageMetaContextMetaPageMetaRequestMetaObligatoireMétadonnées de la réponse.
Champs ·
metaModèle complet:
ContextPageMetalocaleChaîneObligatoireLangue sélectionnée pour cette requête.
market_codeChaîneObligatoireCode de marché renvoyé par le point d'accès au contexte.
market_idChaîneObligatoireIdentifiant de marché renvoyé par le point d'accès au contexte.
paginationPaginationObligatoireMétadonnées de pagination par curseur.
request_idChaîneObligatoireIdentifiant de demande ; dans les métadonnées, identifiant de la requête HTTP.
minLength:1maxLength:100
localeChaîneObligatoireLangue sélectionnée pour cette requête.
market_codeChaîneObligatoireCode de marché renvoyé par le point d'accès au contexte.
market_idChaîneObligatoireIdentifiant de marché renvoyé par le point d'accès au contexte.
request_idChaîneObligatoireIdentifiant de demande ; dans les métadonnées, identifiant de la requête HTTP.
minLength:1maxLength:100
paginationPaginationObligatoireMétadonnées de pagination par curseur.
request_idChaîneObligatoireIdentifiant de demande ; dans les métadonnées, identifiant de la requête HTTP.
minLength:1maxLength:100
request_idChaîneObligatoireIdentifiant de demande ; dans les métadonnées, identifiant de la requête HTTP.
minLength:1maxLength:100
Statut HTTP
200- Réponse réussie Schéma
400- Requête invalide
401- Authentification requise
403- Accès refusé
404- Ressource introuvable
409- Conflit de version
422- Échec de validation
429- Limite de requêtes dépassée
Autres statuts HTTP (7)
405- Méthode non autorisée
413- Requête trop volumineuse
415- Format non pris en charge
500- Erreur du serveur
502- Erreur de passerelle API
503- Service indisponible
504- Délai de passerelle dépassé
Catalogue des erreurs: ErrorResponse
En-têtes
401
WWW-AuthenticateChaîneFacultatifSchéma d'authentification exigé par le serveur.
405
AllowChaîneFacultatifMéthodes HTTP prises en charge par cette ressource.
429, 503
Retry-AfterEntierFacultatifDélai minimal avant une nouvelle tentative, en secondes.
minimum:0