POST
Mettre à jour le statut
Mettre à jour le statut personnalisé d'une commande spécifique. Envoie automatiquement des notifications basées sur la configuration du statut.
Point de terminaison
Requête HTTP
POST /v1/orders/:order_id/statusAuthentification
Ce point de terminaison nécessite une clé API valide avec la permission
canChangeOrderStatus . La clé API doit être passée dans l'en-tête X-API-Key .En-tête requis
X-API-Key: your_api_key_hereParamètres de chemin
| Paramètre | Type | Requis | Défaut | Description |
|---|---|---|---|---|
order_id | string | Oui | - | Identifiant de commande (UUID par défaut, ou partie numérique de l'ID Shopify si use_shopify_order_id est true dans le corps de la requête). Pour les ID de commande Shopify, extraire le numéro du format GID (par ex., pour 'gid://shopify/Order/450789469', utiliser '450789469'). |
Corps de la requête
| Paramètre | Type | Requis | Défaut | Description |
|---|---|---|---|---|
status_id | string | Oui | - | L'UUID du statut personnalisé |
sub_status_option_id | string | Conditionnel | - | L'UUID de l'option de sous-statut. Requis si le statut a des options de sous-statut. |
use_shopify_order_id | boolean | Non | false | Définir à 'true' pour rechercher la commande en utilisant l'ID Shopify au lieu de l'UUID. Extraire le numéro du format GID Shopify (gid://shopify/Order/450789469 → 450789469) et l'utiliser dans le paramètre de chemin order_id. |
Réponse
Retourne une confirmation avec les détails de la commande mise à jour:
200 OK - Réponse de succès
{
"message": "Order status updated successfully",
"order": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"shopify_order_id": "gid://shopify/Order/123456789",
"name": "#1001",
"status": {
"id": "status-uuid-abc123",
"name": "Processing",
"color": "#2948ff"
},
"sub_status": {
"id": "sub-status-uuid-def456",
"name": "Awaiting Parts"
}
},
"notifications": {
"total_sent": 2,
"total_failed": 0,
"by_channel": {
"email": {
"sent": 1,
"failed": 0
},
"sms": {
"sent": 1,
"failed": 0
}
}
}
}Champs de réponse
Objet de réponse racine
| Champ | Type | Description |
|---|---|---|
message | string | Message de confirmation |
order | object | Objet contenant les détails de la commande mise à jour |
notifications | object | Objet contenant les statistiques de notification |
Objet de commande
| Champ | Type | Description |
|---|---|---|
id | string | UUID de la commande |
shopify_order_id | string | ID de commande Shopify |
name | string | Nom/numéro de commande Shopify |
status | object | null | Objet de statut avec id, nom et couleur |
sub_status | object | null | Objet de sous-statut avec id et nom (si applicable) |
Champs d'objet de statut
| Champ | Type | Description |
|---|---|---|
id | string | UUID du statut |
name | string | Nom d'affichage du statut |
color | string | Code couleur hexadécimal du statut |
Objet de sous-statut
| Champ | Type | Description |
|---|---|---|
id | string | UUID du sous-statut |
name | string | Nom du sous-statut |
Champs d'objet de notifications
| Champ | Type | Description |
|---|---|---|
total_sent | number | Nombre total de notifications envoyées avec succès |
total_failed | number | Nombre total de notifications ayant échoué |
by_channel | object | Objet avec les statistiques par canal (par ex., email, sms) |
Champs d'objet de statistiques par canal
| Champ | Type | Description |
|---|---|---|
sent | number | Nombre de notifications envoyées avec succès pour ce canal |
failed | number | Nombre de notifications ayant échoué pour ce canal |
Exemples
Requête de base (UUID)
Requête cURL
curl -X POST "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders/550e8400-e29b-41d4-a716-446655440000/status" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"status_id": "status-uuid-abc123",
"sub_status_option_id": "sub-status-uuid-def456"
}'Utilisation de l'ID de commande Shopify
Requête cURL
curl -X POST "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders/5460132438316/status" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"status_id": "status-uuid-abc123",
"sub_status_option_id": "sub-status-uuid-def456",
"use_shopify_order_id": true
}'Limitation de débit
Ce point de terminaison est soumis à des limites de débit par minute et par jour en fonction de votre clé API. Les informations de limite de débit sont renvoyées dans les en-têtes de réponse:
X-RateLimit-Limit-Minute: Nombre maximum de requêtes par minuteX-RateLimit-Remaining-Minute: Requêtes restantes dans la minute en coursX-RateLimit-Reset-Minute: Horodatage Unix de réinitialisation de la fenêtre minuteX-RateLimit-Limit-Day: Nombre maximum de requêtes par jourX-RateLimit-Remaining-Day: Requêtes restantes dans le jour en coursX-RateLimit-Reset-Day: Horodatage Unix de réinitialisation de la fenêtre jourRetry-After: Secondes à attendre avant de réessayer (en cas de limitation)
Réponses d'erreur
400 Mauvaise requête
Corps de requête invalide, échec de validation ou le statut nécessite un sous-statut
400 Mauvaise requête
{
"error": "Validation failed",
"details": {
"errors": [...]
}
}401 Non autorisé
Clé API manquante ou invalide
401 Non autorisé
{
"error": "Unauthorized"
}403 Interdit
La clé API manque de permissions requises ou l'application de la chaîne de produits empêche ce changement de statut
403 Interdit
{
"error": "Insufficient permissions"
}404 Non trouvé
Commande, statut ou sous-statut non trouvé
404 Non trouvé
{
"error": "Order not found",
"details": {
"orderId": "550e8400-e29b-41d4-a716-446655440000"
}
}500 Erreur interne du serveur
Une erreur du serveur s'est produite
500 Erreur interne du serveur
{
"error": "Internal server error",
"details": {
"message": "Error description"
}
}