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 diesem Leitfaden werden die wichtigsten Unterschiede beschrieben, 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
Im Folgenden finden Sie die wichtigsten Änderungen bei der Verwaltung von Produkten in der Merchant API im Vergleich zur Content API for Shopping:
- Spezielle Ressourcen für Eingabe- und verarbeitete Daten: Mit der Merchant API wird die Produktverwaltung in zwei Ressourcen aufgeteilt. Mit der Ressource - ProductInputkö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.
- Status des integrierten Produkts: Der - productstatuses-Dienst wird entfernt. Probleme bei der Produktvalidierung und Zielstatus sind jetzt direkt in der- Product-Ressource im Feld- productStatusenthalten, was den Datenabruf vereinfacht.
- Vorhersehbare Produktupdates: Mit der neuen Methode - productInputs.patchwird 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 eine Aktualisierung erhalten, bis die entsprechende Produkteingabe noch einmal aktualisiert oder gelöscht wird. Produktaktualisierungen werden auf die Ressource- ProductInputangewendet und nicht auf die verarbeitete Ressource- Product.
- 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 - nameanstelle des Felds- ididentifiziert. Das Format dafür ist- accounts/{account}/products/{product}.
- Keine benutzerdefinierten Batches: Die Methode - custombatchist nicht mehr verfügbar. Sie können asynchrone Anfragen oder HTTP-Batching verwenden, um mehrere Anfragen in einem einzelnen 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 lassen sich Produkte mit beliebigen Feedlabels und Sprachen 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 in einem Batch zusammenfassen | POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch | Asynchrone Anfragen, HTTP-Batching | 
IDs
Das Format für Produkt-IDs 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 durch einen Doppelpunkt ( :) getrennten Segmenten besteht.Format: channel:contentLanguage:targetCountry:offerIdoderchannel:contentLanguage:feedLabel:offerId.Beispiel: online:en:US:sku123 | Ein REST-Ressourcenstring name.Format: accounts/{account}/products/{product}, wobei{product}contentLanguage~feedLabel~offerIdist.Beispiel: accounts/12345/products/en~US~sku123 | 
Methoden
In dieser Tabelle finden Sie die Content API for Shopping-Methoden und ihre Entsprechungen in der Merchant API.
| Content API for Shopping-Methode | 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 ein dataSource. | 
| products.update | productInputs.update | Das Verhalten ist deutlich anders. Damit wird eine bestimmte Produkteingabe aktualisiert. Die Änderung ist dauerhaft. | 
| products.delete | productInputs.delete | Löscht eine bestimmte Produkteingabe. Erfordert ein dataSource. | 
| products.custombatch | Nicht verfügbar | Verwenden Sie asynchrone Anfragen oder HTTP-Batching. | 
| productstatuses.get | products.get | Der Dienst productstatuseswird entfernt. Statusinformationen sind jetzt Teil derProduct-Ressource. | 
| productstatuses.list | products.list | Der Dienst productstatuseswird entfernt. Statusinformationen sind jetzt Teil derProduct-Ressource. | 
| productstatuses.custombatch | Nicht verfügbar | [asynchronous | 
requests](/merchant/api/samples/insert-product-input-async) oder HTTP-Batching. |
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. | 
| Attribute der Produktdatenspezifikation auf höchster Ebene (z.B. title,price,link) | productAttributesObjekt | Produktattribute wie title,priceundlinksind nicht mehr Felder der obersten Ebene. Sie sind jetzt sowohl in den RessourcenProductals auchProductInputim ObjektproductAttributesgruppiert. So erhalten Sie eine übersichtlichere und besser organisierte Ressourcenstruktur. | 
| targetCountry | feedLabel | Der Ressourcenname verwendet jetzt feedLabelanstelle vontargetCountry, um der Merchant Center-Funktionalität zu entsprechen. | 
| feedId | dataSource(Abfrageparameter) | Der Name dataSourceist jetzt ein erforderlicher Abfrageparameter für alleproductInputs-Schreibmethoden (insert,update,delete). | 
| channel | Nicht verfügbar. Verwenden Sie legacy_localnur für lokal erhältliche Produkte. | Das Feld „ channel“ ist in der Merchant API nicht mehr vorhanden. Bei Produkten mit dem KanalLOCALin der Content API for Shopping sollte stattdessen das Feldlegacy_localauf „true“ gesetzt werden. | 
| Nicht verfügbar | versionNumber | Ein neues optionales Feld für ProductInput, mit dem verhindert werden kann, dass Daten in primäre Datenquellen in falscher Reihenfolge eingefügt werden. | 
| string-Felder mit definiertem Satz von Werten | enum-Felder mit definiertem Satz von Werten | Felder in Produktattributen mit einem definierten Satz von Werten (z. B. excluded_destinations,availability) haben jetzt den Typenum. |