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

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

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

Диагностика: как проверить работоспособность WooCommerce REST API

Перед началом работы нужно убедиться, что REST API включен и корректно настроен:

  • Включён ли REST API в WooCommerce (начиная с версии 2.6 он включён по умолчанию).
  • Создана ли пара ключей API с необходимыми правами (например, чтение/запись заказов).
  • Есть ли доступ к URL https://example.com/wp-json/wc/v3/orders с использованием сгенерированных ключей.

Проверка запроса через curl:

curl https://example.com/wp-json/wc/v3/orders \
  -u consumer_key:consumer_secret

Если получаете массив заказов в формате JSON — API работает.

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

Пример запроса на PHP с использованием библиотеки GuzzleHTTP (рекомендуется для удобства):

require 'vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://example.com/',
    'auth' => ['consumer_key', 'consumer_secret']
]);

$response = $client->get('wp-json/wc/v3/orders', [
    'query' => ['per_page' => 5, 'status' => 'processing']
]);

$orders = json_decode($response->getBody(), true);

foreach ($orders as $order) {
    echo "Заказ #" . $order['id'] . " на сумму " . $order['total'] . "\n";
}

Обработка ошибок и диагностические советы

Если запрос возвращает ошибку 401, проверьте правильность ключей. Ошибка 403 — недостаточно прав, убедитесь, что ключам назначены права "Read/Write". Ошибка 404 может означать, что REST API отключён плагином безопасности или сервером.

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

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

$orderData = [
    'payment_method' => 'bacs',
    'payment_method_title' => 'Direct Bank Transfer',
    'set_paid' => true,
    'billing' => [
        'first_name' => 'Иван',
        'last_name' => 'Иванов',
        'email' => 'ivan@example.com',
        'phone' => '1234567890',
        'address_1' => 'ул. Примерная, д.1',
        'city' => 'Москва',
        'postcode' => '123456',
        'country' => 'RU'
    ],
    'line_items' => [
        [
            'product_id' => 93,
            'quantity' => 1
        ]
    ]
];

$response = $client->post('wp-json/wc/v3/orders', [
    'json' => $orderData
]);

$newOrder = json_decode($response->getBody(), true);
echo "Создан заказ #" . $newOrder['id'];

Для обновления заказа (например, изменение статуса):

$updateData = ['status' => 'completed'];
$response = $client->put('wp-json/wc/v3/orders/123', [
    'json' => $updateData
]);
$updatedOrder = json_decode($response->getBody(), true);
echo "Статус заказа изменён на " . $updatedOrder['status'];

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

Проверить, что изменения через API работают:

  • В админке WooCommerce обновить страницу заказов и убедиться, что новые или изменённые заказы отображаются.
  • Отправить GET-запрос для конкретного заказа и проверить поля JSON.
  • Использовать инструменты отладки (Postman, Insomnia) для тестирования запросов с ключами.

Частые ошибки при работе с WooCommerce REST API и их решение

  • Ошибка аутентификации 401: Неверные или устаревшие ключи API, проверьте и сгенерируйте заново.
  • Ошибка 403 Forbidden: Ограничения на сервере или недостаточные права ключа, проверьте статус ключа и настройки безопасности (например, .htaccess, плагины защиты).
  • Ошибка 400 Bad Request: Неверный формат данных, проверяйте JSON и обязательные поля.
  • Ошибка 404 Not Found: REST API отключён, проверьте настройки плагинов безопасности и разрешения сервера.
  • Проблемы с CORS при запросах из браузера: Добавьте заголовки CORS на сервере или используйте серверный прокси.

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

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

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

МетодПреимуществаНедостатки
Плагины управления заказамиПростота установки, готовый функционал, поддержка UIМогут замедлять сайт, ограниченная гибкость
WooCommerce REST APIГибкость, интеграция с внешними системами, автоматизацияТребует навыков программирования, настройка прав доступа
Кастомный PHP-код в теме/плагинеМаксимальный контроль, можно оптимизировать под задачиТребуется опыт, сложнее сопровождать
Как отключить автозаполнение форм в WordPress
05.04.2026
Как использовать WooCommerce REST API для массового изменения заказов
20.06.2026
Как отключить отправку email уведомлений в WordPress без плагинов
23.12.2025
Как удалить неиспользуемые meta данные в WordPress без плагинов
06.02.2026
Как удалить старые псевдоверсии постов в WordPress: эффективные методы и примеры
13.04.2026

Хотите научиться создавать сайты и зарабатывать на этом от 30 000 рублей в месяц?

Записаться на курс сейчас