PHP - Content Shopping Api - элемент не найден

Я использую Google Content Shopping API, с этим кодом все идет хорошо.

Но когда я пытаюсь удалить продукт из 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"
}
}

1 ответ

Решение

Ну, я хочу обработать два сценария в моем проекте.

1) Если продукт работает в Google Merchant Center, запросите его удаление, в противном случае - нет.

2) Если продукт уже есть в Google Merchant Center, не пытайтесь загрузить его снова.

Контент-шоппинг API, у которого нет такой вещи, чтобы проверить товар, уже присутствует или нет Они прямо бросают Исключение.

Ответ для сценария 1:

На самом деле я использую Yii2 Framework, который использует Pjax в GridView. Когда я нажимаю кнопку, она сначала вызывает Pjax, а затем перенаправляет на URL. Следовательно, он пытается удалить тот же продукт снова. И, следовательно, исключение.

Ответ для сценария 2:

Вы можете снова загрузить этот же продукт в Google Merchant Center. Если продукт уже существует, он обновит все значения для этого productId (itemId или offerId). Я не думаю, что это хорошо для меня. Поэтому я сохраняю статус загруженных продуктов в своей базе данных. И если появился тот же продукт, я просто устанавливаю флаг "загружен" и не загружаю продукт.

Другие вопросы по тегам