POST
Changer les statuts d'articles en masse
Changer le statut de plusieurs articles vers le même statut cible en une seule opération. Maximum 100 articles par requête.
Point de terminaison
Requête HTTP
POST /v1/line-items/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: ucos_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCorps de la requête
| Paramètre | Type | Requis | Défaut | Description |
|---|---|---|---|---|
line_item_ids | string[] | Oui | - | Tableau d'ID d'articles internes (1–100) |
status_id | string (UUID) | Oui | - | ID du statut cible |
sub_status_option_id | string (UUID) | Conditionnel | - | Requis lorsque le statut cible a des options de sous-statut |
Réponse
Retourne la confirmation avec le nombre d'articles mis à jour:
200 OK - Réponse de succès
{
"success": true,
"data": {
"message": "string",
"affected_count": 0,
"requested_count": 0,
"notifications": {
"total_sent": 0,
"total_failed": 0,
"errors": [
{
"channel": "string",
"code": "string",
"message": "string"
}
]
},
"metafield_errors": []
}
}Champs de réponse
Objet de réponse racine
| Champ | Type | Description |
|---|---|---|
success | boolean | Toujours true pour une réponse réussie. |
data | object | Charge utile de le point de terminaison. Ses champs sont détaillés dans les tableaux ci-dessous. |
message | string | Message de confirmation |
affected_count | number | Nombre d'articles mis à jour avec succès |
requested_count | number | Nombre total d'articles demandés |
invalid_line_items | array | Tableau d'articles ayant échoué la validation (présent uniquement en cas de succès partiel) |
notifications | object | Résumé de l'envoi des notifications. |
metafield_errors | array | Déclaré comme { orderId, message }[] ; la reconstruction du métachamp ne rejette jamais, donc ce tableau est toujours vide en pratique. |
Champs d'un objet de ligne invalide
| Champ | Type | Description |
|---|---|---|
lineItemId | string | ID de l'article ayant échoué |
error | string | Message d'erreur pour cette ligne de commande. |
code | string | Code d'erreur lisible par la machine, lorsqu'il est disponible. |
Champs d'objet de notifications
| Champ | Type | Description |
|---|---|---|
total_sent | number | Nombre de notifications envoyées. |
total_failed | number | Nombre de notifications en échec. |
errors | array | Erreurs de notification par canal. |
Champs d'un objet d'erreur de notification
| Champ | Type | Description |
|---|---|---|
channel | string | Canal en échec. |
code | string | Code d'erreur lisible par la machine. |
message | string | Message d'erreur lisible par l'humain. |
Champs d'un objet d'erreur de métachamp
| Champ | Type | Description |
|---|---|---|
orderId | string | Identifiant de la commande dont le métachamp a échoué. |
message | string | Message d'erreur lisible par l'humain. |
Notes
- •Maximum 100 articles par requête.
- •Ne déclenche pas de notifications (contrairement au changement d'article individuel).
- •Les champs méta sont reconstruits pour toutes les commandes parentes affectées.
Exemples
Requête de base
Requête cURL
curl -X POST "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/line-items/status-bulk" \
-H "X-API-Key: ucos_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-H "X-API-Version: 1.5" \
-H "Content-Type: application/json" \
-d '{"line_item_ids":["8c1d4e2f-0a53-49b7-b6e4-7f2d9c3a5e10"],"status_id":"8c1d4e2f-0a53-49b7-b6e4-7f2d9c3a5e10","sub_status_option_id":"8c1d4e2f-0a53-49b7-b6e4-7f2d9c3a5e10"}'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 Requête invalide
Statut d'article non activé, validation échouée, ou tous les articles ont échoué
400 Requête invalide
{
"success": false,
"error": "Validation failed",
"details": {
"errors": [
{
"code": "invalid_type",
"expected": "string",
"received": "undefined",
"path": [
"status_id"
],
"message": "Required"
}
]
}
}401 Non autorisé
Clé API manquante ou invalide
401 Non autorisé
{
"success": false,
"error": "Missing API key. Include it in the X-API-Key header"
}403 Interdit
La clé API manque de permissions requises
403 Interdit
{
"success": false,
"error": "Insufficient permissions. Required: canChangeOrderStatus"
}404 Non trouvé
Statut non trouvé
404 Non trouvé
{
"success": false,
"error": "Line item not found"
}500 Erreur interne du serveur
Une erreur du serveur s'est produite
500 Erreur interne du serveur
{
"success": false,
"error": "Internal server error",
"details": {
"message": "An unexpected error occurred"
}
}