Sustituir elementos del catálogo
/catalogs/{catalog_name}/items
Utiliza este punto de conexión para sustituir varios elementos de tu catálogo.
Si un elemento del catálogo no existe, este punto de conexión creará el elemento en tu catálogo. Cada solicitud puede admitir hasta 50 elementos de catálogo. Este punto de conexión es asíncrono.
Requisitos previos
Para utilizar este punto de conexión, necesitarás una clave de API con el permiso catalogs.replace_items.
Límite de velocidad
Este punto de conexión tiene un límite de velocidad compartido de 16 000 solicitudes por minuto entre todos los puntos finales de elementos de catálogo asíncronos, como se documenta en Límites de velocidad de la API.
Parámetros de la ruta
| Parámetro | Obligatorio | Tipo de datos | Descripción |
|---|---|---|---|
catalog_name |
Obligatorio | Cadena | Nombre del catálogo. |
Parámetros de la solicitud
| Parámetro | Obligatorio | Tipo de datos | Descripción |
|---|---|---|---|
items |
Obligatorio | Matriz | Una matriz que contiene objetos de elementos. Cada objeto debe tener un ID. Los objetos de elementos deben contener campos que existan en el catálogo. Se permiten hasta 50 objetos de elementos por solicitud. |
Ejemplo de solicitud
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"
]
}
]
}'

El campo Location utiliza el tipo de datos geo, que espera una matriz con el formato [longitude, latitude].
Respuesta
Existen tres respuestas de código de estado para este punto de conexión: 202, 400 y 404.

El sistema también puede devolver una respuesta 400 si tu empresa ha alcanzado su límite de almacenamiento del catálogo. La versión gratuita de los catálogos tiene un límite de 100 MB. Para más información sobre los niveles de almacenamiento y cómo actualizar, consulta Limitaciones de almacenamiento de datos.
Ejemplo de respuesta correcta
El código de estado 202 podría devolver el siguiente cuerpo de respuesta.
1
2
3
{
"message": "success"
}
Ejemplo de respuesta de error
El código de estado 400 podría devolver el siguiente cuerpo de respuesta. Consulta Solución de problemas para obtener más información sobre los errores que puedes encontrar.
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"
}
Solución de problemas
La siguiente tabla enumera los posibles errores devueltos y sus pasos asociados para la solución de problemas.
| Error | Solución de problemas |
|---|---|
catalog-not-found |
Comprueba que el nombre del catálogo es válido. |
company-size-limit-already-reached |
Se ha alcanzado el límite de almacenamiento del catálogo. Para obtener más información sobre los niveles de almacenamiento, consulta Limitaciones de almacenamiento de datos. |
company-size-limit-surge |
La solicitud supera el almacenamiento restante del catálogo de tu empresa. Inténtalo de nuevo con una actualización más pequeña. Para obtener más información sobre los niveles de almacenamiento, consulta Limitaciones de almacenamiento de datos. |
ids-not-string |
Confirma que el ID de cada elemento es una cadena. |
ids-not-unique |
Comprueba que el ID de cada elemento es único. |
ids-too-large |
El límite de caracteres para cada ID de elemento es de 250 caracteres. |
item-array-invalid |
items debe ser una matriz de objetos. |
items-missing-ids |
Algunos elementos no tienen ID de elemento. Confirma que cada elemento tiene un ID. |
items-too-large |
Los valores de los elementos no pueden superar los 5000 caracteres. |
invalid-ids |
Los caracteres admitidos para los nombres de ID de elementos son letras, números, guiones y guiones bajos. |
invalid-fields |
Confirma que todos los campos que estás enviando en la solicitud de API ya existen en el catálogo. Esto no está relacionado con el campo ID mencionado en el error. |
invalid-keys-in-value-object |
Las claves de objeto de elemento no pueden incluir . ni $. |
too-deep-nesting-in-value-object |
Los objetos de elemento no pueden tener más de 50 niveles de anidamiento. |
request-includes-too-many-items |
Tu solicitud tiene demasiados elementos. El límite de elementos por solicitud es de 50. |
unable-to-coerce-value |
Los tipos de elemento no se pueden convertir. |