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/status

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

Paramètres de chemin

ParamètreTypeRequisDéfautDescription
order_idstringOui-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ètreTypeRequisDéfautDescription
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 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

ChampTypeDescription
messagestringMessage de confirmation
orderobjectObjet contenant les détails de la commande mise à jour
notificationsobjectObjet contenant les statistiques de notification

Objet de commande

ChampTypeDescription
idstringUUID de la commande
shopify_order_idstringID de commande Shopify
namestringNom/numéro de commande Shopify
statusobject | nullObjet de statut avec id, nom et couleur
sub_statusobject | nullObjet de sous-statut avec id et nom (si applicable)

Champs d'objet de statut

ChampTypeDescription
idstringUUID du statut
namestringNom d'affichage du statut
colorstringCode couleur hexadécimal du statut

Objet de sous-statut

ChampTypeDescription
idstringUUID du sous-statut
namestringNom du sous-statut

Champs d'objet de notifications

ChampTypeDescription
total_sentnumberNombre total de notifications envoyées avec succès
total_failednumberNombre total de notifications ayant échoué
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/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 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 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"
  }
}