مهاجرت محصولات

رابط برنامه‌نویسی کاربردی فروشنده (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 هستند.