Journal des modifications de l'API (v1.2)

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:

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 brouillon
  • ALL - ALL - Retourne les commandes régulières et brouillon (par défaut en v1.2)

Exemples

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.

Exemple : Recherche de commandes par identifiant Shopify
# 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_duration
  • GET /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 :

Exemple de réponse
{
  "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

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

v1.2 Request
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ésent
  • GET /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ésent
  • GET /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:

Changements de réponse
{
  "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:

Classification des statuts
{
  "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:

v1.1 Request
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/orders
  • GET /api/v1/orders/:order_id
  • POST /api/v1/orders/:order_id/status
  • POST /api/v1/orders/status-bulk
  • GET /api/v1/statuses
  • GET /api/v1/statuses/:status_id
  • POST /api/v1/orders/:order_id/notify
  • POST /api/v1/orders/notify-bulk

Notes:

N'inclut pas le support des statuts complémentaires