Katalogartikel ersetzen
/catalogs/{catalog_name}/items/{item_id}
Verwenden Sie diesen Endpunkt, um einen Artikel in Ihrem Katalog zu ersetzen.
Wenn die item_id nicht gefunden wird, erstellt dieser Endpunkt den Artikel in Ihrem Katalog. Dieser Endpunkt ist synchron.
Voraussetzungen
Um diesen Endpunkt zu verwenden, benötigen Sie einen API-Schlüssel mit der Berechtigung catalogs.replace_item.
Rate-Limit
Für diesen Endpunkt gilt ein gemeinsames Rate-Limit von 50 Anfragen pro Minute für alle synchronen Katalogeintrags-Endpunkte, wie in API-Rate-Limits dokumentiert.
Pfad-Parameter
| Parameter | Erforderlich | Datentyp | Beschreibung |
|---|---|---|---|
catalog_name |
Erforderlich | String | Name des Katalogs. |
item_id |
Erforderlich | String | Die ID des Katalogartikels. |
Anfrage-Parameter
| Parameter | Erforderlich | Datentyp | Beschreibung |
|---|---|---|---|
items |
Erforderlich | Array | Ein Array, das Artikel-Objekte enthält. Die Artikelobjekte sollten Felder enthalten, die im Katalog vorhanden sind, mit Ausnahme des Feldes id. Pro Anfrage ist nur ein Artikel-Objekt zulässig. |
Beispielanfrage
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
curl --location --request PUT '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": [
"Hamburger",
"Deluxe Cheeseburger"
],
"Open_Time": "2021-09-03T09:03:19.967+00:00"
}
]
}'

Das Feld Location verwendet den Datentyp geo, der ein Array im Format [longitude, latitude] erwartet.
Antwort
Es gibt drei Statuscode-Antworten für diesen Endpunkt: 200, 400 und 404.
Beispiel für eine erfolgreiche Antwort
Der Statuscode 200 könnte den folgenden Antwortkörper zurückgeben.
1
2
3
{
"message": "success"
}
Beispiel für eine Fehlerantwort
Der Statuscode 400 könnte den folgenden Antwortkörper zurückgeben. Unter Fehlerbehebung finden Sie weitere Informationen zu Fehlern, die bei Ihnen auftreten können.
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"
}
Fehlerbehebung
In der folgenden Tabelle finden Sie eine Liste möglicher zurückgegebener Fehler und die entsprechenden Schritte zur Fehlerbehebung.
| Fehler | Fehlerbehebung |
|---|---|
arbitrary-error |
Es ist ein unerwarteter Fehler aufgetreten. Bitte versuchen Sie es erneut oder kontaktieren Sie den Support. |
catalog-not-found |
Prüfen Sie, ob der Katalogname gültig ist. |
filtered-set-field-too-long |
Der Feldwert wird in einer gefilterten Menge verwendet, die die Zeichengrenze für einen Artikel überschreitet. |
id-in-body |
Entfernen Sie alle Artikel-IDs im Anfragekörper. |
ids-too-large |
Die Zeichenbegrenzung für jede Artikel-ID beträgt 250 Zeichen. |
invalid-ids |
Unterstützte Zeichen für Artikel-ID-Namen sind Buchstaben, Zahlen, Bindestriche und Unterstriche. |
invalid-fields |
Stellen Sie sicher, dass alle Felder, die Sie in der API-Anfrage senden, bereits im Katalog vorhanden sind. Dies hat nichts mit dem in der Fehlermeldung erwähnten ID-Feld zu tun. |
invalid-keys-in-value-object |
Artikel-Objektschlüssel können nicht . oder $ enthalten. |
item-already-exists |
Der Artikel ist bereits im Katalog vorhanden. |
item-array-invalid |
items muss ein Array von Objekten sein. |
items-too-large |
Das Zeichenlimit für jeden Artikel beträgt 5.000 Zeichen. |
request-includes-too-many-items |
Sie können pro Anfrage nur einen Katalogartikel erstellen. |
too-deep-nesting-in-value-object |
Artikel-Objekte können nicht mehr als 50 Verschachtelungsebenen haben. |
unable-to-coerce-value |
Artikel-Typen können nicht umgewandelt werden. |