Katalogartikel ersetzen
/catalogs/{catalog_name}/items
Verwenden Sie diesen Endpunkt, um mehrere Artikel in Ihrem Katalog zu ersetzen.
Wenn ein Katalogartikel nicht vorhanden ist, erstellt dieser Endpunkt den Artikel in Ihrem Katalog. Jede Anfrage kann bis zu 50 Katalogartikel unterstützen. Dieser Endpunkt ist asynchron.
Voraussetzungen
Um diesen Endpunkt zu verwenden, benötigen Sie einen API-Schlüssel mit der Berechtigung catalogs.replace_items.
Rate-Limit
Für diesen Endpunkt gilt ein gemeinsames Rate-Limit von 16.000 Anfragen pro Minute für alle asynchronen Katalogeintrags-Endpunkte, wie in API-Rate-Limits dokumentiert.
Pfad-Parameter
| Parameter | Erforderlich | Datentyp | Beschreibung |
|---|---|---|---|
catalog_name |
Erforderlich | String | Name des Katalogs. |
Anfrage-Parameter
| Parameter | Erforderlich | Datentyp | Beschreibung |
|---|---|---|---|
items |
Erforderlich | Array | Ein Array, das Artikelobjekte enthält. Jedes Objekt muss eine ID haben. Die Artikelobjekte sollten Felder enthalten, die im Katalog vorhanden sind. Pro Anfrage sind bis zu 50 Artikelobjekte zulässig. |
Beispielanfrage
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"
]
}
]
}'

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: 202, 400 und 404.

Das System kann auch eine 400-Antwort zurückgeben, wenn Ihr Unternehmen das Speicherlimit für Kataloge erreicht hat. Die kostenlose Version der Kataloge ist auf 100 MB begrenzt. Weitere Informationen zu Speicherstufen und zum Upgraden finden Sie unter Datenspeicherbeschränkungen.
Beispiel für eine erfolgreiche Antwort
Der Statuscode 202 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 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 mögliche zurückgegebene Fehler und die zugehörigen Schritte zur Fehlerbehebung.
| Fehler | Fehlerbehebung |
|---|---|
catalog-not-found |
Prüfen Sie, ob der Katalogname gültig ist. |
company-size-limit-already-reached |
Das Speicherlimit für Kataloge ist erreicht. Weitere Informationen zu Speicherstufen finden Sie unter Datenspeicherbeschränkungen. |
company-size-limit-surge |
Die Anfrage überschreitet den verbleibenden Katalogspeicher Ihres Unternehmens. Versuchen Sie es erneut mit einem kleineren Update. Weitere Informationen zu Speicherstufen finden Sie unter Datenspeicherbeschränkungen. |
ids-not-string |
Bestätigen Sie, dass jede Artikel-ID ein String ist. |
ids-not-unique |
Prüfen Sie, ob jede Artikel-ID eindeutig ist. |
ids-too-large |
Die Zeichenbegrenzung für jede Artikel-ID beträgt 250 Zeichen. |
item-array-invalid |
items muss ein Array von Objekten sein. |
items-missing-ids |
Einige Artikel haben keine Artikel-IDs. Bestätigen Sie, dass jeder Artikel eine ID hat. |
items-too-large |
Artikelwerte dürfen 5.000 Zeichen nicht überschreiten. |
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 bezieht sich nicht auf das in der Fehlermeldung erwähnte ID-Feld. |
invalid-keys-in-value-object |
Artikelobjekt-Schlüssel dürfen nicht . oder $ enthalten. |
too-deep-nesting-in-value-object |
Artikelobjekte dürfen nicht mehr als 50 Verschachtelungsebenen haben. |
request-includes-too-many-items |
Ihre Anfrage enthält zu viele Artikel. Das Limit pro Anfrage beträgt 50 Artikel. |
unable-to-coerce-value |
Artikeltypen können nicht konvertiert werden. |