Produkte migrieren

Die Merchant API bietet eine robustere und intuitivere Möglichkeit, Ihre Produktdaten zu verwalten. Die wichtigste Änderung ist die Aufteilung der Produktdaten in zwei separate Ressourcen: ProductInput zum Einreichen Ihrer Daten und Product zum Aufrufen der endgültigen, verarbeiteten Version mit Produktstatus und Problemen. Diese neue Struktur sorgt für mehr Vorhersehbarkeit und Transparenz.

In dieser Anleitung werden die wichtigsten Unterschiede erläutert, damit Sie Ihre Integration von der Content API for Shopping migrieren können. Eine ausführliche Anleitung zur Verwendung der neuen Funktionen finden Sie unter Produkte verwalten.

Wichtige Unterschiede

Im Folgenden finden Sie die wichtigsten Änderungen bei der Verwaltung von Produkten in der Merchant API im Vergleich zur Content API for Shopping:

  • Eigene Ressourcen für Eingabe- und verarbeitete Daten: In der Merchant API wird die Produktverwaltung in zwei Ressourcen aufgeteilt. Mit der Ressource ProductInput 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 unpadded base64url-Codierung (RFC 4648, Abschnitt 5) für die Felder ProductInput.name und 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 beispielsweise die Produktnamen codieren, wenn sie eines der folgenden Zeichen enthalten:

    % . + / : ~ , ( * ! ) & ? = @ # $
    
  • Status des integrierten Produkts: Der Dienst productstatuses wird entfernt. Probleme bei der Produktvalidierung und Zielstatus sind jetzt direkt in der Ressource Product im Feld productStatus enthalten, was den Datenabruf vereinfacht.

  • Vorhersehbare Produktupdates: Mit der neuen Methode productInputs.patch wird eine bestimmte Produkteingabe direkt geändert. Das ist eine deutliche Verbesserung gegenüber der Content API for Shopping, bei der Aktualisierungen unerwartet durch andere Feeduploads überschrieben werden konnten. In der Merchant API bleibt ein Update erhalten, bis die entsprechende Produkteingabe noch einmal aktualisiert oder gelöscht wird. Produktaktualisierungen werden auf die ProductInput-Ressource angewendet und 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. So wird explizit angegeben, welche Datenquelle Sie ändern. Das ist besonders nützlich, wenn Sie Daten aus mehreren Quellen beziehen.

  • Neue Ressourcen-IDs: Produkte werden jetzt durch eine RESTful-Ressource name anstelle des Felds id identifiziert. Das Format ist accounts/{account}/products/{product}.

  • Keine benutzerdefinierten Batches: Die Methode custombatch ist nicht mehr verfügbar. Sie können asynchrone Anfragen oder HTTP-Batches verwenden, um mehrere Anfragen in einem einzigen HTTP-Aufruf zu senden.

.

Richtlinien für Datenquellen während der Migration

Bevor Sie Ihre Datenquellen migrieren, empfehlen wir Ihnen dringend, eine Datenquellenstrategie auszuwählen.

Damit die Migration reibungslos verläuft und Probleme wie das Stehlen von Angeboten vermieden werden, empfehlen wir Ihnen, Folgendes zu beachten:

  • Datenbank mit alten Daten füllen: Anstatt dataSources.list vor jedem Produktvorgang aufzurufen, empfehlen wir dringend, Ihre lokale Datenbank einmalig mit alten Daten zu füllen. Fügen Sie jedem Produktdatensatz ein dataSource-Namensfeld hinzu, damit Sie die richtige Kennzeichnung direkt in Ihren Anfragen angeben können.

  • Datenquellen für jedes Label und jede Sprache zusammenführen und verwenden: Mit der Merchant API können Sie eine Datenquelle erstellen, ohne Label und Sprache anzugeben. So lassen sich Produkte mit jedem Datenquellenlabel und jeder Sprache einfügen. Verwenden Sie für jedes Label und jede Sprache eine einzelne Datenquelle.

  • Produkte schützen: Wenn Sie Datenquellenregeln verwenden, rufen Sie products.get auf, um die genaue dataSource für ein Produkt zu ermitteln, bevor Sie es aktualisieren oder löschen. So wird sichergestellt, dass Sie die gewünschte Quelle ändern, und ein versehentliches Stehlen von Angeboten wird verhindert.

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 in einem Batch zusammenfassen POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch Asynchrone Anfragen oder HTTP-Batches verwenden

