Produkte migrieren

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 ProductInput Ressource können Sie Ihre Produktdaten einfügen, aktualisieren und löschen. Mit der schreibgeschützten Product Ressource 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.name als auch für Product.name verwenden. 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 productstatuses wurde entfernt. Probleme bei der Produktvalidierung und Zielstatus sind jetzt direkt enthalten in der Product Ressource im Feld productStatus, was den Datenabruf vereinfacht.

  • Vorhersehbare Produktaktualisierungen: Mit der neuen productInputs.patch Methode 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 auf ProductInput Ressource angewendet, nicht auf die verarbeitete Product Ressource.

  • Datenquelle für eine übersichtlichere Datenverwaltung auswählen: Für alle productInputs Schreibvorgänge ist jetzt ein dataSource Abfrageparameter 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 name anstelle des Felds id identifiziert. Das Format ist accounts/{account}/products/{product}.

  • Keine benutzerdefinierten Batches: Die custombatch Methode 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.