Journal des modifications de l'API (v1.4)
Suivez tous les changements apportés à l'API Ultimate Custom Order Status
Convention de nommage des versions
L'API utilise un système de versionnement à deux niveaux:
Versions majeures (basées sur l'URL)
Les versions majeures avec des changements incompatibles nécessitent un changement d'URL:
/api/v1/*- Version 1.x/api/v2/*- Version 2.x (future)
Versions mineures (basées sur l'en-tête)
Les versions mineures avec des changements rétrocompatibles utilisent l'en-tête X-API-Version:
X-API-Version: 1.0- Version 1.0 (de base, sans support des statuts complémentaires)X-API-Version: 1.1- Version 1.1 (inclut le support des statuts complémentaires)X-API-Version: 1.2- Version 1.2 (filtrage des commandes brouillon, jours fériés)X-API-Version: 1.3- Version 1.3 (inclut le support des flux de travail)X-API-Version: 1.4- Version 1.4 (actuelle, suivi de statut par article)
Support
Pour des questions sur le versionnement de l'API ou une assistance pour la migration:
Courriel: support@msmtech.ca
Documentation: Référence de l'API
v1.4 - Mars 2026
Date de sortie: 12 mars 2026
Méthode d'accès: Par défaut (aucun en-tête requis) ou X-API-Version: 1.4
Nouvelles fonctionnalités
Suivi de statut par article
Ajout du suivi de statut au niveau des articles à l'API externe. Les marchands qui suivent les statuts au niveau des articles individuels peuvent maintenant gérer ces statuts via trois nouveaux points de terminaison.
Nouveaux points de terminaison:
POST /v1/line-items/:lineItemId/status- Changer le statut d'un article individuel avec support des notificationsPOST /v1/line-items/status-bulk- Changer les statuts de plusieurs articles en masse (jusqu'à 100)POST /v1/line-items/clear-status- Effacer les statuts d'un ou plusieurs articles (jusqu'à 100)
Réponse de changement de statut d'article
{
"success": true,
"data": {
"message": "Line item status updated successfully",
"line_item": {
"id": "li-uuid-123",
"status": {
"id": "uuid-status-1",
"name": "In Production",
"color": "#FFA500"
},
"sub_status": {
"id": "uuid-substatus-1",
"name": "Cutting"
}
}
}
}Mode de spécificité du statut
Le paramètre statusSpecificity de la boutique détermine quels points de terminaison sont disponibles. Les modes sont: order (uniquement les points de terminaison au niveau commande), line_item (uniquement les points de terminaison au niveau article), ou combined (les deux fonctionnent indépendamment).
Comportements clés
- Les changements de statut d'article individuel déclenchent des notifications lorsqu'elles sont configurées sur le statut cible. Les points de terminaison en masse et d'effacement ne déclenchent pas de notifications.
- Après tout changement de statut d'article, le champ méta de la commande parente est automatiquement reconstruit pour refléter l'état agrégé des articles.
- L'application de la chaîne de produits s'applique indépendamment par article — chaque article doit suivre l'ordre de progression de statut configuré.
Guide de migration
- Aucun changement incompatible — tous les points de terminaison et réponses v1.3 sont inchangés
- Les points de terminaison d'articles sont disponibles par défaut dans v1.4
- Vérifiez le mode de spécificité du statut de la boutique avant d'appeler les points de terminaison d'articles
- Les ID d'articles utilisent des UUID internes (SyncedLineItem.id), pas les GID Shopify
- Entièrement rétrocompatible — les intégrations existantes continuent de fonctionner
Exemple de requête
curl -X POST "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/line-items/li-uuid-123/status" \
-H "X-API-Key: your_api_key_here" \
-H "X-API-Version: 1.4" \
-H "Content-Type: application/json" \
-d '{
"status_id": "uuid-status-1",
"sub_status_option_id": "uuid-substatus-1"
}'Changements incompatibles
Aucun — tous les points de terminaison v1.0–v1.3 sont inchangés.
v1.3 - Mars 2026
Date de sortie: 4 mars 2026
Méthode d'accès: X-API-Version: 1.3
Nouvelles fonctionnalités
Support des flux de travail
Ajout du support des flux de travail à travers l'API. Les flux de travail permettent de définir des séquences ordonnées de statuts que les commandes suivent, permettant des pipelines de traitement structurés.
Nouveau point de terminaison:
GET /api/v1/workflows- Lister tous les flux de travail configurés avec leurs statuts associés
Réponse des flux de travail
{
"workflows": [
{
"id": "uuid-workflow-1",
"name": "Fulfillment",
"description": "Standard order fulfillment pipeline",
"color": "#4A90E2",
"order": 1,
"statuses": [
{
"id": "uuid-status-1",
"name": "Processing",
"public_name": null,
"use_public_name": false,
"display_name": "Processing",
"color": "#FFA500",
"order": 1,
"is_independent": false,
"is_addon": false
},
{
"id": "uuid-status-2",
"name": "Shipped",
"public_name": "On its way",
"use_public_name": true,
"display_name": "On its way",
"color": "#00FF00",
"order": 2,
"is_independent": false,
"is_addon": false
}
],
"status_count": 2
}
],
"workflows_enabled": true,
"enforce_workflow_order": false,
"summary": {
"total": 1,
"total_statuses": 2
}
}Champs de flux de travail sur les commandes
Les commandes incluent maintenant les champs workflow_id et workflow_name indiquant le flux de travail assigné à la commande.
Points de terminaison affectés:
GET /api/v1/orders- Les commandes incluent maintenant les champs workflow_id et workflow_nameGET /api/v1/orders/:order_id- Le détail de la commande inclut maintenant les champs workflow_id et workflow_name
Changements de réponse
{
"id": "order-uuid",
"shopify_order_id": "gid://shopify/Order/123456",
"name": "#1001",
"workflow_id": "uuid-workflow-1",
"workflow_name": "Fulfillment",
"custom_status": {
"id": "uuid-status-1",
"name": "Processing",
"color": "#FFA500"
}
}Champs de flux de travail sur les statuts
Les statuts incluent maintenant les champs workflow_id et workflow_name indiquant le flux de travail auquel le statut appartient.
Points de terminaison affectés:
GET /api/v1/statuses- Les statuts incluent maintenant les champs workflow_id et workflow_name, plus le résumé inclut workflows_enabledGET /api/v1/statuses/:status_id- Le détail du statut inclut maintenant les champs workflow_id et workflow_name
Changements de réponse
{
"id": "uuid-status-1",
"name": "Processing",
"public_name": null,
"use_public_name": false,
"display_name": "Processing",
"color": "#FFA500",
"order": 1,
"is_independent": false,
"is_addon": false,
"workflow_id": "uuid-workflow-1",
"workflow_name": "Fulfillment"
}Filtrage par flux de travail
Ajout du paramètre de requête workflow_id au point de terminaison Lister les commandes, permettant de filtrer les commandes par flux de travail assigné.
curl -X GET "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders?workflow_id=uuid-workflow-1&page=1&limit=25" \
-H "X-API-Key: your_api_key_here" \
-H "X-API-Version: 1.3"Permission requise
Le point de terminaison Lister les flux de travail nécessite la permission existante canViewStatuses.
canViewStatuses- Requise pour accéder au point de terminaison des flux de travail
Guide de migration
- Ajoutez l'en-tête X-API-Version: 1.3 pour utiliser cette version explicitement
- Les nouveaux champs workflow_id et workflow_name sont nullables - les intégrations existantes continuent de fonctionner sans modification
- Le point de terminaison Lister les flux de travail utilise la permission existante canViewStatuses — aucune nouvelle permission nécessaire
- Utilisez le nouveau paramètre de requête workflow_id sur Lister les commandes pour filtrer par flux de travail
- Entièrement rétrocompatible - les intégrations existantes continuent de fonctionner
Exemple de requête
curl -X GET "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders?workflow_id=uuid-workflow-1&page=1&limit=25" \
-H "X-API-Key: your_api_key_here" \
-H "X-API-Version: 1.3"Changements incompatibles
Aucun - cette version est rétrocompatible. Les nouveaux champs sont nullables et n'affectent pas les intégrations existantes.
v1.2 - Décembre 2025
Date de sortie: 9 décembre 2025
Méthode d'accès: X-API-Version: 1.2
Nouvelles fonctionnalités
Filtrage des commandes brouillon
Ajout de la possibilité de filtrer les commandes par type (commandes régulières, commandes brouillon ou toutes). Les commandes brouillon peuvent maintenant être gérées aux côtés des commandes régulières via l'API.
Points de terminaison affectés :
GET /api/v1/orders- La liste des commandes prend maintenant en charge le paramètre de requête order_type (REGULAR, DRAFT, ALL)GET /api/v1/orders/:order_id- La recherche de commande détecte maintenant automatiquement les commandes brouillon vs régulières lors de l'utilisation des identifiants Shopify
Changements de la liste des commandes
Le nouveau paramètre de requête order_type permet de filtrer par type de commande :
REGULAR- REGULAR - Retourne uniquement les commandes régulières (par défaut en v1.0/v1.1)DRAFT- DRAFT - Retourne uniquement les commandes brouillonALL- ALL - Retourne les commandes régulières et brouillon (par défaut en v1.2)
Exemples
# Get all orders (both regular and draft) - v1.2 default
curl -X GET "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders?order_type=ALL" \
-H "X-API-Key: your_api_key_here" \
-H "X-API-Version: 1.2"
# Get only regular orders
curl -X GET "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders?order_type=REGULAR" \
-H "X-API-Key: your_api_key_here" \
-H "X-API-Version: 1.2"
# Get only draft orders
curl -X GET "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders?order_type=DRAFT" \
-H "X-API-Key: your_api_key_here" \
-H "X-API-Version: 1.2"Changements de la commande détaillée
Lors de l'utilisation de use_shopify_order_id=true, l'API essaie maintenant automatiquement les formats d'identifiant de commande régulière et brouillon, facilitant l'intégration.
# Look up a draft order by Shopify ID - v1.2 automatically tries both formats
curl -X GET "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders/1234567890?use_shopify_order_id=true" \
-H "X-API-Key: your_api_key_here" \
-H "X-API-Version: 1.2"Exclusion des jours fériés
Ajout du drapeau skip_holidays à la configuration max_duration des statuts. Lorsqu'il est activé, les jours fériés seront exclus du calcul des délais de durée des statuts, similaire à la fonctionnalité existante skip_weekends.
Points de terminaison affectés :
GET /api/v1/statuses- La liste des statuts inclut maintenant skip_holidays dans l'objet max_durationGET /api/v1/statuses/:status_id- Le détail du statut inclut maintenant skip_holidays dans l'objet max_duration
Changements de réponse
Les réponses de statut incluent maintenant le champ skip_holidays dans l'objet max_duration :
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Fulfillment",
"color": "#2948ff",
"is_independent": false,
"is_addon": false,
"max_duration": {
"enabled": true,
"seconds": 432000,
"skip_weekends": true,
"skip_holidays": true,
"show_public_overdue_date": true
}
}Améliorations du format de réponse en masse
Mise à jour du format de réponse des opérations en masse avec un rapport succès/échec plus clair et des informations d'erreur détaillées pour les entrées échouées.
Points de terminaison affectés :
POST /api/v1/orders/status-bulk- Mise à jour en masse des statuts avec format de réponse amélioréPOST /api/v1/orders/notify-bulk- Notification en masse avec format de réponse amélioré
Changements de mise à jour en masse des statuts :
- updated_count - Nombre total de commandes mises à jour avec succès
- failed - Nombre de commandes dont la mise à jour a échoué
- success - Booléen indiquant si toutes les mises à jour ont réussi
- failed_entries - Tableau d'objets avec order_id et détails d'erreur pour chaque échec
Changements de notification en masse :
- total_orders - Nombre total de commandes dans la demande de notification
- failed - Nombre de commandes dont la notification a échoué
- success - Booléen indiquant si toutes les notifications ont réussi
- failed_entries - Tableau d'objets avec order_id et détails d'erreur pour chaque échec
Exemples de réponses en masse
# Old format (before v1.2 update)
{
"message": "Statuses updated successfully",
"updated_count": 2,
"results": [
{
"order_id": "uuid1",
"status_id": "status-uuid",
"status_name": "Processing"
}
]
}
# New format (v1.2 update)
{
"message": "Statuses updated successfully",
"updated": 2,
"failed": 1,
"results": [
{
"order_id": "uuid1",
"success": true,
"status_id": "status-uuid",
"status_name": "Processing"
},
{
"order_id": "uuid2",
"success": true,
"status_id": "status-uuid",
"status_name": "Processing"
},
{
"order_id": "invalid-uuid",
"success": false,
"error": "Order not found"
}
]
}Guide de migration
- Ajoutez l'en-tête X-API-Version: 1.2 pour utiliser cette version explicitement
- Le paramètre order_type est optionnel - par défaut ALL en v1.2
- Les recherches par identifiant Shopify fonctionnent maintenant pour les commandes régulières et brouillon sans modification
- Le champ skip_holidays est maintenant disponible dans les configurations max_duration des statuts
- Mettez à jour la gestion des réponses d'opérations en masse pour utiliser les nouveaux champs success, failed et failed_entries
- Vérifiez le booléen success pour une détermination rapide de succès/échec au lieu d'analyser les résultats individuels
- Entièrement rétrocompatible - les intégrations existantes continuent de fonctionner
Exemple de requête
curl -X GET "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders?order_type=DRAFT" \
-H "X-API-Key: your_api_key_here" \
-H "X-API-Version: 1.2"Changements incompatibles
Aucun - cette version est rétrocompatible. Le comportement par défaut de order_type a changé de REGULAR à ALL, mais c'est additif (retourne plus de données, pas moins).
v1.1 - Novembre 2025
Date de sortie: 14 novembre 2025
Méthode d'accès: Par défaut (aucun en-tête requis) ou X-API-Version: 1.1
Nouvelles fonctionnalités
Support des statuts complémentaires
Ajout du support des statuts complémentaires sur tous les points de terminaison liés aux commandes. Les statuts complémentaires peuvent être assignés en plus des statuts principaux.
Points de terminaison affectés:
GET /api/v1/orders- La liste des commandes inclut maintenant un tableau addon_statuses lorsque l'en-tête X-API-Version: 1.1 est présentGET /api/v1/orders/:order_id- Le détail de la commande inclut maintenant un tableau addon_statuses lorsque l'en-tête X-API-Version: 1.1 est présentGET /api/v1/statuses- La liste des statuts inclut maintenant un indicateur is_addon lorsque l'en-tête X-API-Version: 1.1 est présent
Changements de réponse
Les commandes incluent maintenant un champ addon_statuses avec support optionnel des sous-statuts:
{
"id": "uuid",
"status": {
"id": "status-uuid",
"name": "Processing",
"color": "#2948ff"
},
"addon_statuses": [
{
"id": "addon-uuid-1",
"name": "Quality Check",
"color": "#10b981",
"sub_status": {
"id": "addon-sub-uuid",
"name": "Passed"
}
},
{
"id": "addon-uuid-2",
"name": "Packaging",
"color": "#f59e0b",
"sub_status": null
}
]
}Les statuts incluent maintenant des indicateurs de classification:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Processing",
"is_independent": false,
"is_addon": false
}Guide de migration
- Aucune modification de code requise - entièrement rétrocompatible
- Pour accéder aux données des statuts complémentaires, ajoutez l'en-tête X-API-Version: 1.1 à vos requêtes
- Les requêtes sans en-tête continuent de retourner le format v1.0
- Aucune modification requise pour l'authentification ou la limitation de débit
Exemple de requête:
curl -X GET 'https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders' \
-H 'Authorization: Bearer ucos_live_your_api_key' \
-H 'X-API-Version: 1.1'Changements incompatibles
Aucun - cette version est rétrocompatible.
v1.0 - Version initiale
Date de sortie: Octobre 2025
Méthode d'accès: Ajoutez l'en-tête X-API-Version: 1.0 aux requêtes
Fonctionnalités
- Liste des commandes avec pagination, filtrage et recherche
- Récupération des détails de commande
- Liste des statuts avec support des sous-statuts
- Mises à jour des statuts de commande
- Support des opérations en masse
- Déclenchement de notifications
Points de terminaison disponibles:
GET /api/v1/ordersGET /api/v1/orders/:order_idPOST /api/v1/orders/:order_id/statusPOST /api/v1/orders/status-bulkGET /api/v1/statusesGET /api/v1/statuses/:status_idPOST /api/v1/orders/:order_id/notifyPOST /api/v1/orders/notify-bulk
Notes:
N'inclut pas le support des statuts complémentaires