0

对于一个项目,我必须自动化 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'}}]}
*/

值得注意的是,我确实收到了没有任何错误的有效响应。然而,使用批处理方法(有单次插入)在商家中心仪表板中没有效果。

有没有其他人遇到同样的问题,或者我错过了什么?

4

1 回答 1

0

集成 Node 客户端库时,我遇到了同样的问题。经过一番研究,我在 GitHub 上找到了这个问题的答案。

您需要添加一个包含“条目”的“资源”字段,因为它们是作为正文的一部分发送的。您可以在此处参考 GitHub 问题。

将代码中的正文更改为:

body = {'resource': {'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'}}]}}
于 2021-06-24T07:23:09.630 回答