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 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 im Vergleich zur Content API for Shopping:

  • Separate Ressourcen für Eingabe- und verarbeitete Daten: Bei 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 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. Bei der Merchant API bleibt eine Aktualisierung so lange bestehen, bis die entsprechende Produkteingabe noch einmal aktualisiert oder gelöscht wird. Produktaktualisierungen werden auf ProductInput Ressource angewendet, nicht auf die verarbeitete Product Ressource.

  • Datenquelle auswählen für eine übersichtlichere Datenverwaltung: Für alle productInputs Schreibvorgänge ist jetzt ein dataSource Abfrageparameter erforderlich, sodass klar ist, 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 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, 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 Produkteintrag ein Feld für den dataSource-Namen hinzu, damit Sie die richtige ID direkt in Ihren Anfragen angeben können.

  • Datenquellen für alle Labels und Sprachen konsolidieren und verwenden: Mit der Merchant API können Sie eine Datenquelle erstellen, ohne Label und Sprache anzugeben. So können Sie Produkte mit beliebigen Datenquellenlabels und ‑sprachen einfügen. Sie sollten eine einzelne Datenquelle für alle Labels und Sprachen verwenden.

  • Produkte schützen: Wenn Sie Regeln für Datenquellen verwenden, rufen Sie products.get auf, um die genaue dataSource zu finden, 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 senden POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch Asynchrone Anfragen oder HTTP-Batches 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.patch 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 Verwenden Sie asynchrone Anfragen oder HTTP-Batches.
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-Batches.

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 die Produktdatenspezifikation auf oberster Ebene (z.B. title, price, link) productAttributes-Objekt Produktattribute wie title, price und link sind keine Felder mehr auf oberster Ebene. 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 ihn an die Merchant Center-Funktionen 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 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.