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 Ansehen der endgültigen, verarbeiteten Version einschließlich Produktstatus und ‑problemen. Diese neue Struktur sorgt für eine vorhersehbarere und transparentere Nutzung.

In diesem Leitfaden 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 Produktverwaltung in der Merchant API im Vergleich zur Content API for Shopping:

  • Separate Ressourcen für Eingabe- und verarbeitete Daten: Die Merchant API teilt die Produktverwaltung in zwei Ressourcen auf. 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 deutliche 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, sodass explizit angegeben wird, welche Datenquelle Sie ändern. Das ist besonders nützlich, wenn Sie Daten aus mehreren Quellen beziehen.

  • Neue Ressourcen-IDs: Produkte werden jetzt durch einen RESTful Ressourcennamen 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.

Richtlinien für Datenquellen während der Migration

Bevor Sie Ihre Datenquellen migrieren, sollten Sie unbedingt eine Strategie für Datenquellen festlegen .

Damit die Migration reibungslos verläuft und Probleme wie Angebotsdiebstahl vermieden werden, empfehlen wir Ihnen Folgendes:

  • Datenbank auffüllen: Anstatt dataSources.list vor jedem Produktvorgang aufzurufen, empfehlen wir Ihnen dringend, Ihre lokale Datenbank einmalig aufzufüllen. Fügen Sie jedem Produktdatensatz ein Feld für den dataSource-Namen hinzu, damit Sie die richtige ID 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 können Sie Produkte mit jedem Datenquellenlabel und jeder Sprache einfügen. Verwenden Sie am besten eine einzelne Datenquelle für alle Labels und Sprachen.

  • Produkte schützen: Wenn Sie Regeln für Datenquellen verwenden, rufen Sie products.get auf, um die genaue dataSource zu ermitteln, die mit einem Produkt verknüpft ist, bevor Sie es aktualisieren oder löschen. So stellen Sie sicher, dass Sie die gewünschte Quelle ändern, und verhindern versehentlichen Angebotsdiebstahl.

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 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 empfohlen und erforderlich bei 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.patch Das Verhalten ist deutlich anders. Es aktualisiert eine bestimmte Produkteingabe und ist persistent.
products.delete productInputs.delete Löscht eine bestimmte Produkteingabe. Erfordert eine dataSource.
products.custombatch Nicht verfügbar Verwenden Sie asynchrone Anfragen oder HTTP-Batching.
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 Verwenden Sie asynchrone Anfragen oder HTTP-Batching.

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 empfohlen und erforderlich bei Produktnamen, die Zeichen enthalten, die von der Merchant API verwendet werden, oder URL-reservierte Zeichen.
Attribute für die Produktdatenspezifikation auf oberster Ebene (z.B. title, price, link) productAttributes-Objekt Produktattribute wie title, price und link sind keine Felder der obersten Ebene mehr. Sie sind jetzt sowohl in der Ressource Product als auch in der Ressource 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 ihn an die Merchant Center-Funktionalität anzupassen.
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 nur für lokal erhältliche Produkte. Das Feld channel ist in der Merchant API nicht mehr vorhanden. Bei Produkten 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 Menge von Werten Felder vom Typ enum mit definierter Menge von Werten Felder in Produktattributen mit definierter Menge von Werten (z. B. excluded_destinations, availability) sind jetzt vom Typ enum.