Remplacer des éléments du catalogue
/catalogs/{catalog_name}/items
Utilisez cet endpoint pour remplacer plusieurs éléments dans 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 éléments de 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
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. Chaque objet doit avoir un ID. 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
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": [-73.988103, 40.779109],
"Preferences": {
"favorite_brand": "Nike",
"shirt_size": "L"
},
"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"
]
}
]
}'

Le champ Location utilise le type de données geo, qui attend un tableau au format [longitude, latitude].
Réponse
Trois codes de statut de réponse existent pour cet endpoint : 202, 400 et 404.

Le système peut également renvoyer une réponse 400 si votre entreprise a atteint sa limite de stockage de catalogue. La version gratuite des catalogues est plafonnée à 100 Mo. Pour plus d’informations sur les niveaux de stockage et comment effectuer une mise à niveau, consultez Limitations du stockage de données.
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 section 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 |
|---|---|
catalog-not-found |
Vérifiez que le nom du catalogue est valide. |
company-size-limit-already-reached |
La limite de stockage du catalogue est atteinte. Pour en savoir plus sur les niveaux de stockage, consultez Limitations du stockage de données. |
company-size-limit-surge |
La requête dépasse la capacité de stockage restante de votre entreprise pour les catalogues. Réessayez avec une mise à jour plus petite. Pour en savoir plus sur les niveaux de stockage, consultez Limitations du stockage de données. |
ids-not-string |
Confirmez que chaque ID d’élément est une chaîne de caractères. |
ids-not-unique |
Vérifiez que chaque ID d’élément est unique. |
ids-too-large |
La limite de caractères pour chaque ID d’élément est de 250 caractères. |
item-array-invalid |
items doit être un tableau d’objets. |
items-missing-ids |
Certains éléments n’ont pas d’ID. Confirmez que chaque élément possède un ID. |
items-too-large |
Les valeurs des éléments ne peuvent pas dépasser 5 000 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 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 $. |
too-deep-nesting-in-value-object |
Les objets d’éléments ne peuvent pas avoir plus de 50 niveaux d’imbrication. |
request-includes-too-many-items |
Votre requête contient trop d’éléments. La limite d’éléments par requête est de 50. |
unable-to-coerce-value |
Les types d’éléments ne peuvent pas être convertis. |