شما میتوانید از فیدهای تکمیلی برای بهروزرسانیهای جزئی دادههای محصول استفاده کنید، برای این کار میتوانید feedId به عنوان پارامتر پرسوجو هنگام فراخوانی متدهای products.insert ، products.delete ، products.custombatch.insert و products.custombatch.delete اضافه کنید.
برای مثال، میتوانید یک فراخوانی متد feed تکمیلی products.insert به آدرس اینترنتی زیر ایجاد کنید:
POST https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products?feedId=feedId
محصولات.درج
متد products.insert با فید تکمیلی، فیلدهای محصولی را که در بدنه درخواست ارسال میکنید، اضافه میکند و در صورت وجود، آن فیلدها را بازنویسی میکند. هنگام استفاده از یک فید تکمیلی، این متد تمام فیلدهای محصول دیگر را بدون تغییر باقی میگذارد، مگر اینکه فیلدها در درخواست قبلی برای همان فید گنجانده شده باشند. در حالی که دادههای اضافه شده از طریق فیدهای دیگر تحت تأثیر قرار نمیگیرند، هر درخواست، درخواستهای قبلی برای همان فید را بازنویسی میکند. این بدان معناست که اگر فیلدی را از طریق درخواست فید تکمیلی اضافه یا بهروزرسانی کنید و سپس آن فیلد را در درخواست بعدی وارد نکنید، دادههای فیلد حذف شده از فید حذف میشوند. این رفتار با فراخوانی products.insert بدون فید تکمیلی متفاوت است، که تمام دادههای موجود محصول را حذف کرده و آن را با فیلدهایی که در بدنه درخواست ارسال میکنید، جایگزین میکند.
از آدرس اینترنتی زیر برای ارسال درخواست به سرویس Feed تکمیلی Product.insert استفاده کنید:
POST https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products?feedId=feedId
شما باید فیلدهای offerId ، feedLabel ، channel و contentLanguage را در بدنه درخواست وارد کنید. سایر فیلدها اختیاری هستند.
مثال
برای تغییر موجودی یک محصول از «موجود در انبار» به «ناموجود در انبار»، میتوانید از بدنه درخواست زیر برای فراخوانی متد Product.insert در فیدهای تکمیلی استفاده کنید:
{
"offerId": "1111111111",
"contentLanguage": "en",
"feedLabel": "US",
"channel": "online",
"availability": "out of stock",
}
محصولات.حذف
متد products.delete تمام دادههای تکمیلی که قبلاً توسط فراخوانیهای products.insert با استفاده از فید تکمیلی مشخص شده اضافه شده بودند را حذف میکند. فراخوانی این متد برای یک فید تکمیلی، دادههای اصلی محصول اضافه شده قبل از فراخوانی(های) Product.insert فید تکمیلی را تحت تأثیر قرار نمیدهد. میتوانید این را مانند حذف یک لایه داده برای یک فید خاص در نظر بگیرید؛ دادههای اضافه شده از طریق فیدهای دیگر تحت تأثیر قرار نمیگیرند و محصول عملاً به حالت قبلی خود قبل از اضافه شدن لایه فید تکمیلی برمیگردد. این با فراخوانی products.delete بدون فید تکمیلی متفاوت است، که کل محصول و تمام دادههای آن را حذف میکند.
از آدرس اینترنتی زیر برای ارسال درخواست به سرویس products.delete که در آن productId همان REST ID محصول است و به صورت channel:contentLanguage:feedLabel:offerId نمایش داده میشود، استفاده کنید.
DELETE https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products/productId?feedId=feedId
برای فراخوانیهای متد products.delete در feedهای تکمیلی، نیازی به بدنهی درخواست نیست.
محصولات.دسته سفارشی
متدهای custombatch به شما این امکان را میدهند که دادههای فید تکمیلی را برای چندین محصول با استفاده از یک فراخوانی API واحد insert یا delete تا تعداد فراخوانیهای API انجام شده به حداقل برسد.
برای ایجاد یک فراخوانی custombatch از آدرس درخواست زیر استفاده کنید:
https://shoppingcontent.googleapis.com/content/v2.1/products/batch
برای تمام فراخوانیهای custombatch مربوط به feed تکمیلی، باید پارامترهای batchId ، merchantID ، method و feedId را در بدنه درخواست وارد کنید.
products.custombatch: درج
هنگام فراخوانیهای تکمیلی فید به متد products.custombatch:insert ، باید علاوه بر پارامترهای مورد نیاز batchId ، merchantID و method ، offerId ، feedLabel ، channel و contentLanguage نیز در بدنه درخواست وارد کنید. سایر فیلدهای product اختیاری هستند.
مثال
برای بهروزرسانی مقدار price دو محصول موجود، میتوانید از درخواست زیر برای فراخوانی متد products.custombatch:insert استفاده کنید:.
{
"entries": [
{
"batchId": 1111,
"merchantId": 1234567,
"method": "insert",
"feedId": "7654321",
"product": {
"offerId": "1111111111",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online",
"price": {
"value": "30.99",
"currency": "USD"
}
}
},
{
"batchId": 1112,
"merchantId": 1234567,
"method": "insert",
"feedId": "7654321",
"product": {
"offerId": "2222222222",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online",
"price": {
"value": "33.99",
"currency": "USD"
},
},
}
}
products.custombatch:حذف
برای حذف تمام بهروزرسانیهای انجامشده روی دو محصول از طریق یک فید تکمیلی مشخص، میتوانید از درخواست زیر برای فراخوانی متد products.custombatch:delete استفاده کنید:
{
"entries": [
{
"batchId": 1115,
"merchantId": 1234567,
"method": "delete",
"feedId": "7654321",
"productId": "online:en:US:1111111111"
},
{
"batchId": 1116,
"merchantId": 1234567,
"method": "delete",
"feedId": "7654321",
"productId": "online:en:US:2222222222"
}
]
}