Ten przewodnik wyjaśnia, jak przeprowadzić migrację integracji z usług datafeeds i datafeedstatuses Content API for Shopping do interfejsu API Data sources w Merchant API. Nowy interfejs API podrzędny Ź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 interfejs Merchant API ma 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 najpierw utworzyć źródła danych, zanim będziesz w stanie przesł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żesz korzystać tylko z jednego, automatycznie utworzonego źródła danych „Content API”. Interfejs Merchant API umożliwia tworzenie wielu źródeł danych typu
APIi zarządzanie nimi.Źródła danych bez etykiety i języka. Interfejs Merchant API umożliwia tworzenie podstawowego źródła danych bez określania
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 miejscu docelowemu, które jest określone przez unikalną kombinację
feedLabelicontentLanguage. Pliki danych kierowane na wiele źródeł danych zostały wycofane z interfejsu 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. Nazwy zasobów możesz znaleźć za pomocą narzędzia
dataSources.listlub w interfejsie Merchant Center. Główne źródła danych Content API obsługują tylko określonefeedLabelicontentLanguage, z których pomocą zostały utworzone. Źródła danych Content API są wyświetlane w Merchant Center jako źródło „Content API”, nawet jeśli produkty są wstawiane za pomocą Merchant API. Możesz je łączyć z nowymi źródłami danych interfejsu Merchant API, które też są kierowane na konkretne 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 korzystasz z konfiguracji reguł źródła danych, która opiera się na konkretnych wartościachfeedLabelicontentLanguage. Musisz utworzyć osobne źródło danych dla każdej paryfeedLabelicontentLanguage, której używasz.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 dowolnym
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.
Stan przesyłania pliku Interfejs Merchant API przedstawia stan źródeł danych opartych na plikach za pomocą oddzielnego 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, lokalny asortyment i asortyment regionalny, zapewniając ujednolicony sposób zarządzania wszystkimi potokami danych.Automatyczne źródła danych Za pomocą interfejsu Merchant API możesz teraz włączać i wyłączać funkcję Automatyczne źródła danych na swoim koncie, korzystając z metody
autofeedSettings.updateAutofeedSettingsw podrzędnym interfejsie Accounts API. Więcej informacji znajdziesz w artykule Konfigurowanie ustawień automatycznego przesyłania danych.
Żądania
Tabela zawiera porównanie formatów adresów URL żądań w Content API for Shopping i Merchant API.
| Opis prośby | Content API for Shopping | Merchant API |
|---|---|---|
| Tworzenie ź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 |
| Aktualizowanie ź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. Użyj metod dataSources.list i fileUploads.get w przypadku każdego źródła danych opartego na plikach. |
Identyfikatory
Interfejs Merchant API używa jako identyfikatora nazwy zasobu w formie ciągu znaków.
| Opis identyfikatora | Content API for Shopping | Merchant API |
|---|---|---|
| Identyfikator źródła danych | datafeedId (numeryczny) |
name (ciąg znaków, format: accounts/{account}/dataSources/{datasource}) |
Metody
W tej tabeli porównujemy metody z usług Content API for Shopping datafeedsi datafeedstatuses z ich odpowiednikami w Merchant API.
| Metoda Content API for Shopping | Metoda interfejsu API sprzedawcy | Dostępność i uwagi |
|---|---|---|
datafeeds.custombatch |
Niedostępne | Zamiast tego używaj poszczególnych 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 plikowym. |
datafeeds.get |
dataSources.get |
Dostępne |
datafeeds.insert |
dataSources.create |
Dostępne |
datafeeds.list |
dataSources.list |
Dostępne |
datafeeds.update |
dataSources.update |
Dostępne Używa semantyki PATCH zamiast PUT. |
datafeedstatuses.custombatch |
Niedostępne | Zamiast tego używaj poszczególnych wywołań interfejsu API. Więcej informacji znajdziesz w artykule Wysyłanie wielu żądań jednocześnie. |
datafeedstatuses.get |
fileUploads.get |
Dostępne w przypadku źródeł danych opartych na plikach. Użyj aliasu latest, aby uzyskać stan ostatniego przesłania. 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 wymień wszystkie źródła danych za pomocą znaku dataSources.list. Następnie wywołaj funkcję fileUploads.get z aliasem latest dla każdego źródła danych korzystającego z pliku. |
Szczegółowe zmiany w polach
W tej tabeli znajdziesz zmiany na poziomie pól między zasobami Datafeed i DatafeedStatus w Content API for Shopping oraz 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 w formie ciągu znaków. |
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 on teraz zagnieżdżony w sekcji fileInput. |
fetchSchedule.paused |
fileInput.fetchSettings.enabled |
Logika jest odwrócona. Funkcja paused: true jest odpowiednikiem funkcji enabled: false. |
format |
Niedostępne | Pola fileEncoding, columnDelimiter i quotingMode zostaną usunięte. Są one teraz wykrywane automatycznie. |
targets |
primaryProductDataSource.feedLabel, primaryProductDataSource.contentLanguage, primaryProductDataSource.countries |
Usunięto powtarzane pole targets. Każde źródło danych ma teraz jeden cel zdefiniowany przez te pola, co odzwierciedla wycofanie plików danych z wieloma celami danych. |
DatafeedStatus |
FileUpload |
Stan przesłania pliku jest teraz osobnym zasobem tylko do odczytu. |
datafeedId |
name |
Identyfikator przesłanego pliku, który odwołuje się do nadrzędnego źródła danych. |
processingStatus |
processingState |
Stan przetwarzania przesłanego pliku. Wartości ciągu znaków (success, failure, in progress) są zastępowane przez wyliczenie (SUCCEEDED, FAILED, IN_PROGRESS). |
errors, warnings |
issues |
Błędy i ostrzeżenia są łączone 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 są już dostępne w zasobie stanu. Są one częścią zasobu DataSource. |
targets[].included_destinations, targets[].excluded_destinations |
primaryProductDataSource.destinations |
Dwie osobne listy uwzględnionych i wykluczonych miejsc docelowych zostaną zastąpione jedną listą destinations. Każdy element na nowej liście to obiekt, który określa miejsce docelowe i jego stan (ENABLED lub DISABLED), co zapewnia bardziej jednoznaczną konfigurację. |