IDs

Das Format für Produktkennzeichnungen wurde in der Merchant API in einen standardmäßigen REST-Ressourcennamen geändert.

Beschreibung der Kennung Content API for Shopping Merchant API
Produkt-ID Ein String, der aus Segmenten besteht, 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} contentLanguage~feedLabel~offerId ist.
Beispiel: accounts/12345/products/en~US~sku123.
Codierung: Base64url-Codierung ohne Auffüllung empfohlen und erforderlich bei Produkt-IDs, die von der Merchant API verwendete Zeichen oder URL-reservierte Zeichen enthalten.

Methoden

In dieser Tabelle finden Sie die Content API for Shopping-Methoden und ihre Entsprechungen in der Merchant API.

Methode der Content API for Shopping Merchant API-Methode Verfügbarkeit und Hinweise
products.get products.get Ruft das endgültige, verarbeitete Produkt ab.
products.list products.list Listet die endgültigen, verarbeiteten Produkte auf.
products.insert productInputs.insert Fügt eine Produkteingabe ein. Erfordert einen dataSource.
products.update productInputs.patch Das Verhalten ist deutlich anders. Es aktualisiert eine bestimmte Produkteingabe und ist dauerhaft.
products.delete productInputs.delete Löscht eine bestimmte Produkteingabe. Erfordert einen dataSource.
products.custombatch Nicht verfügbar Verwenden Sie asynchrone Anfragen oder HTTP-Batches.
productstatuses.get products.get Der Dienst productstatuses wird entfernt. Statusinformationen sind jetzt Teil der Product-Ressource.
productstatuses.list products.list Der Dienst productstatuses wird entfernt. Statusinformationen sind jetzt Teil der Product-Ressource.
productstatuses.custombatch Nicht verfügbar Verwenden Sie asynchrone Anfragen oder HTTP-Batches.

Detaillierte Feldänderungen

In dieser Tabelle werden wichtige Felder hervorgehoben, die in der Merchant API geändert, hinzugefügt oder entfernt wurden.

Content API for Shopping Merchant API Beschreibung
id name Die primäre Kennung für ein Produkt ist jetzt die REST-Ressource name. Base64url-Codierung ohne Auffüllung wird empfohlen und ist erforderlich, wenn Produktnamen Zeichen enthalten, die von der Merchant API oder URL-reservierte Zeichen verwendet werden.
Attribute für Produktdatenspezifikationen auf oberster Ebene (z.B. title, price, link) productAttributes Objekt Produktattribute wie title, price und link sind nicht mehr Felder der obersten Ebene. Sie sind jetzt sowohl in den Ressourcen Product als auch ProductInput im Objekt productAttributes gruppiert. So erhalten Sie eine übersichtlichere und besser organisierte Ressourcenstruktur.
targetCountry feedLabel Der Ressourcenname verwendet jetzt feedLabel anstelle von targetCountry, um der Merchant Center-Funktionalität zu entsprechen.
feedId dataSource (Abfrageparameter) Der Name dataSource ist jetzt ein erforderlicher Abfrageparameter für alle productInputs-Schreibmethoden (insert, update, delete).
channel Nicht verfügbar. Verwenden Sie legacy_local nur für lokal erhältliche Produkte. Das Feld „channel“ ist in der Merchant API nicht mehr vorhanden. Bei Produkten mit dem Channel 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 verhindert werden kann, dass Einfügungen in primäre Datenquellen in falscher Reihenfolge erfolgen.
Felder vom Typ string mit einem definierten Satz von Werten Felder vom Typ enum mit einem definierten Satz von Werten Felder in Produktattributen mit einem definierten Satz von Werten (z. B. excluded_destinations, availability) haben jetzt den Typ enum.