This guide explains how to migrate your integration from the datafeeds and datafeedstatuses services of the Content API for Shopping to the Data sources sub-API in Merchant API. The new Data sources sub-API provides more direct control over your data pipelines and simplifies data sources management.
برای اطلاعات بیشتر در مورد ویژگیهای جدید، به راهنمای مدیریت منابع داده خود مراجعه کنید.
تفاوتهای کلیدی
در مقایسه با API محتوا برای خرید، API فروشنده مزایای متعددی ارائه میدهد.
Explicit data source creation. The API no longer automatically creates a "Content API" data source on your first product insertion. In Merchant API, you explicitly create data sources before you can upload products to them. This gives you more control over the organization and management of your product data pipelines from the start.
Support for multiple API data sources. In the Content API for Shopping, you were limited to a single, automatically created "Content API" data source. With Merchant API you can create and manage multiple data sources of the
APIinput type.Data sources without label and language. The Merchant API lets you create a primary data source without specifying a
feedLabelandcontentLanguage. This type of data source accepts products in any combination offeedLabelandcontentLanguage, which simplifies product uploads for integrations that don't require separate data sources for different regions.Simplified data targets. Each data source now corresponds to a single target, defined by a unique combination of
feedLabelandcontentLanguage. Multi-data target feeds are deprecated in Merchant API.استراتژی منبع داده خود را انتخاب کنید. شما سه گزینه برای مدیریت منابع داده خود دارید:
منابع داده موجود API محتوا را حفظ کنید. میتوانید به استفاده از منابع داده ایجاد شده با API محتوا برای خرید ادامه دهید، زیرا آنها با API فروشنده سازگار هستند. میتوانید نام منابع آنها را با استفاده
dataSources.listیا در رابط کاربری مرکز فروشنده پیدا کنید. منابع داده اولیه API محتوا فقط ازfeedLabelوcontentLanguageخاصی که با آنها ایجاد شدهاند پشتیبانی میکنند. منابع داده API محتوا در مرکز فروشنده با منبع "Content API" نشان داده میشوند، حتی اگر محصولات با استفاده از API فروشنده درج شده باشند. میتوانید آنها را با منابع داده API فروشنده جدید که جفتهایfeedLabelوcontentLanguageخاصی را نیز هدف قرار میدهند، ترکیب کنید.برای هر برچسب و زبان، منابع داده جدید Merchant API ایجاد کنید. اگر نیاز به پشتیبانی از ترکیبهای جدید
feedLabelوcontentLanguageدارید (و ترجیح میدهید جدایی دقیقی بین آنها حفظ شود) یا اگر از تنظیمات قوانین منبع داده استفاده میکنید که بهfeedLabelوcontentLanguageخاصی متکی است، از این گزینه استفاده کنید. شما باید برای هر جفتfeedLabelوcontentLanguageکه استفاده میکنید، یک منبع داده جداگانه ایجاد کنید.Create a single Merchant API data source for any label and language. Use this option to simplify your management by having a single data source that accepts products with any
feedLabelandcontentLanguage. If you choose this option, we recommend migrating all your products to this new data source and removing your old Content API data sources once products are migrated.
Dedicated file upload status. Merchant API represents the status of file-based data sources using a separate, read-only
fileUploadsresource. To retrieve the status of a file upload, use thefileUploads.getmethod with thelatestalias.New data source types. The
DataSourceresource supports more verticals, including promotions, local inventory, and regional inventory, providing a unified way to manage all your data pipelines.Automated data sources. With Merchant API, you can now enable or disable the Automated data sources feature for your account using the
autofeedSettings.updateAutofeedSettingsmethod in the Accounts sub-API. For more information, see Configure Autofeed settings .
درخواستها
جدول زیر فرمتهای URL درخواست را بین Content API برای خرید و Merchant API مقایسه میکند.
| درخواست توضیحات | API محتوا برای خرید | رابط برنامهنویسی کاربردی (API) فروشنده |
|---|---|---|
| ایجاد منبع داده | POST https://shoppingcontent.googleapis.com/content/v2.1/ {MERCHANT_ID} /datafeeds | POST https://merchantapi.googleapis.com/v1/accounts/ {ACCOUNT_ID} /dataSources |
| دریافت منبع داده | 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} |
| فهرست منابع داده | GET https://shoppingcontent.googleapis.com/content/v2.1/ {MERCHANT_ID} /datafeeds | GET https://merchantapi.googleapis.com/v1/accounts/ {ACCOUNT_ID} /dataSources |
| بهروزرسانی یک منبع داده | 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} |
| حذف یک منبع داده | 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} |
| واکشی یک منبع داده | 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 |
| دریافت وضعیت منبع داده | 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 |
| فهرست کردن وضعیت منابع داده | GET https://shoppingcontent.googleapis.com/content/v2.1/ {MERCHANT_ID} /datafeedstatuses | در دسترس نیست. برای هر منبع داده مبتنی بر فایل، dataSources.list و fileUploads.get استفاده کنید. |
شناسهها
رابط برنامهنویسی کاربردی فروشنده (Merchant API) از یک نام منبع مبتنی بر رشته به عنوان شناسه استفاده میکند.
| توضیحات شناسه | API محتوا برای خرید | رابط برنامهنویسی کاربردی (API) فروشنده |
|---|---|---|
| شناسه منبع داده | datafeedId (عددی) | name (رشته، قالب: accounts/{account}/dataSources/{datasource} ) |
روشها
این جدول متدهای موجود در Content API برای سرویسهای Shopping datafeeds و datafeedstatuses را با معادلهای آنها در Merchant API مقایسه میکند.
| API محتوا برای روش خرید | روش API فروشنده | در دسترس بودن و نکات |
|---|---|---|
datafeeds.custombatch | موجود نیست | به جای آن از فراخوانیهای API تکی استفاده کنید. |
datafeeds.delete | dataSources.delete | موجود است. |
datafeeds.fetchnow | dataSources.fetch | موجود است. این روش اکنون فقط برای منابع داده با ورودی فایل کار میکند. |
datafeeds.get | dataSources.get | موجود است. |
datafeeds.insert | dataSources.create | موجود است. |
datafeeds.list | dataSources.list | موجود است. |
datafeeds.update | dataSources.update | موجود است. به جای PUT از معانی PATCH استفاده میکند. |
datafeedstatuses.custombatch | موجود نیست | در عوض از فراخوانیهای API به صورت جداگانه استفاده کنید. برای جزئیات بیشتر به ارسال چندین درخواست به طور همزمان مراجعه کنید. |
datafeedstatuses.get | fileUploads.get | برای منابع داده مبتنی بر فایل موجود است. از latest نام مستعار برای دریافت وضعیت جدیدترین آپلود استفاده کنید. برای سایر انواع منبع داده، اطلاعات وضعیت بخشی از منبع DataSource است. |
datafeedstatuses.list | موجود نیست | برای دریافت وضعیت چندین منبع داده، ابتدا تمام منابع داده را با dataSources.list فهرست کنید. سپس fileUploads.get را با latest نام مستعار برای هر منبع داده مبتنی بر فایل فراخوانی کنید. |
تغییرات جزئی فیلدها
این جدول تغییرات سطح فیلد بین منابع Datafeed و DatafeedStatus در Content API برای خرید و منابع DataSource و FileUpload در Merchant API را نشان میدهد.
| API محتوا برای خرید | رابط برنامهنویسی کاربردی (API) فروشنده | توضیحات |
|---|---|---|
Datafeed | DataSource | منبع اصلی برای پیکربندی منبع داده. |
id | name | شناسه منبع. از یک شناسه عددی به یک نام منبع رشتهای تغییر یافته است. |
name | displayName | نام منبع داده که کاربر با آن مواجه میشود. |
attributeLanguage | primaryProductDataSource.contentLanguage | کد زبان دو حرفی ISO 639-1 مربوط به اقلام موجود در منبع داده. |
fileName | fileInput.fileName | نام فایل آپلود شده. این فیلد اکنون در زیر fileInput قرار دارد. |
fetchSchedule | fileInput.fetchSettings | زمانبندی برای واکشی یک منبع داده مبتنی بر فایل. این اکنون در زیر fileInput قرار دارد. |
fetchSchedule.paused | fileInput.fetchSettings.enabled | منطق معکوس شده است. paused: true معادل enabled: false . |
format | موجود نیست | فیلدهای fileEncoding ، columnDelimiter و quotingMode حذف شدهاند. این فیلدها اکنون به صورت خودکار شناسایی میشوند. |
targets | primaryProductDataSource.feedLabel ، primaryProductDataSource.contentLanguage ، primaryProductDataSource.countries | فیلد targets تکراری حذف شده است. اکنون هر منبع داده یک هدف واحد دارد که توسط این فیلدها تعریف میشود، که نشان دهنده منسوخ شدن فیدهای چند دادهای است. |
DatafeedStatus | FileUpload | وضعیت آپلود فایل اکنون یک منبع جداگانه و فقط خواندنی است. |
datafeedId | name | شناسهی فایل آپلود شده، که به منبع دادهی والد آن اشاره دارد. |
processingStatus | processingState | وضعیت پردازش آپلود. مقادیر رشتهای ( success ، failure ، in progress ) با یک enum ( SUCCEEDED ، FAILED ، IN_PROGRESS ) جایگزین میشوند. |
errors ، warnings | issues | خطاها و هشدارها در یک لیست واحد issues ادغام میشوند. هر مشکل دارای یک فیلد severity ( ERROR یا WARNING ) است. |
lastUploadDate | uploadTime | مهر زمانی آخرین آپلود. قالب از یک رشته به یک شیء Timestamp تغییر کرد. |
country ، language ، feedLabel | قابل اجرا نیست | این فیلدها دیگر در منبع وضعیت نیستند. آنها بخشی از منبع DataSource هستند. |
targets[].included_destinations ، targets[].excluded_destinations | primaryProductDataSource.destinations | The two separate lists for included and excluded destinations are replaced by a single destinations list. Each item in the new list is an object that specifies the destination and its state ( ENABLED or DISABLED ), providing a more explicit configuration. |