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

Диагностика задачи: зачем нужен автоматический импорт и обновление товаров

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

Подключение и аутентификация к WooCommerce REST API

Перед началом работы нужно получить ключи API в панели WooCommerce (WooCommerce > Settings > Advanced > REST API). Они нужны для безопасного доступа к данным магазина.

Для примера используем PHP с библиотекой GuzzleHTTP, но можно применять curl или другие HTTP-клиенты.

use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://yourshop.ru/wp-json/wc/v3/',
    'auth' => ['consumer_key', 'consumer_secret'],
]);

Пример: создание нового товара через REST API

Для создания товара отправляем POST-запрос на /products с JSON-данными.

$data = [
    'name' => 'Новый продукт',
    'type' => 'simple',
    'regular_price' => '1500',
    'description' => 'Описание товара',
    'categories' => [ ['id' => 15] ],
    'images' => [ ['src' => 'https://example.com/image.jpg'] ]
];

$response = $client->post('products', [
    'json' => $data
]);

$product = json_decode($response->getBody(), true);
echo 'Создан товар с ID: ' . $product['id'];

Пример: обновление существующего товара

Чтобы обновить товар, нужно знать его ID и отправить PUT-запрос.

$product_id = 123;
$update_data = [
    'regular_price' => '1400',
    'description' => 'Обновленное описание'
];

$response = $client->put("products/{$product_id}", [
    'json' => $update_data
]);

$product = json_decode($response->getBody(), true);
echo 'Обновлен товар: ' . $product['name'];

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

  • Зайдите в админку WooCommerce и проверьте наличие созданного/обновленного товара.
  • Отправьте GET-запрос к API /products/{id} для проверки полей.
  • Убедитесь, что поля цены, описания и изображений соответствуют ожидаемым.

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

  • Ошибка 401 Unauthorized: Проверьте правильность ключей и права доступа в WooCommerce.
  • Ошибка 400 Bad Request: Проблемы с форматированием JSON или обязательными полями. Проверяйте структуру данных.
  • Отсутствие изображения: URL должен быть публично доступен, иначе загрузка не пройдет.
  • Обновление не работает: Проверьте, что передаете правильный ID товара и используете PUT, а не POST.

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

  • Используйте HTTPS для всех запросов к API.
  • Ограничьте права ключей API только нужными возможностями (например, только на чтение и запись товаров).
  • Реализуйте обработку ошибок и повторные попытки при неудачах, чтобы избежать потери данных.
  • Для массовых операций используйте пакетную обработку, чтобы снизить нагрузку на сервер (например, делайте запросы партиями по 50 товаров).

Чек-лист для успешного импорта товаров через REST API WooCommerce

  • Получены и проверены ключи API с нужными правами.
  • Используется правильный endpoint (https://yourshop.ru/wp-json/wc/v3/products).
  • Данные товаров валидны и содержат обязательные поля (name, type, regular_price).
  • Изображения доступны по публичным URL.
  • При обновлении указан правильный ID товара.
  • Обрабатываются ошибки API и логируются для отладки.
  • Проверены результаты в админке и через API-запросы.

Сравнение способов импорта: плагин vs собственный код через REST API

МетодПреимуществаНедостатки
Плагин импортаПростота настройки, визуальный интерфейс, готовые решенияНагрузка на сайт, ограниченная гибкость, возможные конфликты
REST API + собственный кодМаксимальная гибкость, автоматизация, интеграция с внешними системамиТребует навыков программирования, настройка сложнее
Как правильно отключить AJAX в WooCommerce без конфликтов
26.04.2026
Очистка базы данных WooCommerce от старых заказов через пользовательское поле meta
23.04.2026
Как удалить заказ WooCommerce без удаления пользователя
17.06.2026
Автоматическое удаление неактивных корзин WooCommerce
01.07.2026
Как использовать WP-Cron для задач автоматизации в WordPress
05.12.2025