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-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
order_idsstring[]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_idstringOui-L'UUID du statut personnalisé
sub_status_option_idstringConditionnel-L'UUID de l'option de sous-statut. Requis si le statut a des options de sous-statut.
use_shopify_order_idbooleanNonfalseDé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

ChampTypeDescription
messagestringMessage de confirmation
updated_countnumberNombre de commandes mises à jour avec succès
notificationsobjectObjet contenant les statistiques de notification

Champs d'objet de notifications

ChampTypeDescription
total_sentnumberNombre total de notifications envoyées avec succès pour toutes les commandes
total_failednumberNombre total de notifications ayant échoué pour toutes les commandes
by_channelobjectObjet avec les statistiques par canal (par ex., email, sms)

Champs d'objet de statistiques par canal

ChampTypeDescription
sentnumberNombre de notifications envoyées avec succès pour ce canal
failednumberNombre 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 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 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"
  }
}