Ideal House
Aller au contenu principal

Réponses d'erreur#

Code HTTPSignificationAction recommandée
400 Bad RequestLe corps de la requête ou les paramètres de la chaîne de requête sont invalides.Corrigez la requête avant de réessayer.
401 UnauthorizedLes identifiants sont manquants, invalides, expirés ou inactifs.Vérifiez les en-têtes d'authentification ou contactez Ideal House.
403 ForbiddenLe shopId demandé n'est pas associé aux identifiants.Utilisez le Shop ID assigné aux identifiants.
404 Not FoundAucun statut d'importation ou produit correspondant n'est disponible.Vérifiez le Shop ID et l'ID Produit ou le SKU demandé.
409 ConflictUne autre tâche d'importation est active pour la boutique.Attendez la fin de la tâche d'importation en cours.
429 Too Many RequestsLe débit de la requête est trop élevé.Réessayez avec un délai qui augmente de façon exponentielle et une variation aléatoire.
500 Internal Server ErrorLe service a rencontré une erreur inattendue.Réessayez avec un délai qui augmente de façon exponentielle. Contactez Ideal House si l'erreur persiste.
502 Bad Gateway ou 503 Service UnavailableL'API est temporairement indisponible.Réessayez avec un délai qui augmente de façon exponentielle.

Une erreur de validation peut utiliser le format suivant :

json
{
  "message": ["shopId should not be empty"],
  "error": "Bad Request",
  "statusCode": 400
}

Le texte dans message peut varier. Utilisez le code de statut HTTP et les champs de réponse documentés pour votre logique programme.

Recommandations pour les nouvelles tentatives et la reprise#

  • Interrogez périodiquement toutes les 2 à 5 secondes tant qu'une tâche est pending ou running.
  • Pour les réponses 429, 500, 502 et 503, utilisez un délai qui augmente de façon exponentielle avec une variation aléatoire et fixez un nombre maximal de tentatives.
  • Ne renouvelez pas automatiquement les requêtes ayant reçu 400, 401 ou 403 sans corriger la requête ou les identifiants.
  • Après un 409, attendez que la tâche active atteigne l'état completed ou failed.
  • Si une soumission expire avant que vous ne receviez de réponse, interrogez le point de terminaison de statut avant de soumettre à nouveau le lot.
  • Retenter le même produit avec le même SKU est sans risque car les importations utilisent un comportement de création ou mise à jour.
  • Après une tâche terminée avec des échecs au niveau des articles, soumettez un nouveau lot ne contenant que les produits en échec.
  • Après un échec au niveau de la tâche, les produits comptabilisés dans successCount ont pu déjà être mis à jour. Ressoumettre le lot original avec les mêmes codes SKU est sans risque.
  • Une suppression peut déjà avoir pris effet même si la requête renvoie 503. Retenter la même requête de suppression est sans risque.

Le point de terminaison de statut permet de suivre la tâche active ou la plus récente, et ne conserve pas un historique permanent des importations. Conservez le lot soumis, le jobId, les réponses de statut et le résultat final dans votre propre système pour le rapprochement des données et l'assistance.

Liste de vérification pour la production#

  • Conservez le Client Secret dans un gestionnaire de secrets ou dans un environnement serveur protégé.
  • Utilisez un SKU stable et unique pour chaque produit.
  • N'envoyez pas plus de 500 produits par requête.
  • Assurez-vous que les URLs des images sont accessibles publiquement et restent disponibles pendant le traitement.
  • Définissez explicitement processImages: true uniquement lorsqu'un prétraitement des images est nécessaire et que le coût de 1 crédit par image est accepté. Sinon, omettez-le ou définissez-le à false.
  • Activer la segmentation des sols uniquement en définissant à la fois processImages et processFloorImages sur true.
  • Fournissez name, imageUrl, productUrl, width, height et un productType pris en charge pour chaque produit.
  • Lorsqu'il est fourni, définissez status sur active, inactive, out_of_stock ou invalid.
  • Envoyez les dimensions comme des valeurs positives avec une unité prise en charge, ou omettez l'unité pour utiliser les pouces ; les valeurs stockées sont normalisées en pouces.
  • Mettez en persistance le jobId retourné et comparez-le avec les réponses de statut ultérieures.
  • Traitez completed avec failedCount > 0 comme un succès partiel.
  • Parcourez la liste des produits par pagination au lieu de demander un catalogue non borné.
  • Fournissez exactement l'un des suivants : productId ou sku pour les opérations de suppression.
  • Limitez le nombre de nouvelles tentatives et utilisez un délai qui augmente de façon exponentielle avec une variation aléatoire.

Pour les questions sur les identifiants, l'intégration initiale, le mappage des types de produits ou les problèmes d'intégration persistants, contactez votre représentant d'intégration Ideal House.