对于一个项目,我必须自动化 Google Merchant Center 中产品的更新过程。这些产品是通过使用 Google 表格作为输入法的提要添加的。这是“主要饲料”。
根据 v2.1 api 的文档,可以使用补充 Feed 来更新通过主要 Feed 添加的产品(请参阅:https ://developers.google.com/shopping-content/guides/products/supplemental -feeds/使用补充饲料)。此补充 Feed 仅允许更新产品属性的子集。
使用补充提要的提要 ID,我使单个产品插入工作。但是由于api http请求的限制以及要更新的产品量很大,我需要使用批处理的方式。不幸的是,我似乎无法让它工作。
TL;DR 插入单个产品有效,使用 custombatch 方法插入产品不起作用。批处理方法的响应似乎还可以,但在 Google Merchant Center 仪表板中没有影响。
执行
服务:
service = build('content', 'v2.1', credentials=scoped_credentials)
通过我的补充提要更新单个产品可使用以下代码。
/*
product = {'title': 'Single update 12-42', 'price': {'value': '69', 'currency': 'EUR'}, 'offerId': 'abcd1', 'contentLanguage': 'en', 'targetCountry': 'NL', 'channel': 'online', 'availability': 'out of stock'}
*/
result = service.products().insert(merchantId=MERCHANT_ID, body=product, feedId=FEED_ID).execute()
/*
result = {'kind': 'content#product', 'id': 'online:en:NL:abcd1', 'offerId': 'abcd1', 'contentLanguage': 'en', 'targetCountry': 'NL', 'channel': 'online'}
*/
然而,通过批处理请求进行更新没有任何效果。
/*
body = {'entries': [{'batchId': 1, 'merchantId': MERCHANT_ID, 'method': 'insert', 'feedId': FEED_ID, 'product': {'title': 'Batch update 12-44', 'price': {'value': '69', 'currency': 'EUR'}, 'offerId': 'abcd2', 'contentLanguage': 'en', 'targetCountry': 'NL', 'channel': 'online', 'availability': 'out of stock'}}]}
*/
result = service.products().custombatch(body=body).execute()
/*
result = {'kind': 'content#productsCustomBatchResponse', 'entries': [{'kind': 'content#productsCustomBatchResponseEntry', 'batchId': 1, 'product': {'kind': 'content#product', 'id': 'online:en:NL:abcd2', 'offerId': 'abcd2', 'contentLanguage': 'en', 'targetCountry': 'NL', 'channel': 'online'}}]}
*/
值得注意的是,我确实收到了没有任何错误的有效响应。然而,使用批处理方法(有单次插入)在商家中心仪表板中没有效果。
有没有其他人遇到同样的问题,或者我错过了什么?