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-bulk

Authentification

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_here

Corps de la requête

ParamètreTypeRequisDéfautDescription
line_item_idsstring[]Oui-Tableau d'ID d'articles internes (1–100)
status_idstring (UUID)Oui-ID du statut cible
sub_status_option_idstring (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": "3 line item(s) updated successfully",
    "affected_count": 3,
    "requested_count": 3
  }
}
200 OK - Réponse de succès partiel
{
  "success": true,
  "data": {
    "message": "2 line item(s) updated successfully",
    "affected_count": 2,
    "requested_count": 3,
    "invalid_line_items": [
      {
        "lineItemId": "li-uuid-3",
        "reason": "Product chain enforcement: status must follow the configured order"
      }
    ]
  }
}

Champs de réponse

Objet de réponse racine

ChampTypeDescription
successbooleanIndique si l'opération a réussi
dataobjectObjet de données de réponse
messagestringMessage de confirmation
affected_countnumberNombre d'articles mis à jour avec succès
requested_countnumberNombre total d'articles demandés
invalid_line_itemsarrayTableau d'articles ayant échoué la validation (présent uniquement en cas de succès partiel)

invalid_line_items[]

ChampTypeDescription
lineItemIdstringID de l'article ayant échoué
reasonstringRaison de l'échec

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: your_api_key_here" \
  -H "X-API-Version: 1.4" \
  -H "Content-Type: application/json" \
  -d '{
    "line_item_ids": ["li-uuid-1", "li-uuid-2", "li-uuid-3"],
    "status_id": "uuid-status-2"
  }'

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 minute
  • X-RateLimit-Remaining-Minute: Requêtes restantes dans la minute en cours
  • X-RateLimit-Reset-Minute: Horodatage Unix de réinitialisation de la fenêtre minute
  • X-RateLimit-Limit-Day: Nombre maximum de requêtes par jour
  • X-RateLimit-Remaining-Day: Requêtes restantes dans le jour en cours
  • X-RateLimit-Reset-Day: Horodatage Unix de réinitialisation de la fenêtre jour
  • Retry-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": "Line item status changes are not enabled. Set status tracking level to \"line_item\" or \"combined\" in settings."
}

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é

Statut non trouvé

404 Non trouvé
{
  "error": "Status not found",
  "details": {
    "statusId": "uuid-status-2"
  }
}

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"
  }
}