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

WooCommerce — одна из самых популярных систем для создания интернет-магазинов на базе WordPress. Она предоставляет мощный REST API, который позволяет программно управлять товарами, заказами, клиентами и другими данными магазина. В этой статье подробно расскажу, как настроить и использовать WooCommerce REST API для управления товарами, приведу примеры запросов и кода на PHP.

Что такое WooCommerce REST API и зачем он нужен

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

Например, вы можете автоматически обновлять цены и наличие товаров из внешней системы, создавать новые товары при загрузке каталога, получать список заказов для аналитики или интегрировать магазин с CRM.

Для работы с WooCommerce REST API необходимо включить API в настройках WooCommerce и создать пару ключей (Consumer Key и Consumer Secret) с нужными правами доступа.

Как создать ключи API в WooCommerce

Для начала перейдите в админке WordPress в раздел WooCommerce > Настройки > Продвинутые > REST API.

  1. Нажмите кнопку Добавить ключ.
  2. Введите описание, например, "Управление товарами через API".
  3. Выберите пользователя, от имени которого будут выполняться запросы (обычно администратор).
  4. Выберите уровень доступа: Чтение/Запись.
  5. Создайте ключи — система выдаст Consumer Key и Consumer Secret, сохраните их.

Эти ключи понадобятся для аутентификации запросов.

Пример запроса: получение списка товаров с помощью PHP

Для работы с REST API можно использовать библиотеку Guzzle или стандартные функции PHP. Ниже пример на PHP с использованием cURL для получения списка товаров:

function wpreg_get_woocommerce_products() {
    $url = 'https://your-site.ru/wp-json/wc/v3/products';
    $consumer_key = 'ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
    $consumer_secret = 'cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

    $curl = curl_init();
    curl_setopt_array($curl, [
        CURLOPT_URL => $url . '?per_page=10',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_USERPWD => $consumer_key . ':' . $consumer_secret,
        CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
    ]);

    $response = curl_exec($curl);
    $error = curl_error($curl);
    curl_close($curl);

    if ($error) {
        return 'Ошибка запроса: ' . $error;
    }

    return json_decode($response, true);
}

Вызов функции вернёт массив с первыми 10 товарами магазина.

Создание нового товара через API

Чтобы создать товар, нужно отправить POST-запрос с нужными параметрами. Пример на PHP:

function wpreg_create_woocommerce_product() {
    $url = 'https://your-site.ru/wp-json/wc/v3/products';
    $consumer_key = 'ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
    $consumer_secret = 'cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

    $data = [
        'name' => 'Новый продукт WPReg',
        'type' => 'simple',
        'regular_price' => '499.99',
        'description' => 'Описание нового продукта через REST API',
        'categories' => [
            ['id' => 15] // ID категории
        ],
    ];

    $curl = curl_init();
    curl_setopt_array($curl, [
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_USERPWD => $consumer_key . ':' . $consumer_secret,
        CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => json_encode($data),
        CURLOPT_HTTPHEADER => [
            'Content-Type: application/json'
        ],
    ]);

    $response = curl_exec($curl);
    $error = curl_error($curl);
    curl_close($curl);

    if ($error) {
        return 'Ошибка запроса: ' . $error;
    }

    return json_decode($response, true);
}

После вызова функции товар появится в каталоге WooCommerce.

Обновление и удаление товара через API

Для обновления товара используется PUT-запрос к эндпоинту /wp-json/wc/v3/products/{id}. Например, чтобы изменить цену товара с ID 123:

function wpreg_update_woocommerce_product_price($product_id, $new_price) {
    $url = 'https://your-site.ru/wp-json/wc/v3/products/' . $product_id;
    $consumer_key = 'ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
    $consumer_secret = 'cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

    $data = ['regular_price' => (string)$new_price];

    $curl = curl_init();
    curl_setopt_array($curl, [
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_USERPWD => $consumer_key . ':' . $consumer_secret,
        CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
        CURLOPT_CUSTOMREQUEST => 'PUT',
        CURLOPT_POSTFIELDS => json_encode($data),
        CURLOPT_HTTPHEADER => [
            'Content-Type: application/json'
        ],
    ]);

    $response = curl_exec($curl);
    $error = curl_error($curl);
    curl_close($curl);

    if ($error) {
        return 'Ошибка запроса: ' . $error;
    }

    return json_decode($response, true);
}

Удаление товара происходит через DELETE-запрос по тому же URL:

function wpreg_delete_woocommerce_product($product_id) {
    $url = 'https://your-site.ru/wp-json/wc/v3/products/' . $product_id;
    $consumer_key = 'ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
    $consumer_secret = 'cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

    $curl = curl_init();
    curl_setopt_array($curl, [
        CURLOPT_URL => $url . '?force=true',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_USERPWD => $consumer_key . ':' . $consumer_secret,
        CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
        CURLOPT_CUSTOMREQUEST => 'DELETE',
    ]);

    $response = curl_exec($curl);
    $error = curl_error($curl);
    curl_close($curl);

    if ($error) {
        return 'Ошибка запроса: ' . $error;
    }

    return json_decode($response, true);
}

Полезные плагины для работы с WooCommerce REST API

Для удобства работы с API и тестирования запросов можно использовать плагины:

  • WP REST API Controller — позволяет управлять REST API, настраивать доступы и контролировать эндпоинты.
  • Clearfy Pro — помогает оптимизировать и защитить сайт, в том числе управлять API и отключать лишние эндпоинты.

Эти инструменты помогут сделать работу с API более безопасной и удобной.

Советы по безопасности при использовании WooCommerce REST API

Работа с API открывает дополнительные возможности, но и потенциальные риски. Чтобы обезопасить магазин:

  • Используйте ключи с минимальными нужными правами доступа.
  • Храните Consumer Key и Secret в безопасном месте, не публикуйте их в открытом доступе.
  • Ограничьте доступ к API по IP, если возможно.
  • Используйте HTTPS для всех запросов.
  • Регулярно проверяйте логи активности API в WooCommerce.

Заключение

WooCommerce REST API — мощный инструмент для автоматизации и интеграции интернет-магазина на WordPress. С помощью него можно полноценно управлять товарами, заказами и клиентами из внешних приложений или собственных скриптов. В статье представлены базовые примеры получения, создания, обновления и удаления товаров с использованием PHP и cURL. Для более сложных задач советую изучить официальную документацию WooCommerce REST API.

Для тестирования и удобства можно использовать плагины и сервисы, а также обратить внимание на безопасность при работе с ключами API.

Как автоматически удалять зависшие transienty в WordPress
01.04.2026
Как удалить зависшие задачи в WP-Cron WordPress
19.03.2026
Как исключить товары и варианты WooCommerce по атрибуту из корзины и оформления заказа
15.05.2026
Как удалить и избежать duplicate content в WordPress
02.01.2026
Как удалить неиспользуемые шорткоды в WordPress
23.01.2026