我正在使用Google的内容购物API,此代码一切都很好。
但是,当我试图通过以下方法从商家中心删除产品时,该产品从列表中成功删除,但仍返回"未找到"错误。
这是代码:
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"
}
}
好吧,我想处理我项目中的两个方案。
1)如果该产品已在Google商家中心使用,则请求将其删除,否则。
2)如果该产品已经存在于Google商家中心,则不要再次尝试上传。
内容购物API没有这样的东西可以检查产品。他们直接抛出例外。
方案1:
实际上我正在使用YII2框架,该框架在GridView中使用PJAX。当我单击一个按钮时,它首先调用PJAX,然后重定向到URL。因此,它正在尝试再次删除同一产品。因此例外。
方案2:
您可以再次将同一产品上传到Google商家中心。如果产品已经存在,则它将更新该productid(itemID或upervingid)的所有值。我认为这对我不好。因此,我将上传产品的状态保留在数据库中。如果出现相同的产品,我只是设置"上传"的标志,而不是真正上传产品。