Как разрешить и использовать WooCommerce REST API в WordPress

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

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

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

Основные преимущества использования REST API:

  • Автоматизация управления товарами, заказами и клиентами.
  • Интеграция с внешними системами в реальном времени.
  • Возможность создания кастомных административных панелей и мобильных приложений.

Но для начала нужно убедиться, что REST API активирован и настроен правильно.

Как разрешить WooCommerce REST API в WordPress

По умолчанию REST API в WooCommerce включён, но для полноценной работы требуется создать API-ключи и настроить права доступа.

Создание API ключей в WooCommerce

Для генерации ключей:

  1. Зайдите в админ-панель WordPress.
  2. Перейдите в WooCommerce → Настройки → Дополнительно → REST API.
  3. Нажмите «Добавить ключ».
  4. Введите описание ключа (например, "Интеграция с CRM"), выберите пользователя и права доступа (чтение, запись или чтение/запись).
  5. Нажмите «Создать ключ», после чего сохраните сгенерированные Consumer Key и Consumer Secret — они нужны для аутентификации.

Важно: не передавайте ключи третьим лицам и храните их в безопасности.

Настройка прав доступа и безопасность

Рекомендуется выдавать минимально необходимые права. Например, если нужно только читать данные заказов, выберите права «Чтение». Для изменения данных — «Запись» или «Чтение/запись».

Также можно ограничить доступ по IP с помощью настроек сервера или плагинов безопасности для снижения риска несанкционированного доступа.

Примеры использования WooCommerce REST API с PHP

Далее рассмотрим примеры простейших запросов к WooCommerce REST API на PHP с использованием библиотеки wc-api-php. Если её нет, установите через Composer:

composer require automattic/woocommerce

Пример инициализации клиента и получения списка товаров:

<?php
require __DIR__ . '/vendor/autoload.php';
use Automattic\WooCommerce\Client;

$woocommerce = new Client(
    'https://wpupload.ru', // URL вашего магазина
    'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // Consumer Key
    'cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // Consumer Secret
    [
        'version' => 'wc/v3',
        'query_string_auth' => true // Если требуется передавать ключи в URL
    ]
);

try {
    $products = $woocommerce->get('products');
    foreach ($products as $product) {
        echo 'ID: ' . $product->id . ' - ' . $product->name . "\n";
    }
} catch (Exception $e) {
    echo 'Ошибка: ' . $e->getMessage();
}
?>

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

Пример кода для создания товара:

$data = [
    'name' => 'Новый продукт от WPUpload',
    'type' => 'simple',
    'regular_price' => '299.99',
    'description' => 'Описание продукта',
    'short_description' => 'Краткое описание'
];

try {
    $new_product = $woocommerce->post('products', $data);
    echo 'Создан продукт с ID: ' . $new_product->id;
} catch (Exception $e) {
    echo 'Ошибка при создании продукта: ' . $e->getMessage();
}

Расширение функционала: создание кастомных REST API эндпоинтов в WordPress

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

Пример создания собственного эндпоинта

Добавьте следующий код в файл functions.php вашей темы или в кастомный плагин:

add_action('rest_api_init', function () {
    register_rest_route('wpupload/v1', '/custom-orders/', [
        'methods' => 'GET',
        'callback' => 'wpupload_get_custom_orders',
        'permission_callback' => function () {
            return current_user_can('read');
        },
    ]);
});

function wpupload_get_custom_orders(WP_REST_Request $request) {
    $args = [
        'limit' => 10,
        'status' => 'completed'
    ];
    $orders = wc_get_orders($args);
    $result = [];
    foreach ($orders as $order) {
        $result[] = [
            'id' => $order->get_id(),
            'total' => $order->get_total(),
            'date' => $order->get_date_created()->date('Y-m-d H:i:s')
        ];
    }
    return rest_ensure_response($result);
}

Теперь запрос GET https://wpupload.ru/wp-json/wpupload/v1/custom-orders/ вернёт последние 10 завершённых заказов.

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

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

  • WooCommerce REST API Manager — позволяет управлять ключами и ограничивать доступ.
  • WP OAuth Server — для настройки авторизации по OAuth 2.0, если нужен высокий уровень безопасности.
  • Postman — не плагин, а инструмент для тестирования API-запросов вручную.

Эти инструменты помогут быстрее и безопаснее работать с API при интеграциях и разработке.

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

При работе с API часто возникают вопросы по авторизации, правам доступа и форматам данных. Вот несколько рекомендаций:

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

Соблюдение этих правил поможет избежать большинства ошибок и сделать интеграции стабильными.

Итоги

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

Используйте примеры из статьи как основу и адаптируйте под свои задачи для достижения наилучших результатов.

Как разрешить и защитить доступ к загруженным файлам в WooCommerce
03.05.2026
Не работает загрузка файлов в WordPress при ограничениях сервера: как исправить
17.12.2025
Как защитить загружаемые файлы WordPress от неавторизованного доступа
12.04.2026
Автоматическая очистка старого медиаконтента в WordPress
13.03.2026
Как удалить или скрыть файлы из медиабиблиотеки WordPress
27.01.2026

wp upload - это директория в WP для загрузки файлов. Подробнее про загрузку файлов в админку можно почитать на этой странице.