Editar elemento del catálogo
/catalogs/{catalog_name}/items/{item_id}
Usa este punto de conexión para editar un elemento existente en tu catálogo.
Requisitos previos
Para usar este punto de conexión, necesitarás una clave de API con el permiso catalogs.update_item.
Límite de velocidad
Este punto de conexión tiene un límite de velocidad compartido de 50 solicitudes por minuto entre todos los puntos finales de elementos de catálogo sí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. |
item_id |
Obligatorio | Cadena | El ID del elemento del catálogo. |
Parámetros de la solicitud
| Parámetro | Obligatorio | Tipo de datos | Descripción |
|---|---|---|---|
items |
Obligatorio | Matriz | Un array que contiene objetos de elemento. Los objetos de elemento deben contener campos que existan en el catálogo, excepto el campo id. Solo se permite un objeto de elemento 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
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": {
"Latitude": 33.6112,
"Longitude": -117.8711
},
"Top_Dishes": {
"$add": [
"Biscuits",
"Coleslaw"
],
"$remove": [
"French Fries"
]
},
"Open_Time": "2021-09-03T09:03:19.967+00:00"
}
]
}'

Los operadores $add y $remove solo son aplicables a campos de tipo array, y solo son compatibles con los puntos de conexión PATCH.
Respuesta
Existen tres respuestas de código de estado para este punto de conexión: 200, 400 y 404.
Ejemplo de respuesta correcta
El código de estado 200 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 la sección 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 |
|---|---|
arbitrary-error |
Se ha producido un error arbitrario. Inténtalo de nuevo o ponte en contacto con Soporte. |
catalog-not-found |
Comprueba que el nombre del catálogo es válido. |
filtered-set-field-too-long |
El valor del campo se está utilizando en un conjunto filtrado que supera el límite de caracteres de un elemento. |
id-in-body |
Ya existe un ID de elemento en el catálogo. |
ids-too-large |
El límite de caracteres para cada ID de elemento es de 250 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 los campos de la solicitud existen en el catálogo. |
invalid-keys-in-value-object |
Las claves de objeto de elemento no pueden incluir . ni $. |
item-not-found |
Comprueba que el elemento está en el catálogo. |
item-array-invalid |
items debe ser un array de objetos. |
items-too-large |
El límite de caracteres para cada elemento es de 5000 caracteres. |
request-includes-too-many-items |
Solo puedes editar un elemento del catálogo por solicitud. |
too-deep-nesting-in-value-object |
Los objetos de elemento no pueden tener más de 50 niveles de anidamiento. |
unable-to-coerce-value |
Los tipos de elemento no se pueden convertir. |