Mettre à jour les produits du catalogue
/catalogs/{catalog_name}/items
Utilisez cet endpoint pour mettre à jour plusieurs produits de votre catalogue.
Si un élément du catalogue n’existe pas, cet endpoint créera l’élément dans votre catalogue. Chaque requête peut prendre en charge jusqu’à 50 produits du catalogue. Cet endpoint est asynchrone.
Conditions préalables
Pour utiliser cet endpoint, vous aurez besoin d’une clé API avec l’autorisation catalogs.replace_items
.
Limite de débit
This endpoint has a shared rate limit of 16,000 requests per minute between all asynchronous catalog item endpoints, as documented in API rate limits.
Paramètres de chemin
Paramètre | Requis | Type de données | Description |
---|---|---|---|
catalog_name |
Requis | Chaîne de caractères | Nom du catalogue. |
Paramètres de demande
Paramètre | Requis | Type de données | Description |
---|---|---|---|
items |
Requis | Tableau | Un tableau qui contient certains objets Produit. Chaque produit doit avoir un ID. Les objets Produits devraient contenir des champs qui existent dans le catalogue. Jusqu’à 50 objets sont autorisés par requête. |
Exemple de demande
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
curl --location --request PUT 'https://rest.iad-03.braze.com/catalogs/restaurants/items' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
"items": [
{
"id": "restaurant1",
"Name": "Restaurant",
"Loyalty_Program": false,
"Location": {
"Latitude": 33.6112,
"Longitude": -117.8711
},
"Top_Dishes": [
"Hamburger",
"Deluxe Cheeseburger"
],
"Open_Time": "2021-09-03T09:03:19.967+00:00"
},
{
"id": "restaurant3",
"City": "San Francisco",
"Rating": 2,
"Top_Dishes": [
"Hot Dog",
"French Fries"
]
}
]
}'
Réponse
Trois réponses de code de statut existent pour cet endpoint : 202
, 400
et 404
.
Exemple de réponse réussie
Le code de statut 202
pourrait renvoyer le corps de réponse suivant.
1
2
3
{
"message": "success"
}
Exemple de réponse échouée
Le code de statut 400
pourrait renvoyer le corps de réponse suivant. Consultez la résolution des problèmes pour plus d’informations concernant les erreurs que vous pourriez rencontrer.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"errors": [
{
"id": "invalid-fields",
"message": "Some of the fields given do not exist in the catalog",
"parameters": [
"id"
],
"parameter_values": [
"restaurant1"
]
}
],
"message": "Invalid Request"
}
Résolution des problèmes
Le tableau suivant répertorie les erreurs renvoyées possibles et les étapes de résolution des problèmes associées.
Erreur | Résolution des problèmes |
---|---|
catalog-not-found |
Vérifiez que le nom du catalogue est valide. |
ids-not-string |
Confirmez que chaque ID de produit est une chaîne de caractères. |
ids-not-unique |
Vérifiez que chaque ID de produit est unique. |
ids-too-large |
La limite de caractères pour chaque ID de produit est de 250 caractères. |
item-array-invalid |
items doit être un tableau d’objets. |
items-missing-ids |
Confirmez que chaque produit a un ID. |
items-too-large |
Les valeurs de produits ne peuvent pas dépasser 5 000 caractères. |
invalid-ids |
Les caractères pris en charge pour les ID de produits sont les lettres, les nombres, les tirets et les traits de soulignement. |
invalid-fields |
Confirmez que tous les champs que vous envoyez dans la requête API existent déjà dans le catalogue. Cela n’a rien à voir avec le champ ID mentionné dans l’erreur. |
invalid-keys-in-value-object |
Les clés d’objet de produit ne peuvent pas inclure . ou $ . |
too-deep-nesting-in-value-object |
Les objets de produit ne peuvent pas avoir plus de 50 niveaux d’imbrication. |
request-includes-too-many-items |
Votre requête contient trop de produits. La limite de produit par requête est de 50. |
unable-to-coerce-value |
Les types de produits ne peuvent pas être convertis. |