Modifier un élément du catalogue
/catalogs/{catalog_name}/items/{item_id}
Utilisez cet endpoint pour modifier un élément existant dans votre catalogue.
Conditions préalables
Pour utiliser cet endpoint, vous aurez besoin d’une clé API avec l’autorisation catalogs.update_item.
Limite de débit
Cet endpoint a une limite de débit partagée de 50 requêtes par minute entre tous les endpoints d’éléments de catalogue synchrones, 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. |
item_id |
Requis | Chaîne de caractères | L’ID de l’élément 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 les champs qui existent dans le catalogue, à l’exception du champ id. Un seul objet d’élément est autorisé 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
curl --location --request PATCH 'https://rest.iad-03.braze.com/catalogs/restaurants/items/restaurant1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
"items": [
{
"Name": "Restaurant",
"Loyalty_Program": false,
"Location": [-73.988103, 40.779109],
"Preferences": {
"favorite_brand": "Nike",
"shirt_size": "L"
},
"Top_Dishes": {
"$add": [
"Biscuits",
"Coleslaw"
],
"$remove": [
"French Fries"
]
},
"Open_Time": "2021-09-03T09:03:19.967+00:00"
}
]
}'

- Le champ
Locationutilise le type de donnéesgeo, qui attend un tableau au format[longitude, latitude]. - Les opérateurs
$addet$removene 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 : 200, 400 et 404.
Exemple de réponse réussie
Le code de statut 200 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 possibles et les étapes de résolution associées.
| Erreur | Résolution des problèmes |
|---|---|
arbitrary-error |
Une erreur arbitraire est survenue. Veuillez réessayer ou contacter l’assistance. |
catalog-not-found |
Vérifiez que le nom du catalogue est valide. |
filtered-set-field-too-long |
La valeur du champ est utilisée dans un ensemble filtré qui dépasse la limite de caractères pour un élément. |
id-in-body |
Un ID d’élément existe déjà dans le catalogue. |
ids-too-large |
La limite de caractères pour chaque ID d’élément est de 250 caractères. |
invalid-ids |
Les caractères pris en charge pour les noms d’ID d’éléments sont les lettres, les chiffres, les tirets et les traits de soulignement. |
invalid-fields |
Confirmez que les champs de la requête existent dans le catalogue. |
invalid-keys-in-value-object |
Les clés d’objet d’élément ne peuvent pas contenir . ou $. |
item-not-found |
Vérifiez que l’élément est dans le catalogue. |
item-array-invalid |
items doit être un tableau d’objets. |
items-too-large |
La limite de caractères pour chaque élément est de 5 000 caractères. |
request-includes-too-many-items |
Vous ne pouvez modifier qu’un seul élément de catalogue par requête. |
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. |