Interfejs Merchant API to bardziej niezawodny i intuicyjny sposób zarządzania danymi produktów. Główna zmiana polega na rozdzieleniu danych produktów na 2 osobne 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.
Ten przewodnik omawia najważniejsze różnice, które pomogą Ci przenieść integrację z Content API for Shopping. Szczegółowy przewodnik po korzystaniu 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:
Osobne zasoby dla danych wejściowych i przetworzonych: interfejs Merchant API dzieli zarządzanie produktami na 2 zasoby. Możesz użyć zasobu
ProductInputdo wstawiania, aktualizowania i usuwania danych o produktach. Możesz użyć zasobuProducttylko do odczytuProduct, aby wyświetlić produkt końcowy po przetworzeniu przez Google Twoich danych wejściowych, zastosowaniu reguł i połączeniu danych z dodatkowych źródeł.Stan zintegrowanej usługi: usługa
productstatuseszostanie usunięta. Problemy z weryfikacją produktów i stany miejsc docelowych są teraz bezpośrednio uwzględniane w zasobieProductw poluproductStatus, co upraszcza pobieranie danych.Przewidywalne aktualizacje produktów: nowa metoda
productInputs.patchbezpośrednio modyfikuje konkretne dane wejściowe produktu. Jest to znaczne ulepszenie w porównaniu z interfejsem Content API for Shopping, w którym aktualizacje mogły być nieoczekiwanie zastępowane przez inne przesłane pliki danych. W Merchant API aktualizacja pozostaje do momentu ponownego zaktualizowania lub usunięcia danego produktu. Aktualizacje produktów są stosowane do zasobuProductInputzamiast do zasobuProduct.Wybierz źródło danych, aby ułatwić zarządzanie danymi: wszystkie operacje zapisu wymagają teraz parametru zapytania
dataSource, co pozwala jednoznacznie określić, które źródło danych jest modyfikowane.productInputsJest to szczególnie przydatne, jeśli masz wiele źródeł danych.Nowe identyfikatory zasobów: produkty są teraz identyfikowane za pomocą zasobu RESTful
namezamiast polaid. Format toaccounts/{account}/products/{product}.Brak niestandardowych partii: metoda
custombatchnie jest już dostępna. Możesz używać asynchronicznych żądań lub grupowania żądań HTTP, aby wysyłać wiele żądań w jednym wywołaniu HTTP.Źródła danych dla dowolnej etykiety pliku danych i języka: interfejs Merchant API umożliwia tworzenie źródła danych bez określania etykiety pliku danych i języka, a tym samym pozwala na 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 produktów | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products | 
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products | 
| Wstaw produkt | 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 | 
| Zbiorcze przesyłanie wielu żądań | POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch | 
Żądania asynchroniczne, przetwarzanie wsadowe HTTP | 
Identyfikatory
Format identyfikatorów produktów w interfejsie Merchant API został zmieniony na standardową nazwę zasobu REST.
| Opis identyfikatora | Content API for Shopping | Merchant API | 
|---|---|---|
| Identyfikator produktu | Ciąg składający się z segmentów rozdzielonych 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 | 
Metody
W tej tabeli znajdziesz 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 | 
Zawiera listę gotowych, przetworzonych produktów. | 
products.insert | 
productInputs.insert | 
Wstawia dane wejściowe produktu. Wymaga subskrypcji dataSource. | 
products.update | 
productInputs.update | 
Zachowanie jest znacznie inne. Aktualizuje konkretne dane wejściowe produktu i jest trwałe. | 
products.delete | 
productInputs.delete | 
Usuwa konkretne dane wejściowe produktu. Wymaga subskrypcji dataSource. | 
products.custombatch | 
Niedostępne | Używaj żądań asynchronicznych lub przetwarzania wsadowego HTTP. | 
productstatuses.get | 
products.get | 
Usługa productstatuses zostanie usunięta. Informacje o stanie są teraz częścią zasobu Product. | 
productstatuses.list | 
products.list | 
Usługa productstatuses zostanie usunięta. Informacje o stanie są teraz częścią zasobu Product. | 
productstatuses.custombatch | 
Niedostępne | Użyj [asynchronous | 
requests](/merchant/api/samples/insert-product-input-async) lub przetwarzanie wsadowe HTTP. |
Szczegółowe zmiany w polach
W tej tabeli znajdziesz ważne pola, które zostały zmienione, dodane lub usunięte w interfejsie Merchant API.
| Content API for Shopping | Merchant API | Opis | 
|---|---|---|
id | 
name | 
Głównym identyfikatorem produktu jest teraz zasób REST name. | 
Atrybuty specyfikacji danych produktów najwyższego poziomu (np. title, price, link) | 
productAttributes obiekt | 
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 znaku 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. Używaj symbolu legacy_local tylko w przypadku produktów dostępnych lokalnie. | 
Pole channel nie jest już dostępne w interfejsie Merchant API. W przypadku produktów z kanałem LOCAL w Content API for Shopping należy ustawić pole legacy_local na wartość „true”. | 
| Niedostępne | versionNumber | 
Nowe pole opcjonalne w ProductInput, które może być używane, by nie dopuścić do błędnej kolejności wstawiania danych do podstawowych źródeł danych. | 
string pola typu z określonym zestawem wartości, | 
enum pola typu z określonym zestawem wartości, | 
Pola w atrybutach produktów z określonym zestawem wartości (np. excluded_destinations, availability) mają teraz typ enum. |