انتقال منابع داده

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 API input type.

  • Data sources without label and language. The Merchant API lets you create a primary data source without specifying a feedLabel and contentLanguage . This type of data source accepts products in any combination of feedLabel and contentLanguage , 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 feedLabel and contentLanguage . Multi-data target feeds are deprecated in Merchant API.

  • استراتژی منبع داده خود را انتخاب کنید. شما سه گزینه برای مدیریت منابع داده خود دارید:

    1. منابع داده موجود API محتوا را حفظ کنید. می‌توانید به استفاده از منابع داده ایجاد شده با API محتوا برای خرید ادامه دهید، زیرا آنها با API فروشنده سازگار هستند. می‌توانید نام منابع آنها را با استفاده dataSources.list یا در رابط کاربری مرکز فروشنده پیدا کنید. منابع داده اولیه API محتوا فقط از feedLabel و contentLanguage خاصی که با آنها ایجاد شده‌اند پشتیبانی می‌کنند. منابع داده API محتوا در مرکز فروشنده با منبع "Content API" نشان داده می‌شوند، حتی اگر محصولات با استفاده از API فروشنده درج شده باشند. می‌توانید آنها را با منابع داده API فروشنده جدید که جفت‌های feedLabel و contentLanguage خاصی را نیز هدف قرار می‌دهند، ترکیب کنید.

    2. برای هر برچسب و زبان، منابع داده جدید Merchant API ایجاد کنید. اگر نیاز به پشتیبانی از ترکیب‌های جدید feedLabel و contentLanguage دارید (و ترجیح می‌دهید جدایی دقیقی بین آنها حفظ شود) یا اگر از تنظیمات قوانین منبع داده استفاده می‌کنید که به feedLabel و contentLanguage خاصی متکی است، از این گزینه استفاده کنید. شما باید برای هر جفت feedLabel و contentLanguage که استفاده می‌کنید، یک منبع داده جداگانه ایجاد کنید.

    3. 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 feedLabel and contentLanguage . 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 fileUploads resource. To retrieve the status of a file upload, use the fileUploads.get method with the latest alias.

  • New data source types. The DataSource resource 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.updateAutofeedSettings method 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.