POST
Mise à jour de statut en masse
Mettre à jour le statut personnalisé pour plusieurs commandes en une seule requête.
Point de terminaison
Requête HTTP
POST /v1/orders/status-bulkAuthentification
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_hereCorps de la requête
| Paramètre | Type | Requis | Défaut | Description |
|---|---|---|---|---|
order_ids | string[] | Oui | - | Tableau d'identifiants de commande (UUID par défaut, ou ID de commande Shopify si use_shopify_order_id est true). Pour les ID de commande Shopify, fournir la partie numérique du GID de commande Shopify (par ex., pour 'gid://shopify/Order/450789469', utiliser '450789469'). |
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 les commandes en utilisant des ID Shopify au lieu d'UUID. Extraire le numéro du format GID Shopify (gid://shopify/Order/450789469 → 450789469) et l'utiliser dans le tableau order_ids. |
Réponse
Retourne une confirmation avec le nombre de commandes mises à jour:
200 OK - Réponse de succès
{
"message": "Statuses updated successfully",
"updated_count": 3,
"notifications": {
"total_sent": 6,
"total_failed": 0,
"by_channel": {
"email": {
"sent": 3,
"failed": 0
},
"sms": {
"sent": 3,
"failed": 0
}
}
}
}Champs de réponse
Objet de réponse racine
| Champ | Type | Description |
|---|---|---|
message | string | Message de confirmation |
updated_count | number | Nombre de commandes mises à jour avec succès |
notifications | object | Objet contenant les statistiques de notification |
Champs d'objet de notifications
| Champ | Type | Description |
|---|---|---|
total_sent | number | Nombre total de notifications envoyées avec succès pour toutes les commandes |
total_failed | number | Nombre total de notifications ayant échoué pour toutes les commandes |
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/status-bulk" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"order_ids": ["uuid1", "uuid2", "uuid3"],
"status_id": "status-uuid",
"sub_status_option_id": "sub-status-option-uuid"
}'Utilisation d'ID de commande Shopify
Requête cURL
curl -X POST "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders/status-bulk" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"order_ids": ["5460132438316", "5460132438317", "5460132438318"],
"use_shopify_order_id": true,
"status_id": "status-uuid",
"sub_status_option_id": "sub-status-option-uuid"
}'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
403 Interdit
{
"error": "Insufficient permissions"
}404 Non trouvé
Aucune commande valide trouvée, ou statut/sous-statut non trouvé
404 Non trouvé
{
"error": "No valid orders found"
}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"
}
}