رابط برنامهنویسی کاربردی فروشنده (Merchant API) روشی قویتر و شهودیتر برای مدیریت دادههای محصول شما معرفی میکند. تغییر اصلی، تفکیک دادههای محصول به دو منبع مجزا است: ProductInput برای ارسال دادههای شما و Product برای مشاهده نسخه نهایی و پردازششده شامل وضعیت محصول و مشکلات آن. این ساختار جدید، تجربهای قابل پیشبینیتر و شفافتر را ارائه میدهد.
این راهنما شما را با تفاوتهای کلیدی آشنا میکند تا به شما در انتقال یکپارچهسازی از API محتوا برای خرید کمک کند. برای راهنمای دقیق در مورد استفاده از ویژگیهای جدید، به مدیریت محصولات خود مراجعه کنید.
تفاوتهای کلیدی
در اینجا مهمترین تغییرات در نحوه مدیریت محصولات در Merchant API در مقایسه با Content API for Shopping آورده شده است:
منابع اختصاصی برای دادههای ورودی و پردازششده : رابط برنامهنویسی نرمافزار فروشنده، مدیریت محصول را به دو منبع تقسیم میکند. میتوانید از منبع
ProductInputبرای درج، بهروزرسانی و حذف دادههای محصول خود استفاده کنید. میتوانید از منبع فقط خواندنیProductبرای مشاهده محصول نهایی پس از پردازش ورودیهای شما توسط گوگل، اعمال قوانین و ترکیب دادهها از منابع تکمیلی استفاده کنید.کدگذاری برای نام محصولات : میتوانید از کدگذاری بدون حاشیه base64url (RFC 4648 بخش 5) برای هر دو فیلد
ProductInput.nameوProduct.nameاستفاده کنید. در صورتی که نام محصولات حاوی کاراکترهای استفاده شده توسط Merchant API یا کاراکترهای رزرو شده توسط URL باشد، کدگذاری الزامی است. به عنوان مثال، اگر نام محصولات حاوی هر یک از کاراکترهای زیر باشد، باید آنها را کدگذاری کنید:% . + / : ~ , ( * ! ) & ? = @ # $وضعیت یکپارچه محصول : سرویس
productstatusesحذف شده است. مشکلات اعتبارسنجی محصول و وضعیتهای مقصد اکنون مستقیماً در منبعProductدر فیلدproductStatusگنجانده شدهاند و بازیابی دادهها را ساده میکنند.بهروزرسانیهای قابل پیشبینی محصول : متد جدید
productInputs.patchورودی یک محصول خاص را مستقیماً تغییر میدهد. این یک پیشرفت قابل توجه نسبت به Content API برای خرید است، که در آن بهروزرسانیها میتوانستند بهطور غیرمنتظرهای توسط سایر آپلودهای فید رونویسی شوند. در Merchant API، یک بهروزرسانی تا زمانی که ورودی خاص محصول دوباره بهروزرسانی یا حذف شود، باقی میماند. بهروزرسانیهای محصول به جای منبع پردازششدهProduct، روی منبعProductInputاعمال میشوند.منبع داده خود را برای مدیریت دادههای تمیزتر انتخاب کنید : اکنون همه عملیات نوشتن
productInputsبه یک پارامتر پرس و جویdataSourceنیاز دارند، که مشخص میکند کدام منبع داده را تغییر میدهید. این امر به ویژه در صورتی مفید است که چندین منبع داده داشته باشید.شناسههای جدید منابع : محصولات اکنون به جای فیلد
id، باnameمنبع RESTful شناسایی میشوند. فرمت آنaccounts/{account}/products/{product}است.عدم وجود دستههای سفارشی : روش
custombatchدیگر در دسترس نیست. میتوانید از درخواستهای ناهمزمان یا دستهبندی HTTP برای ارسال چندین درخواست در یک فراخوانی HTTP واحد استفاده کنید.منابع داده برای هر برچسب و زبان فید : رابط برنامهنویسی کاربردی فروشنده (Merchant API) امکان ایجاد منبع داده را بدون مشخص کردن برچسب و زبان فید فراهم میکند و بنابراین امکان درج محصول با هر برچسب و زبان فید را فراهم میکند.
درخواستها
این بخش فرمتهای درخواست برای API محتوا برای خرید و API فروشنده را مقایسه میکند.
| درخواست توضیحات | API محتوا برای خرید | رابط برنامهنویسی کاربردی (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) به یک نام منبع استاندارد REST تغییر یافته است.
| توضیحات شناسه | API محتوا برای خرید | رابط برنامهنویسی کاربردی (API) فروشنده |
|---|---|---|
| شناسه محصول | رشتهای متشکل از بخشهایی که با علامت دونقطه : :) از هم جدا شدهاند.قالب: channel:contentLanguage:targetCountry:offerId یا channel:contentLanguage:feedLabel:offerId .مثال: online:en:US:sku123 | رشتهای name منبع REST.قالب: accounts/{account}/products/{product} که در آن {product} برابر است contentLanguage~feedLabel~offerId .مثال: accounts/12345/products/en~US~sku123 .کدگذاری: کدگذاری بدون پدگذاری base64url توصیه میشود و در مواردی که شناسههای محصول حاوی کاراکترهای استفاده شده توسط API فروشنده یا کاراکترهای رزرو شده توسط URL هستند، اجباری است . |
روشها
این جدول، متدهای Content API برای خرید و معادلهای آنها در Merchant API را نشان میدهد.
| API محتوا برای روش خرید | روش API فروشنده | موجودی و نکات |
|---|---|---|
products.get | products.get | محصول نهایی و فرآوری شده را بازیابی میکند. |
products.list | products.list | محصولات نهایی و فرآوری شده را فهرست میکند. |
products.insert | productInputs.insert | یک ورودی محصول درج میکند. به یک dataSource نیاز دارد. |
products.update | productInputs.update | رفتار آن به طور قابل توجهی متفاوت است. ورودی یک محصول خاص را بهروزرسانی میکند و پایدار است. |
products.delete | productInputs.delete | یک ورودی خاص محصول را حذف میکند. به یک dataSource نیاز دارد. |
products.custombatch | موجود نیست | از درخواستهای ناهمزمان یا دستهبندی HTTP استفاده کنید. |
productstatuses.get | products.get | سرویس وضعیت productstatuses حذف شده است. اطلاعات وضعیت اکنون بخشی از منبع Product resource) است. |
productstatuses.list | products.list | سرویس وضعیت productstatuses حذف شده است. اطلاعات وضعیت اکنون بخشی از منبع Product resource) است. |
productstatuses.custombatch | موجود نیست | از درخواستهای ناهمزمان یا دستهبندی HTTP استفاده کنید. |
تغییرات جزئی فیلدها
این جدول فیلدهای مهمی را که در رابط برنامهنویسی کاربردی فروشنده تغییر، اضافه یا حذف شدهاند، برجسته میکند.
| API محتوا برای خرید | رابط برنامهنویسی کاربردی (API) فروشنده | توضیحات |
|---|---|---|
id | name | شناسه اصلی برای یک محصول اکنون name منبع REST است. کدگذاری base64url بدون پدگذاری توصیه میشود و در مورد نام محصولاتی که حاوی کاراکترهای استفاده شده توسط API فروشنده یا کاراکترهای رزرو شده URL هستند، اجباری است . |
ویژگیهای مشخصات دادههای سطح بالای محصول (مثلاً title ، price ، link ) | شیء productAttributes | ویژگیهای محصول مانند title ، price و link دیگر فیلدهای سطح بالا نیستند. آنها اکنون در شیء productAttributes در هر دو منبع Product و ProductInput گروهبندی شدهاند. این امر ساختار منبع تمیزتر و سازمانیافتهتری را فراهم میکند. |
targetCountry | feedLabel | نام منبع اکنون به جای targetCountry از feedLabel استفاده میکند تا با عملکرد مرکز فروشندگان هماهنگ شود. |
feedId | dataSource (پارامتر پرس و جو) | نام dataSource اکنون یک پارامتر پرس و جو اجباری برای همه متدهای نوشتن productInputs ( insert ، update ، delete ) است. |
channel | در دسترس نیست. برای محصولات فقط محلی legacy_local استفاده کنید. | فیلد channel دیگر در Merchant API وجود ندارد. محصولاتی که کانال LOCAL در Content API برای خرید دارند، باید فیلد legacy_local را روی true تنظیم کنند. |
| موجود نیست | versionNumber | یک فیلد اختیاری جدید در ProductInput که میتواند برای جلوگیری از درجهای خارج از ترتیب در منابع داده اصلی استفاده شود. |
فیلدهای نوع string با مجموعهای از مقادیر تعریفشده | فیلدهای نوع enum با مجموعهای از مقادیر تعریفشده | فیلدهای درون ویژگیهای محصول با مجموعهای از مقادیر تعریفشده (برای مثال excluded_destinations ، availability ) اکنون از نوع enum هستند. |