Interfejs Merchant API wprowadza bardziej niezawodny i intuicyjny sposób zarządzania danymi produktów. Główna zmiana polega na rozdzieleniu danych produktów na 2 odrębne
zasoby: ProductInput do przesyłania danych i Product do wyświetlania
ostatecznej, przetworzonej wersji, w tym stanu produktu i problemów. Ta nowa struktura zapewnia bardziej przewidywalne i przejrzyste działanie.
Z tego przewodnika dowiesz się o najważniejszych różnicach, które pomogą Ci przeprowadzić migrację integracji z Content API for Shopping. Szczegółowy przewodnik dotyczący korzystania z nowych funkcji znajdziesz w artykule Zarządzanie produktami.
Najważniejsze różnice
Oto najważniejsze zmiany w sposobie zarządzania produktami w Merchant API w porównaniu z Content API for Shopping:
Dedykowane zasoby do wprowadzania i przetwarzania danych: Merchant API dzieli zarządzanie produktami na 2 zasoby. Za pomocą zasobu
ProductInputmożesz wstawiać, aktualizować i usuwać dane produktów. Za pomocą zasobu tylko do odczytuProductmożesz wyświetlać ostateczny produkt po przetworzeniu przez Google Twoich danych wejściowych, zastosowaniu reguł i połączeniu danych z dodatkowych źródeł.Kodowanie nazw produktów: w przypadku pól
ProductInput.nameiProduct.namemożesz używać kodowania base64url bez dopełnienia (RFC 4648 sekcja 5). Jeśli nazwy produktów zawierają znaki używane przez Merchant API lub znaki zarezerwowane w adresach URL, kodowanie jest obowiązkowe. Nazwy produktów musisz na przykład zakodować, jeśli zawierają one którykolwiek z tych znaków:% . + / : ~ , ( * ! ) & ? = @ # $Zintegrowany stan produktu: usługa
productstatuseszostała usunięta. Problemy z weryfikacją produktów i stany miejsc docelowych są teraz bezpośrednio uwzględniane wProductzasobie w poluproductStatus, co upraszcza pobieranie danych.Przewidywalne aktualizacje produktów: nowa
productInputs.patchmetoda bezpośrednio modyfikuje konkretne dane wejściowe produktu. Jest to znaczące ulepszenie w porównaniu z Content API for Shopping, gdzie aktualizacje mogły zostać nieoczekiwanie zastąpione przez inne przesłane pliki danych. W Merchant API aktualizacja pozostaje do momentu ponownej aktualizacji lub usunięcia konkretnych danych wejściowych produktu. Aktualizacje produktów są stosowane doProductInputzasobu, a nie do przetworzonegoProductzasobu.Wybierz źródło danych, aby ułatwić zarządzanie danymi: wszystkie
productInputsoperacje zapisu wymagają teraz parametru zapytaniadataSource, co pozwala wyraźnie określić, które źródło danych modyfikujesz. Jest to szczególnie przydatne, jeśli masz wiele źródeł danych.Nowe identyfikatory zasobów: produkty są teraz identyfikowane za pomocą zasobu RESTful
name, a nie polaid. Format toaccounts/{account}/products/{product}.Brak niestandardowych partii: metoda
custombatchnie jest już dostępna. Aby wysłać wiele żądań w jednym wywołaniu HTTP, możesz użyć asynchronicznych żądań lub grupowania HTTP.
- Źródła danych dla dowolnej etykiety pliku danych i języka: Merchant API umożliwia tworzenie źródła danych bez określania etykiety pliku danych i języka a tym samym wstawianie produktu z dowolną etykietą pliku danych i językiem.
Żądania
W tej sekcji porównujemy formaty żądań w Content API for Shopping i Merchant API.
| Opis prośby | Content API for Shopping | Merchant API |
|---|---|---|
| Pobieranie produktu | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} |
| Wyświetlanie listy produktów | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products |
| Wstawianie produktu | POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products |
POST https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs:insert |
| Aktualizowanie produktu | PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
PATCH https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} |
| Usuwanie produktu | DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
DELETE https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} |
| Pobieranie stanu produktu | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses/{productId} |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} |
| Wyświetlanie listy stanów produktów | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products |
| Grupowanie wielu żądań | POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch |
Użyj żądań asynchronicznych lub grupowania HTTP. |
Identyfikatory
Format identyfikatorów produktów w Merchant API został zmieniony na standardową nazwę zasobu REST.
| Opis identyfikatora | Content API for Shopping | Merchant API |
|---|---|---|
| Identyfikator produktu | Ciąg znaków składający się z segmentów oddzielonych dwukropkiem (:).Format: channel:contentLanguage:targetCountry:offerId lub channel:contentLanguage:feedLabel:offerId.Przykład: online:en:US:sku123 |
Ciąg znaków zasobu REST name.Format: accounts/{account}/products/{product} gdzie {product} to contentLanguage~feedLabel~offerId.Przykład: accounts/12345/products/en~US~sku123.Kodowanie: kodowanie base64url bez dopełnienia jest zalecane i obowiązkowe w przypadku identyfikatorów produktów zawierających znaki używane przez Merchant API lub znaki zarezerwowane w adresach URL. |
Metody
Ta tabela zawiera metody Content API for Shopping i ich odpowiedniki w Merchant API.
| Metoda Content API for Shopping | Metoda Merchant API | Dostępność i uwagi |
|---|---|---|
products.get |
products.get |
Pobiera ostateczny, przetworzony produkt. |
products.list |
products.list |
Wyświetla listę ostatecznych, przetworzonych produktów. |
products.insert |
productInputs.insert |
Wstawia dane wejściowe produktu. Wymaga parametru dataSource. |
products.update |
productInputs.patch |
Działanie jest znacznie inne. Aktualizuje konkretne dane wejściowe produktu i jest trwałe. |
products.delete |
productInputs.delete |
Usuwa konkretne dane wejściowe produktu. Wymaga parametru dataSource. |
products.custombatch |
Niedostępne | Użyj żądań asynchronicznych lub grupowania HTTP. |
productstatuses.get |
products.get |
Usługa productstatuses została usunięta. Informacje o stanie są teraz częścią zasobu Product. |
productstatuses.list |
products.list |
Usługa productstatuses została usunięta. Informacje o stanie są teraz częścią zasobu Product. |
productstatuses.custombatch |
Niedostępne | Użyj żądań asynchronicznych lub grupowania HTTP. |
Szczegółowe zmiany pól
Ta tabela zawiera najważniejsze pola, które zostały zmienione, dodane lub usunięte w Merchant API.
| Content API for Shopping | Merchant API | Opis |
|---|---|---|
id |
name |
Głównym identyfikatorem produktu jest teraz nazwa zasobu REST name. Kodowanie base64url bez dopełnienia jest zalecane i obowiązkowe w przypadku nazw produktów zawierających znaki używane przez Merchant API lub znaki zarezerwowane w adresach URL. |
Atrybuty specyfikacji danych produktów najwyższego poziomu (np. title, price, link) |
Obiekt productAttributes |
Atrybuty produktów, takie jak title, price i link, nie są już polami najwyższego poziomu. Są one teraz zgrupowane w obiekcie productAttributes w zasobach Product i ProductInput. Zapewnia to bardziej przejrzystą i uporządkowaną strukturę zasobów. |
targetCountry |
feedLabel |
Nazwa zasobu używa teraz parametru feedLabel zamiast targetCountry, aby była zgodna z funkcjami Merchant Center. |
feedId |
dataSource (parametr zapytania) |
Nazwa dataSource jest teraz wymaganym parametrem zapytania we wszystkich metodach zapisu productInputs (insert, update, delete). |
channel |
Niedostępne. W przypadku produktów dostępnych tylko lokalnie użyj parametru legacy_local. |
Pole channel nie jest już dostępne w Merchant API. W przypadku produktów z kanałem LOCAL w Content API for Shopping należy ustawić wartość true w polu legacy_local. |
| Niedostępne | versionNumber |
Nowe opcjonalne pole w ProductInput, które można wykorzystać do zapobiegania wstawianiu danych w nieprawidłowej kolejności do głównych źródeł danych. |
Pola typu string z określonym zestawem wartości |
Pola typu enum z określonym zestawem wartości |
Pola w atrybutach produktów z określonym zestawem wartości (np. excluded_destinations, availability) są teraz typu enum. |