يوضّح هذا الدليل كيفية نقل عملية الدمج من خدمتَي datafeeds وdatafeedstatuses في Content API for Shopping إلى واجهة Data Sources الفرعية في Merchant API. توفّر واجهة برمجة التطبيقات الفرعية الجديدة "مصادر البيانات" تحكّمًا أكثر مباشرةً في قنوات نقل البيانات وتُبسّط إدارة مصادر البيانات.
لمزيد من المعلومات حول الميزات الجديدة، اطّلِع على دليل إدارة مصادر البيانات.
الاختلافات الرئيسية
تقدّم Merchant API عدة مزايا مقارنةً بواجهة Content API في Shopping، وهي:
إنشاء مصدر بيانات بشكل صريح: لم تعُد واجهة برمجة التطبيقات تنشئ تلقائيًا مصدر بيانات "Content API" عند تحميل منتجك الأول. في Merchant API، عليك إنشاء مصادر البيانات بشكل صريح كي تتمكّن من تحميل المنتجات إليها. يمنحك ذلك المزيد من التحكّم في تنظيم وإدارة قنوات نقل بيانات منتجاتك من البداية.
إتاحة مصادر بيانات متعددة من واجهة برمجة التطبيقات في Content API for Shopping، كان بإمكانك استخدام مصدر بيانات واحد فقط يتم إنشاؤه تلقائيًا باسم "Content API". باستخدام Merchant API، يمكنك إنشاء مصادر بيانات متعدّدة وإدارتها من
APIنوع الإدخال.مصادر البيانات التي لا تتضمّن تصنيفًا ولغة تتيح لك Merchant API إنشاء مصدر بيانات أساسي بدون تحديد
feedLabelوcontentLanguage. يقبل هذا النوع من مصادر البيانات المنتجات بأي مجموعة منfeedLabelوcontentLanguage، ما يسهّل عمليات تحميل المنتجات في عمليات الدمج التي لا تتطلّب مصادر بيانات منفصلة لمناطق مختلفة.استهداف مبسّط للبيانات: يتوافق كل مصدر بيانات الآن مع هدف واحد، يتم تحديده من خلال مجموعة فريدة من
feedLabelوcontentLanguage. تم إيقاف الخلاصات التي تستهدف بيانات متعدّدة في Merchant API.حالة تحميل الملف المخصّص: تعرض Merchant API حالة مصادر البيانات المستندة إلى ملفات باستخدام مرجع
fileUploadsمنفصل للقراءة فقط. لاسترداد حالة تحميل ملف، استخدِم الطريقةfileUploads.getمع الاسم المستعارlatest.أنواع جديدة من مصادر البيانات: يتوافق المورد
DataSourceمع المزيد من المجالات، بما في ذلك العروض الترويجية والمستودع المتعلّق بمنطقة معيّنة والمستودع المتعلّق ببلد معيّن، ما يوفّر طريقة موحّدة لإدارة جميع قنوات نقل البيانات.مصادر البيانات المبرمَجة: باستخدام Merchant API، يمكنك الآن تفعيل ميزة مصادر البيانات المبرمَجة أو إيقافها لحسابك باستخدام طريقة
autofeedSettings.updateAutofeedSettingsفي واجهة Accounts الفرعية. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة ضبط إعدادات "التغذية التلقائية".
اختيار استراتيجية مصدر البيانات
لديك ثلاثة خيارات لإدارة مصادر البيانات:
إنشاء مصدر بيانات واحد في Merchant API لأي تصنيف خلاصة ولغة استخدِم هذا الخيار لتبسيط عملية الإدارة من خلال توفير مصدر بيانات واحد يقبل المنتجات التي تتضمّن أي
feedLabelوcontentLanguage. في عملية إعداد Content API القديمة، يمكنك تحديد قواعد لتصنيفات ولغات معيّنة من خلال مصادر بيانات منفصلة، وإدراج المنتجات في مصدر البيانات الذي يتضمّن القواعد المستهدَفة المناسبة. في حال اختيار هذا الخيار، ننصحك بنقل جميع منتجاتك إلى مصدر البيانات الجديد وإزالة مصادر بيانات Content API بعد نقل جميع منتجاتك.أنشئ مصادر بيانات جديدة في Merchant API لكل تصنيف ولغة. استخدِم هذا الخيار إذا كنت بحاجة إلى إتاحة مجموعات جديدة من
feedLabelوcontentLanguage(وتفضّل الفصل التام بينهما) أو إذا كنت تستخدم إعداد قواعد مصدر البيانات الذي يعتمد علىfeedLabelوcontentLanguageمحدّدة. عليك إنشاء مصدر بيانات منفصل لكل زوج منfeedLabelوcontentLanguageتستخدمه. يمكنك الجمع بين مصادر بيانات Merchant API ومصادر البيانات التي تم إنشاؤها باستخدام Content API for Shopping.
- الاحتفاظ بمصادر بيانات Content API الحالية: يمكنك مواصلة استخدام مصادر البيانات التي تم إنشاؤها باستخدام Content API for Shopping لأنّها متوافقة مع Merchant API. يمكنك العثور على أسماء الموارد باستخدام
dataSources.listأو ضمن واجهة مستخدم Merchant Center. لا تتوافق مصادر البيانات الأساسية في Content API إلا معfeedLabelوcontentLanguageالمحدّدين اللذين تم إنشاؤها بهما. تظهر مصادر بيانات Content API في Merchant Center مع المصدر "Content API" حتى إذا تم إدراج المنتجات باستخدام Merchant API. يمكنك الجمع بينها وبين مصادر بيانات جديدة في Merchant API تستهدف أيضًا أزواجfeedLabelوcontentLanguageمحدّدة.
ننصحك بتعبئة قاعدة بيانات المنتجات داخل المتجر بشكل رجعي من خلال تخزين أسماء جميع مصادر البيانات الأساسية مرة واحدة لكل منتج من منتجاتك لتجنُّب عمليات استدعاء dataSources.list المتكررة.
الطلبات
يقارن الجدول التالي بين تنسيقات عناوين URL للطلبات في كلّ من Content API for Shopping وMerchant API.
| وصف الطلب | واجهة برمجة تطبيقات المحتوى في Shopping | Merchant 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 اسم مرجع مستند إلى سلسلة كمعرّف.
| وصف المعرّف | واجهة برمجة تطبيقات المحتوى في Shopping | Merchant API |
|---|---|---|
| معرّف مصدر البيانات | datafeedId (رقمي) |
name (سلسلة، التنسيق: accounts/{account}/dataSources/{datasource}) |
الطُرق
يقارن هذا الجدول بين الطرق من خدمات Content API for Shopping datafeeds
وdatafeedstatuses والطرق المشابهة لها في Merchant API.
| طريقة Content API for Shopping | طريقة Merchant API | مدى التوفّر والملاحظات |
|---|---|---|
datafeeds.custombatch |
غير متوفر | استخدِم طلبات بيانات فردية من واجهة برمجة التطبيقات بدلاً من ذلك. |
datafeeds.delete |
dataSources.delete |
متوفرة. |
datafeeds.fetchnow |
dataSources.fetch |
متوفرة. لا تعمل هذه الطريقة الآن إلا مع مصادر البيانات التي تتضمّن إدخال ملف. |
datafeeds.get |
dataSources.get |
متوفرة. |
datafeeds.insert |
dataSources.create |
متوفرة. |
datafeeds.list |
dataSources.list |
متوفرة. |
datafeeds.update |
dataSources.update |
متوفرة. يستخدم دلالات PATCH بدلاً من PUT. |
datafeedstatuses.custombatch |
غير متوفر | استخدِم طلبات بيانات فردية من واجهة برمجة التطبيقات بدلاً من ذلك. لمزيد من التفاصيل، يمكنك الاطّلاع على إرسال طلبات متعددة في آنٍ واحد. |
datafeedstatuses.get |
fileUploads.get |
متاحة لمصادر البيانات المستندة إلى الملفات استخدِم الاسم المستعار latest للاطّلاع على حالة آخر عملية تحميل. بالنسبة إلى أنواع مصادر البيانات الأخرى، تكون معلومات الحالة جزءًا من مورد DataSource. |
datafeedstatuses.list |
غير متوفر | للحصول على حالة مصادر بيانات متعددة، عليك أولاً إدراج جميع مصادر البيانات باستخدام dataSources.list. بعد ذلك، استخدِم الدالة fileUploads.get مع الاسم المستعار latest لكل مصدر بيانات مستند إلى ملف. |
التغييرات التفصيلية في الحقول
يعرض هذا الجدول التغييرات على مستوى الحقول بين المرجعين Datafeed وDatafeedStatus في Content API for Shopping والمرجعين DataSource وFileUpload في Merchant API.
| واجهة برمجة تطبيقات المحتوى في Shopping | Merchant 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) بقيمة تعداد (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 |
تم استبدال القائمتَين المنفصلتَين للوجهات المُدرَجة والمستبعَدة بقائمة destinations واحدة. كل عنصر في القائمة الجديدة هو عنصر يحدّد الوجهة وحالتها (ENABLED أو DISABLED)، ما يوفّر إعدادًا أكثر وضوحًا. |