Réponses d'erreur#
| Code HTTP | Signification | Action recommandée |
|---|---|---|
400 Bad Request | Le 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 Unauthorized | Les identifiants sont manquants, invalides, expirés ou inactifs. | Vérifiez les en-têtes d'authentification ou contactez Ideal House. |
403 Forbidden | Le shopId demandé n'est pas associé aux identifiants. | Utilisez le Shop ID assigné aux identifiants. |
404 Not Found | Aucun statut d'importation ou produit correspondant n'est disponible. | Vérifiez le Shop ID et l'ID Produit ou le SKU demandé. |
409 Conflict | Une autre tâche d'importation est active pour la boutique. | Attendez la fin de la tâche d'importation en cours. |
429 Too Many Requests | Le 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 Error | Le 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 Unavailable | L'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 :
{
"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
pendingourunning. - Pour les réponses
429,500,502et503, 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,401ou403sans corriger la requête ou les identifiants. - Après un
409, attendez que la tâche active atteigne l'étatcompletedoufailed. - 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
successCountont 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: trueuniquement 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
processImagesetprocessFloorImagessurtrue. - Fournissez
name,imageUrl,productUrl,width,heightet unproductTypepris en charge pour chaque produit. - Lorsqu'il est fourni, définissez
statussuractive,inactive,out_of_stockouinvalid. - 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
jobIdretourné et comparez-le avec les réponses de statut ultérieures. - Traitez
completedavecfailedCount > 0comme 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 :
productIdouskupour 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.