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

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

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

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

Для начала работы потребуется сгенерировать ключи API в админке WooCommerce (WooCommerce > Настройки > Дополнительно > REST API). Ключи дают права для доступа и определяют, что именно разрешено делать.

Практическое применение: получение и обновление заказов через REST API

Рассмотрим пример на PHP, как получить список заказов и изменить статус заказа на "выполнен".

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

    $args = [
        'headers' => [
            'Authorization' => 'Basic ' . base64_encode($consumer_key . ':' . $consumer_secret)
        ]
    ];

    $response = wp_remote_get($url, $args);
    if (is_wp_error($response)) {
        return false;
    }

    $orders = json_decode(wp_remote_retrieve_body($response), true);
    return $orders;
}

function wpsetup_update_order_status($order_id, $new_status) {
    $url = 'https://your-site.ru/wp-json/wc/v3/orders/' . $order_id;
    $consumer_key = 'ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
    $consumer_secret = 'cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

    $data = json_encode(['status' => $new_status]);

    $args = [
        'method'  => 'PUT',
        'headers' => [
            'Authorization' => 'Basic ' . base64_encode($consumer_key . ':' . $consumer_secret),
            'Content-Type'  => 'application/json'
        ],
        'body'    => $data
    ];

    $response = wp_remote_request($url, $args);
    if (is_wp_error($response)) {
        return false;
    }

    $order = json_decode(wp_remote_retrieve_body($response), true);
    return $order;
}

В этом коде мы используем встроенные функции WordPress для HTTP-запросов. Методы GET и PUT позволяют получить данные и обновить их соответственно.

Обработка ошибок и безопасность при работе с WooCommerce API

Очень важно правильно обрабатывать ошибки, которые могут возникнуть при работе с API — например, неверные ключи, отсутствие доступа, ошибки сети. В примерах выше проверяется наличие ошибок через is_wp_error().

Также не рекомендуется хранить ключи API в открытом виде в коде. Лучше использовать переменные среды или хранить их в wp-config.php с последующим получением через функции.

Ограничение прав доступа

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

Дополнительные возможности управления заказами через WooCommerce REST API

Кроме статусов заказов можно:

  • Добавлять и изменять метаданные заказа.
  • Изменять товары в заказе.
  • Работать с платежами и доставкой.

Для примера добавим метаданные к заказу:

function wpsetup_add_order_meta($order_id, $meta_key, $meta_value) {
    $url = 'https://your-site.ru/wp-json/wc/v3/orders/' . $order_id;
    $consumer_key = 'ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
    $consumer_secret = 'cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

    $data = json_encode([
        'meta_data' => [
            [
                'key' => $meta_key,
                'value' => $meta_value
            ]
        ]
    ]);

    $args = [
        'method'  => 'PUT',
        'headers' => [
            'Authorization' => 'Basic ' . base64_encode($consumer_key . ':' . $consumer_secret),
            'Content-Type'  => 'application/json'
        ],
        'body'    => $data
    ];

    $response = wp_remote_request($url, $args);
    if (is_wp_error($response)) {
        return false;
    }

    $order = json_decode(wp_remote_retrieve_body($response), true);
    return $order;
}

Пример вызова функции

Чтобы обновить статус заказа с ID 123 и добавить метаданные, можно использовать:

$order = wpsetup_update_order_status(123, 'completed');
wpsetup_add_order_meta(123, 'delivery_instructions', 'Позвонить за 10 минут до доставки');

Плагины для расширенного управления WooCommerce через API

Если хочется упростить работу с API, можно использовать плагины, например:

  • WooCommerce REST API Controller — расширяет возможности управления через API.
  • Clearfy Pro — для оптимизации и управления WooCommerce, в том числе через API.

Советы по тестированию и отладке

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

Также полезно вести логирование ошибок и запросов, чтобы видеть, что именно отправляется и возвращается.

Выводы и рекомендации

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

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

Как использовать WPRemark для управления комментариями в WordPress
23.03.2026
Использование WooCommerce REST API для управления заказами
09.04.2026
Как создать автоматическое резервное копирование WordPress с помощью плагинов и собственного кода
28.11.2025
Как правильно настроить переадресацию после смены домена в WordPress
24.04.2026
Запрет доступа к WooCommerce REST API для неавторизованных пользователей
11.01.2026