Mit der Merchant API können Sie Ihre Produktdaten robuster und intuitiver verwalten. Die wichtigste Änderung ist die Aufteilung der Produktdaten in zwei separate
Ressourcen: ProductInput zum Einreichen Ihrer Daten und Product zum Anzeigen der
endgültigen, verarbeiteten Version einschließlich Produktstatus und ‑problemen. Diese neue Struktur sorgt für eine vorhersehbarere und transparentere Nutzung.
In dieser Anleitung werden die wichtigsten Unterschiede erläutert, damit Sie Ihre Integration von der Content API for Shopping migrieren können. Eine detaillierte Anleitung zur Verwendung der neuen Funktionen finden Sie unter Produkte verwalten.
Wichtige Unterschiede
Hier sind die wichtigsten Änderungen bei der Verwaltung von Produkten in der Merchant API im Vergleich zur Content API for Shopping:
Separate Ressourcen für Eingabe- und verarbeitete Daten: In der Merchant API wird die Produktverwaltung in zwei Ressourcen aufgeteilt. Mit der
ProductInputRessource können Sie Ihre Produktdaten einfügen, aktualisieren und löschen. Mit der schreibgeschütztenProductRessource können Sie das endgültige Produkt ansehen, nachdem Google Ihre Eingaben verarbeitet, Regeln angewendet und Daten aus zusätzlichen Quellen kombiniert hat.Codierung für Produktnamen: Sie können die nicht aufgefüllte base64url-Codierung (RFC 4648, Abschnitt 5) sowohl für die Felder
ProductInput.nameals auch fürProduct.nameverwenden. Wenn die Produktnamen Zeichen enthalten, die von der Merchant API verwendet werden, oder URL-reservierte Zeichen, ist die Codierung erforderlich. Sie müssen die Produktnamen beispielsweise codieren, wenn sie eines der folgenden Zeichen enthalten:% . + / : ~ , ( * ! ) & ? = @ # $Integrierter Produktstatus: Der Dienst
productstatuseswurde entfernt. Probleme bei der Produktvalidierung und Zielstatus sind jetzt direkt enthalten in derProductRessource im FeldproductStatus, was den Datenabruf vereinfacht.Vorhersehbare Produktaktualisierungen: Mit der neuen
productInputs.patchMethode wird eine bestimmte Produkteingabe direkt geändert. Das ist eine erhebliche Verbesserung gegenüber der Content API for Shopping, bei der Aktualisierungen unerwartet durch andere Feed-Uploads überschrieben werden konnten. In der Merchant API bleibt eine Aktualisierung erhalten, bis die entsprechende Produkteingabe noch einmal aktualisiert oder gelöscht wird. Produktaktualisierungen werden aufProductInputRessource angewendet, nicht auf die verarbeiteteProductRessource.Datenquelle für eine übersichtlichere Datenverwaltung auswählen: Für alle
productInputsSchreibvorgänge ist jetzt eindataSourceAbfrageparameter erforderlich, der angibt, welche Datenquelle Sie ändern. Das ist besonders nützlich, wenn Sie Daten aus mehreren Quellen beziehen.Neue Ressourcen-IDs: Produkte werden jetzt anhand eines RESTful Ressourcennamens
nameanstelle des Feldsididentifiziert. Das Format istaccounts/{account}/products/{product}.Keine benutzerdefinierten Batches: Die
custombatchMethode ist nicht mehr verfügbar. Sie können asynchrone Anfragen oder HTTP Batching verwenden, um mehrere Anfragen in einem einzigen HTTP-Aufruf zu senden.
- Datenquellen für jedes Feedlabel und jede Sprache: Mit der Merchant API können Sie Datenquellen erstellen, ohne Feedlabel und Sprache anzugeben. So können Sie Produkte mit jedem Feedlabel und jeder Sprache einfügen.
Anfragen
In diesem Abschnitt werden die Anfrageformate für die Content API for Shopping und die Merchant API verglichen.
| Beschreibung der Anfrage | Content API for Shopping | Merchant API |
|---|---|---|
| Produkt kaufen | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} |
| Produkte auflisten | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products |
| Produkt einfügen | POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products |
POST https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs:insert |
| Produkt aktualisieren | PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
PATCH https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} |
| Produkt löschen | DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
DELETE https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} |
| Produktstatus abrufen | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses/{productId} |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} |
| Produktstatus auflisten | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products |
| Mehrere Anfragen im Batch ausführen | POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch |
Asynchrone Anfragen oder HTTP-Batching verwenden |
IDs
Das Format für Produkt-IDs wurde in der Merchant API in einen standardmäßigen REST-Ressourcennamen geändert.
| Beschreibung der ID | Content API for Shopping | Merchant API |
|---|---|---|
| Produkt-ID | Ein String aus Segmenten, die durch einen Doppelpunkt (:) getrennt sind.Format: channel:contentLanguage:targetCountry:offerId oder channel:contentLanguage:feedLabel:offerId.Beispiel: online:en:US:sku123 |
Ein REST-Ressourcenstring name.Format: accounts/{account}/products/{product}, wobei {product} für contentLanguage~feedLabel~offerId steht.Beispiel: accounts/12345/products/en~US~sku123.Codierung: Nicht aufgefüllte base64url-Codierung wird empfohlen und ist erforderlich für Produkt-IDs, die Zeichen enthalten, die von der Merchant API verwendet werden, oder URL-reservierte Zeichen. |
Methoden
In dieser Tabelle sind die Methoden der Content API for Shopping und ihre Entsprechungen in der Merchant API aufgeführt.
| Methode der Content API for Shopping | Methode der Merchant API | Verfügbarkeit und Hinweise |
|---|---|---|
products.get |
products.get |
Ruft das endgültige, verarbeitete Produkt ab. |
products.list |
products.list |
Listet endgültige, verarbeitete Produkte auf. |
products.insert |
productInputs.insert |
Fügt eine Produkteingabe ein. Erfordert eine dataSource. |
products.update |
productInputs.update |
Das Verhalten ist deutlich anders. Es aktualisiert eine bestimmte Produkteingabe und ist dauerhaft. |
products.delete |
productInputs.delete |
Löscht eine bestimmte Produkteingabe. Erfordert eine dataSource. |
products.custombatch |
Nicht verfügbar | Asynchrone Anfragen oder HTTP-Batching verwenden. |
productstatuses.get |
products.get |
Der Dienst productstatuses wurde entfernt. Statusinformationen sind jetzt Teil der Ressource Product. |
productstatuses.list |
products.list |
Der Dienst productstatuses wurde entfernt. Statusinformationen sind jetzt Teil der Ressource Product. |
productstatuses.custombatch |
Nicht verfügbar | Asynchrone Anfragen oder HTTP-Batching verwenden. |
Detaillierte Feldänderungen
In dieser Tabelle sind wichtige Felder aufgeführt, die in der Merchant API geändert, hinzugefügt oder entfernt wurden.
| Content API for Shopping | Merchant API | Beschreibung |
|---|---|---|
id |
name |
Die primäre ID für ein Produkt ist jetzt der REST-Ressourcenname name. Nicht aufgefüllte base64url-Codierung wird empfohlen und ist erforderlich für Produktnamen, die Zeichen enthalten, die von der Merchant API verwendet werden, oder URL-reservierte Zeichen. |
Attribute für Produktdaten auf oberster Ebene (z.B. title, price, link) |
productAttributes-Objekt |
Produktattribute wie title, price und link sind keine Felder auf oberster Ebene mehr. Sie sind jetzt in den Ressourcen Product und ProductInput im Objekt productAttributes gruppiert. Das sorgt für eine übersichtlichere und besser organisierte Ressourcenstruktur. |
targetCountry |
feedLabel |
Im Ressourcennamen wird jetzt feedLabel anstelle von targetCountry verwendet, um die Merchant Center-Funktionalität zu berücksichtigen. |
feedId |
dataSource (Abfrageparameter) |
Ein dataSource-Name ist jetzt ein erforderlicher Abfrageparameter für alle Schreibmethoden für productInputs (insert, update, delete). |
channel |
Nicht verfügbar. Verwenden Sie legacy_local für Produkte, die nur lokal verfügbar sind. |
Das Feld channel ist in der Merchant API nicht mehr vorhanden. Für Produkte mit dem Kanal LOCAL in der Content API for Shopping sollte stattdessen das Feld legacy_local auf „true“ gesetzt werden. |
| Nicht verfügbar | versionNumber |
Ein neues optionales Feld für ProductInput, mit dem Sie verhindern können, dass Einfügungen in primäre Datenquellen in der falschen Reihenfolge erfolgen. |
Felder vom Typ string mit definierter Wertemenge |
Felder vom Typ enum mit definierter Wertemenge |
Felder in Produktattributen mit definierter Wertemenge (z. B. excluded_destinations, availability) sind jetzt vom Typ enum. |