Как использовать WooCommerce REST API для автоматизации управления товарами

Диагностика задачи: зачем автоматизировать управление товарами через REST API WooCommerce

Если в вашем WooCommerce-магазине сотни или тысячи товаров, ручное обновление цен, остатков или описаний становится неэффективным и подвержено ошибкам. REST API WooCommerce позволяет автоматизировать эти процессы, интегрируя внешний софт, скрипты или ERP-системы для массового управления товарами без захода в админку.

Основные возможности WooCommerce REST API для работы с товарами

WooCommerce предоставляет полный набор эндпоинтов для CRUD-операций с товарами:

  • GET /wp-json/wc/v3/products — получение списка товаров;
  • POST /wp-json/wc/v3/products — создание нового товара;
  • PUT /wp-json/wc/v3/products/{id} — обновление товара;
  • DELETE /wp-json/wc/v3/products/{id} — удаление товара.

Для работы с API необходимы ключи Consumer Key и Consumer Secret, которые создаются в WooCommerce в разделе WooCommerce → Настройки → Продвинутые → REST API.

Пошаговое решение: пример обновления цены и остатка товара по SKU через REST API

1. Получение ID товара по SKU

WooCommerce API не позволяет напрямую получить товар по SKU, поэтому сначала нужно получить все товары с фильтром по SKU:

GET /wp-json/wc/v3/products?sku=YOUR_SKU

Пример запроса с использованием PHP и библиотеки Guzzle:

use GuzzleHttp\Client;

$client = new Client(['base_uri' => 'https://example.com']);
$response = $client->request('GET', '/wp-json/wc/v3/products', [
    'auth' => ['consumer_key', 'consumer_secret'],
    'query' => ['sku' => 'YOUR_SKU']
]);
$products = json_decode($response->getBody(), true);
if (empty($products)) {
    throw new Exception('Товар с таким SKU не найден');
}
$product_id = $products[0]['id'];

2. Обновление цены и остатка товара

После получения $product_id можно обновить цену и количество на складе:

$update_data = [
    'regular_price' => '1500',
    'stock_quantity' => 10
];
$response = $client->request('PUT', "/wp-json/wc/v3/products/{$product_id}", [
    'auth' => ['consumer_key', 'consumer_secret'],
    'json' => $update_data
]);
$updated_product = json_decode($response->getBody(), true);

Проверка результата после внедрения

  • Проверьте в админке WooCommerce, что цена и остаток товара изменились.
  • Выполните повторный GET-запрос по SKU и убедитесь, что данные обновлены.
  • Для отладки запросов можно использовать инструменты типа Postman или curl с аналогичными параметрами.

Частые ошибки и как их исправить

  • Ошибка 401 Unauthorized: проверьте правильность Consumer Key и Secret, а также права пользователя, к которому они привязаны.
  • Ошибка 404 Not Found при запросе товара по SKU: убедитесь, что SKU существует и передан корректно в фильтре.
  • Ошибка 400 Bad Request при обновлении: проверьте формат передаваемых данных, например, цены должны быть строкой с числом.
  • Проблемы с SSL: если API запросы блокируются, настройте корректный SSL-сертификат на сервере WooCommerce.

Практические советы по безопасности и производительности

  • Используйте HTTPS для всех API запросов, чтобы защитить ключи и данные.
  • Ограничьте права API ключей только необходимыми для управления товарами.
  • Реализуйте кэширование результатов GET-запросов для снижения нагрузки на сервер.
  • При массовых обновлениях используйте батчевые запросы с задержками, чтобы избежать превышения лимитов сервера.

Сравнение вариантов автоматизации управления товарами в WooCommerce

МетодПлюсыМинусыКомпромисс
REST APIГибкость, масштабируемость, интеграция с внешним ПОТребует настройки, навыков программированияЛучше для регулярных и сложных задач
Импорт CSV через админкуПростота, подходит для разовых операцийРучной процесс, нет автоматизацииХорош для единичных обновлений
Плагины автоматизации (например WP All Import)Удобный интерфейс, множество функцийМожет нагружать сайт, платные версииБыстрый старт без кода
Как избежать проблем с виджетами в WordPress: практические советы
03.03.2026
Как автоматизировать удаление старых чрезвычайных постов в WordPress
06.04.2026
Как использовать WooCommerce REST API для управления заказами
23.06.2026
Как избежать ошибки 429 в WooCommerce при автообновлении корзины
14.07.2026
Как добавить динамическое изменение заголовка страницы в WordPress с примерами кода
09.04.2026