我正在使用Google的内容购物API,这一切都很顺利code。
但是当我尝试通过以下方法从Merchant Center删除产品时,产品已从列表中成功删除,但仍然返回“找不到项目”错误。
这是代码:
public function deleteProduct($offerId) {
$productId = $this->buildProductId($offerId);
// The response for a successful delete is empty
$this->service->products->delete($this->merchantId, $productId);
}
这是它返回的错误。
Google_Service_Exception
{
"error": {
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "item not found"
}
],
"code": 404,
"message": "item not found"
}
}
答案 0 :(得分:0)
好吧,我想在我的项目中处理两个场景。
1)如果产品在Google Merchant Center上有效,则请求删除它,否则请求删除。
2)如果该产品已在Google Merchant Center上发布,请勿尝试重新上传。
没有检查产品的内容购物API已经存在或没有。他们直接抛出异常。
回答方案1:
实际上我使用的是在GridView中使用Pjax的Yii2框架。当我点击一个按钮时,它首先调用Pjax,然后重定向到URL。因此,它试图再次删除相同的产品。因此也是例外。
回答方案2:
您可以将同一产品再次上传到Google Merchant Center。如果产品已经存在,那么它将更新该productId(itemId或offerId)的所有值。我不认为它对我有好处。因此,我将上传产品的状态保留在我的数据库中。如果同一产品出现,我只是设置'已上传'的标志,而不是真正上传产品。