google adwords — 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, не пытайтесь загрузить его снова.

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

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

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

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]