Z tego przewodnika dowiesz się, jak przeprowadzić migrację integracji z usług datafeeds i
datafeedstatuses w Content API for Shopping do subinterfejsu API Źródła danych
w Merchant API. Nowy subinterfejs API Źródła danych zapewnia bardziej bezpośrednią kontrolę nad potokami danych i upraszcza zarządzanie źródłami danych.
Więcej informacji o nowych funkcjach znajdziesz w przewodniku Zarządzanie źródłami danych.
Najważniejsze różnice
W porównaniu z Content API for Shopping Merchant API oferuje kilka zalet.
Jawne tworzenie źródła danych. Interfejs API nie tworzy już automatycznie źródła danych „Content API” przy pierwszym wstawieniu produktu. W Merchant API musisz jawnie utworzyć źródła danych, zanim będziesz mógł przesyłać do nich produkty. Dzięki temu od początku masz większą kontrolę nad organizacją i zarządzaniem potokami danych o produktach.
Obsługa wielu źródeł danych interfejsu API. W Content API for Shopping można było używać tylko jednego, automatycznie utworzonego źródła danych „Content API”. W Merchant API możesz tworzyć i zarządzać wieloma źródłami danych typu wejściowego
API.Źródła danych bez etykiety i języka. Merchant API umożliwia utworzenie podstawowego źródła danych bez określania wartości
feedLabelicontentLanguage. Ten typ źródła danych akceptuje produkty w dowolnej kombinacjifeedLabelicontentLanguage, co upraszcza przesyłanie produktów w przypadku integracji, które nie wymagają oddzielnych źródeł danych dla różnych regionów.Uproszczone cele danych. Każde źródło danych odpowiada teraz jednemu celowi, który jest określony przez unikalną kombinację
feedLabelicontentLanguage. Pliki danych kierowane na wiele źródeł danych są wycofywane w Merchant API.Wybierz strategię źródła danych. Masz 3 opcje zarządzania źródłami danych:
Zachowaj dotychczasowe źródła danych Content API. Możesz nadal używać źródeł danych utworzonych za pomocą Content API for Shopping, ponieważ są one zgodne z Merchant API. Ich nazwy zasobów znajdziesz za pomocą
dataSources.listlub w interfejsie Merchant Center. Podstawowe źródła danych Content API obsługują tylko określone wartościfeedLabelicontentLanguage, z którymi zostały utworzone. Źródła danych Content API są wyświetlane w Merchant Center ze źródłem „Content API”, nawet jeśli produkty są wstawiane za pomocą Merchant API. Możesz je łączyć z nowymi źródłami danych Merchant API, które też są kierowane na określone paryfeedLabelicontentLanguage.Utwórz nowe źródła danych Merchant API dla każdej etykiety i języka. Użyj tej opcji, jeśli musisz obsługiwać nowe kombinacje
feedLabelicontentLanguage(i wolisz zachować ścisłe rozdzielenie między nimi) lub jeśli używasz konfiguracji reguł źródła danych, która opiera się na konkretnych wartościachfeedLabelicontentLanguage. Musisz utworzyć osobne źródło danych dla każdej używanej paryfeedLabelicontentLanguage.Utwórz jedno źródło danych Merchant API dla dowolnej etykiety i języka. Użyj tej opcji, aby uprościć zarządzanie, korzystając z jednego źródła danych, które akceptuje produkty z dowolnymi wartościami
feedLabelicontentLanguage. Jeśli wybierzesz tę opcję, zalecamy przeniesienie wszystkich produktów do tego nowego źródła danych i usunięcie starych źródeł danych Content API po przeniesieniu produktów.
Dedykowany stan przesyłania pliku. Merchant API przedstawia stan źródeł danych opartych na plikach za pomocą osobnego zasobu
fileUploadstylko do odczytu. Aby pobrać stan przesyłania pliku, użyj metodyfileUploads.getz aliasemlatest.Nowe typy źródeł danych. Zasób
DataSourceobsługuje więcej branż, w tym promocje, asortyment produktów lokalnie dostępnych i asortyment regionalny, co zapewnia ujednolicony sposób zarządzania wszystkimi potokami danych.Automatyczne źródła danych. W Merchant API możesz teraz włączyć lub wyłączyć funkcję Automatyczne źródła danych na swoim koncie za pomocą metody
autofeedSettings.updateAutofeedSettingsw subinterfejsie API Konta. Więcej informacji znajdziesz w artykule Konfigurowanie ustawień automatycznego pliku danych.
Żądania
W tabeli poniżej porównujemy formaty adresów URL żądań w Content API for Shopping i Merchant API.
| Opis prośby | Content API for Shopping | Merchant API |
|---|---|---|
| Utworzenie źródła danych | POST https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds |
POST https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources |
| Pobieranie źródła danych | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} |
GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID} |
| Wyświetlanie listy źródeł danych | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds |
GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources |
| Zaktualizowanie źródła danych | PUT https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} |
PATCH https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID} |
| Usuwanie źródła danych | DELETE https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} |
DELETE https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID} |
| Pobieranie źródła danych | POST https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID}/fetchNow |
POST https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}:fetch |
| Pobieranie stanu źródła danych | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeedstatuses/{DATAFEED_ID} |
GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}/fileUploads/latest |
| Wyświetlanie listy stanów źródeł danych | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeedstatuses |
Niedostępne. W przypadku każdego źródła danych opartego na pliku użyj dataSources.list i fileUploads.get. |
Identyfikatory
Merchant API używa jako identyfikatora nazwy zasobu w postaci ciągu znaków.
| Opis identyfikatora | Content API for Shopping | Merchant API |
|---|---|---|
| Identyfikator źródła danych | datafeedId (liczbowy) |
name (ciąg znaków, format: accounts/{account}/dataSources/{datasource}) |
Metody
W tej tabeli porównujemy metody z usług w Content API for Shopping datafeeds
i datafeedstatuses z ich odpowiednikami w Merchant API.
| Metoda Content API for Shopping | Metoda Merchant API | Dostępność i uwagi |
|---|---|---|
datafeeds.custombatch |
Niedostępne | Zamiast tego używaj pojedynczych wywołań interfejsu API. |
datafeeds.delete |
dataSources.delete |
Dostępne |
datafeeds.fetchnow |
dataSources.fetch |
Dostępne Ta metoda działa teraz tylko w przypadku źródeł danych z wejściem pliku. |
datafeeds.get |
dataSources.get |
Dostępne |
datafeeds.insert |
dataSources.create |
Dostępne |
datafeeds.list |
dataSources.list |
Dostępne |
datafeeds.update |
dataSources.update |
Dostępne Zamiast semantyki PUT używa semantyki PATCH. |
datafeedstatuses.custombatch |
Niedostępne | Zamiast tego używaj pojedynczych wywołań interfejsu API. Więcej informacji znajdziesz w artykule Wysyłanie wielu żądań naraz. |
datafeedstatuses.get |
fileUploads.get |
Dostępne w przypadku źródeł danych opartych na plikach. Aby uzyskać stan najnowszego przesłania, użyj aliasu latest. W przypadku innych typów źródeł danych informacje o stanie są częścią zasobu DataSource. |
datafeedstatuses.list |
Niedostępne | Aby uzyskać stan wielu źródeł danych, najpierw wyświetl listę wszystkich źródeł danych za pomocą dataSources.list. Następnie wywołaj fileUploads.get z aliasem latest dla każdego źródła danych opartego na pliku. |
Szczegółowe zmiany pól
W tej tabeli przedstawiamy zmiany na poziomie pól między zasobami Datafeed i
DatafeedStatus w Content API for Shopping a zasobami DataSource
i FileUpload w Merchant API.
| Content API for Shopping | Merchant API | Opis |
|---|---|---|
Datafeed |
DataSource |
Główny zasób do konfigurowania źródła danych. |
id |
name |
Identyfikator zasobu. Zmieniono z identyfikatora liczbowego na nazwę zasobu tekstowego. |
name |
displayName |
Nazwa źródła danych widoczna dla użytkownika. |
attributeLanguage |
primaryProductDataSource.contentLanguage |
Dwuliterowy kod języka ISO 639-1 elementów w źródle danych. |
fileName |
fileInput.fileName |
Nazwa przesłanego pliku. To pole jest teraz zagnieżdżone w fileInput. |
fetchSchedule |
fileInput.fetchSettings |
Harmonogram pobierania źródła danych opartego na pliku. Jest teraz zagnieżdżony w fileInput. |
fetchSchedule.paused |
fileInput.fetchSettings.enabled |
Logika jest odwrócona. paused: true jest odpowiednikiem enabled: false. |
format |
Niedostępne | Pola fileEncoding, columnDelimiter i quotingMode zostały usunięte. Są teraz wykrywane automatycznie. |
targets |
primaryProductDataSource.feedLabel, primaryProductDataSource.contentLanguage, primaryProductDataSource.countries |
Powtarzające się pole targets zostało usunięte. Każde źródło danych ma teraz jeden cel określony przez te pola, co odzwierciedla wycofanie plików danych kierowanych na wiele źródeł danych. |
DatafeedStatus |
FileUpload |
Stan przesyłania pliku jest teraz osobnym zasobem tylko do odczytu. |
datafeedId |
name |
Identyfikator przesyłania pliku, który odwołuje się do jego nadrzędnego źródła danych. |
processingStatus |
processingState |
Stan przetwarzania przesłanego pliku. Wartości ciągu znaków (success, failure, in progress) zostały zastąpione wyliczeniem (SUCCEEDED, FAILED, IN_PROGRESS). |
errors, warnings |
issues |
Błędy i ostrzeżenia są scalane w jedną listę issues. Każdy problem ma pole severity (ERROR lub WARNING). |
lastUploadDate |
uploadTime |
Sygnatura czasowa ostatniego przesłania. Format został zmieniony z ciągu znaków na obiekt Timestamp. |
country, language, feedLabel |
Nie dotyczy | Te pola nie znajdują się już w zasobie stanu. Są częścią zasobu DataSource. |
targets[].included_destinations, targets[].excluded_destinations |
primaryProductDataSource.destinations |
2 oddzielne listy uwzględnionych i wykluczonych miejsc docelowych zostały zastąpione jedną listą destinations. Każdy element na nowej liście jest obiektem, który określa miejsce docelowe i jego stan (ENABLED lub DISABLED), co zapewnia bardziej jednoznaczną konfigurację. |