تقدّم Merchant API طريقة أكثر فعالية وبساطة لإدارة بيانات منتجاتك. ويتمثّل التغيير الرئيسي في فصل بيانات المنتجات إلى موردَين مختلفَين: ProductInput لإرسال بياناتك وProduct لعرض النسخة النهائية التي تمت معالجتها
، بما في ذلك حالة المنتج والمشاكل التي تواجهه. يوفّر هذا الهيكل الجديد تجربة أكثر قابلية للتوقّع وشفافية.
يرشدك هذا الدليل إلى الاختلافات الرئيسية لمساعدتك في نقل عملية الربط من Content API for Shopping. للحصول على دليل مفصّل حول استخدام الميزات الجديدة، يُرجى الاطّلاع على مقالة إدارة منتجاتك.
الاختلافات الرئيسية
في ما يلي أهم التغييرات في طريقة إدارة المنتجات في Merchant API مقارنةً بـ Content API for Shopping:
موارد مخصّصة لبيانات الإدخال والبيانات التي تمت معالجتها: تقسم Merchant API إدارة المنتجات إلى موردَين. يمكنك استخدام مورد
ProductInputلإدراج بيانات منتجاتك وتعديلها وحذفها. يمكنك استخدام المورد للقراءة فقطProductلعرض المنتج النهائي بعد أن تعالج Google بيانات الإدخال وتطبّق القواعد وتدمج البيانات من مصادر تكميلية.ترميز أسماء المنتجات: يمكنك استخدام ترميز base64url غير المضمّن (RFC 4648 القسم 5) لكلّ من
ProductInput.nameوProduct.nameالحقلَين. في حال احتواء أسماء المنتجات على أحرف تستخدمها Merchant API أو أحرف محجوزة في عناوين URL، يصبح الترميز إلزاميًا. على سبيل المثال، يجب ترميز أسماء المنتجات إذا كانت تحتوي على أي من الأحرف التالية:% . + / : ~ , ( * ! ) & ? = @ # $حالة المنتج المدمَجة: تمت إزالة خدمة
productstatuses. تم الآن تضمين مشاكل التحقّق من صحة المنتج وحالات الوجهة مباشرةً في الـProductمورد ضمن الحقلproductStatus، ما يسهّل استرداد البيانات.تعديلات متوقّعة على المنتجات: تعدّل طريقة
productInputs.patchالجديدة إدخال منتج معيّن مباشرةً. يمثّل ذلك تحسينًا كبيرًا مقارنةً بـ Content API for Shopping، حيث كان من الممكن أن يتم استبدال التعديلات بشكل غير متوقّع بعمليات تحميل أخرى للخلاصة. في Merchant API، يبقى التعديل ساريًا إلى أن يتم تعديل إدخال المنتج المحدّد هذا مرة أخرى أو حذفه. يتم تطبيق تعديلات المنتجات علىProductInputمورد بدلاً من موردProductالذي تمت معالجته.اختيار مصدر البيانات لإدارة البيانات بشكل أفضل: تتطلّب الآن جميع عمليات
productInputsالكتابة مَعلمة طلب بحثdataSource، ما يوضّح مصدر البيانات الذي يتم تعديله. ويكون ذلك مفيدًا بشكل خاص إذا كان لديك مصادر متعدّدة تقدّم البيانات.معرّفات موارد جديدة: يتم الآن تحديد المنتجات من خلال لمورد RESTful
nameبدلاً من الحقلid. التنسيق هوaccounts/{account}/products/{product}.لا توجد دُفعات مخصّصة: لم تعُد طريقة
custombatchمتاحة. يمكنك استخدام الطلبات غير المتزامنة أو تجميع طلبات HTTP لإرسال طلبات متعدّدة في طلب HTTP واحد.
- مصادر البيانات لأي تصنيف خلاصة وأي لغة: تتيح Merchant API إنشاء مصدر بيانات بدون تحديد تصنيف الخلاصة واللغة وبالتالي تسمح بإدراج منتج بأي تصنيف خلاصة وأي لغة.
الطلبات
يقارن هذا القسم بين تنسيقات الطلبات في Content API for Shopping وMerchant API.
| وصف الطلب | Content API for Shopping | Merchant API |
|---|---|---|
| الحصول على منتج | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} |
| عرض قائمة المنتجات | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products |
| إدراج منتج | POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products |
POST https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs:insert |
| تعديل منتج | PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
PATCH https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} |
| حذف منتج | DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
DELETE https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} |
| الحصول على حالة المنتج | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses/{productId} |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} |
| عرض قائمة بحالات المنتجات | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products |
| تجميع طلبات متعدّدة في دُفعة واحدة | POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch |
استخدام الطلبات غير المتزامنة أو تجميع طلبات HTTP |
المعرّفات
تم تغيير تنسيق معرّفات المنتجات في Merchant API إلى اسم مورد RESTful عادي.
| وصف المعرّف | Content API for Shopping | Merchant API |
|---|---|---|
| معرّف المنتج | سلسلة مؤلّفة من أجزاء مفصولة بنقطتَين رأسيتَين (:).التنسيق: channel:contentLanguage:targetCountry:offerId أو channel:contentLanguage:feedLabel:offerId.مثال: online:en:US:sku123 |
سلسلة name لمورد RESTful.التنسيق: accounts/{account}/products/{product} حيث {product} هو contentLanguage~feedLabel~offerId.مثال: accounts/12345/products/en~US~sku123.الترميز: يُنصح باستخدام ترميز base64url غير المضمّن وهو إلزامي في حال احتواء معرّفات المنتجات على أحرف تستخدمها Merchant API أو أحرف محجوزة في عناوين URL. |
الطُرق
يعرض هذا الجدول طُرق Content API for Shopping والطُرق المقابلة لها في Merchant API.
| طريقة Content API for Shopping | طريقة Merchant API | التوفّر والملاحظات |
|---|---|---|
products.get |
products.get |
يستردّ المنتج النهائي الذي تمت معالجته. |
products.list |
products.list |
يعرض قائمة بالمنتجات النهائية التي تمت معالجتها. |
products.insert |
productInputs.insert |
يُدرج إدخال منتج. يتطلّب ذلك dataSource. |
products.update |
productInputs.patch |
يختلف السلوك بشكل كبير. يعدّل إدخال منتج معيّن ويبقى ساريًا. |
products.delete |
productInputs.delete |
يحذف إدخال منتج معيّن. يتطلّب ذلك dataSource. |
products.custombatch |
غير متاحة | استخدام الطلبات غير المتزامنة أو تجميع طلبات HTTP |
productstatuses.get |
products.get |
تمت إزالة خدمة productstatuses. تُعدّ معلومات الحالة الآن جزءًا من مورد Product. |
productstatuses.list |
products.list |
تمت إزالة خدمة productstatuses. تُعدّ معلومات الحالة الآن جزءًا من مورد Product. |
productstatuses.custombatch |
غير متاحة | استخدام الطلبات غير المتزامنة أو تجميع طلبات HTTP. |
التغييرات التفصيلية في الحقول
يُبرز هذا الجدول الحقول المهمة التي تم تغييرها أو إضافتها أو إزالتها في Merchant API.
| Content API for Shopping | Merchant API | الوصف |
|---|---|---|
id |
name |
المعرّف الأساسي للمنتج هو الآن name لمورد RESTful. يُنصح باستخدام ترميز base64url غير المضمّن وهو إلزامي في حال احتواء أسماء المنتجات على أحرف تستخدمها Merchant API أو أحرف محجوزة في عناوين URL. |
سمات مواصفات بيانات المنتج على المستوى الأعلى (مثل title وprice وlink) |
كائن productAttributes |
لم تعُد سمات المنتج، مثل title وprice وlink، حقولاً على المستوى الأعلى. تم الآن تجميعها ضمن الكائن productAttributes في كلّ من موردَي Product وProductInput. يوفّر ذلك بنية موارد أكثر وضوحًا وتنظيمًا. |
targetCountry |
feedLabel |
يستخدم اسم المورد الآن feedLabel بدلاً من targetCountry ليتوافق مع وظائف Merchant Center. |
feedId |
dataSource (مَعلمة طلب البحث) |
أصبح اسم dataSource الآن مَعلمة طلب بحث مطلوبة لجميع طُرق الكتابة في productInputs (insert وupdate وdelete). |
channel |
غير متاحة. استخدِم legacy_local للمنتجات المحلية فقط. |
لم يعُد الحقل channel متوفّرًا في Merchant API. بالنسبة إلى المنتجات التي تتضمّن القناة LOCAL في Content API for Shopping، يجب بدلاً من ذلك ضبط الحقل legacy_local على "صحيح". |
| غير متاحة | versionNumber |
حقل اختياري جديد في ProductInput يمكن استخدامه لمنع عمليات الإدراج غير المنظَّمة في مصادر البيانات الأساسية. |
حقول من النوع string تتضمّن مجموعة محدّدة من القيم |
حقول من النوع enum تتضمّن مجموعة محدّدة من القيم |
أصبحت الحقول ضمن سمات المنتج التي تتضمّن مجموعة محدّدة من القيم (مثل excluded_destinations وavailability) الآن من النوع enum. |