Modifier plusieurs produits du catalogue
/catalogs/{catalog_name}/items
Utilisez cet endpoint pour modifier plusieurs éléments existants dans votre catalogue.
Chaque requête peut prendre en charge jusqu’à 50 éléments. Cet endpoint est asynchrone.
Conditions préalables
Pour utiliser cet endpoint, vous aurez besoin d’une clé API avec l’autorisation catalogs.update_items.
Limite de débit
Cet endpoint a une limite de débit partagée de 16 000 requêtes par minute entre tous les endpoints d’éléments de catalogue asynchrones, comme documenté dans Limites de débit de l’API.
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 requête
| Paramètre | Requis | Type de données | Description |
|---|---|---|---|
items |
Requis | Tableau | Un tableau contenant des objets d’éléments. Les objets d’éléments doivent contenir des champs qui existent dans le catalogue. Jusqu’à 50 objets d’éléments sont autorisés par requête. |
Exemple de requête
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
31
32
33
34
35
curl --location --request PATCH '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": {
"$add": [
"Biscuits",
"Coleslaw"
],
"$remove": [
"French Fries"
]
},
"Open_Time": "2021-09-03T09:03:19.967+00:00"
},
{
"id": "restaurant3",
"City": "San Francisco",
"Rating": 2,
"Top_Dishes": [
"Buffalo Wings",
"Philly Cheesesteak"
]
}
]
}'

Les opérateurs $add et $remove ne s’appliquent qu’aux champs de type tableau et ne sont pris en charge que par les endpoints PATCH.
Réponse
Trois codes de statut de réponse 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-too-large |
Les ID d’éléments ne peuvent pas contenir plus de 250 caractères. |
ids-not-strings |
Les ID d’éléments doivent être de type chaîne de caractères. |
ids-not-unique |
Les ID d’éléments doivent être uniques au sein de la requête. |
invalid-ids |
Les ID d’éléments peuvent uniquement inclure des lettres, des chiffres, des traits d’union et des 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 d’élément ne peuvent pas inclure . ou $. |
items-missing-ids |
Certains éléments n’ont pas d’ID. Vérifiez que chaque élément possède un ID d’élément. |
item-array-invalid |
items doit être un tableau d’objets. |
items-too-large |
Les valeurs d’éléments ne peuvent pas dépasser 5 000 caractères. |
request-includes-too-many-items |
Votre requête contient trop d’éléments. La limite d’éléments par requête est de 50. |
too-deep-nesting-in-value-object |
Les objets d’éléments ne peuvent pas avoir plus de 50 niveaux d’imbrication. |
unable-to-coerce-value |
Les types d’éléments ne peuvent pas être convertis. |