wp-kurs.ru wordpress WP-Kurs

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

Диагностика задачи: зачем автоматизировать учет заказов через REST API WooCommerce

В интернет-магазинах на WooCommerce нередко возникает потребность интегрировать систему с внешними сервисами: CRM, складским учетом, ERP или BI-аналитикой. Ручной экспорт заказов неудобен, а плагины могут не покрывать специфические задачи. В таких случаях REST API WooCommerce позволяет программно получать и обрабатывать данные о заказах в реальном времени.

Что такое WooCommerce REST API и как его включить

WooCommerce REST API — это набор HTTP-эндпоинтов, которые предоставляют доступ к данным магазина (заказы, товары, клиенты и т.д.) в формате JSON. API поддерживает методы GET, POST, PUT, DELETE для разных сущностей.

Для работы с API необходимо включить его в настройках WooCommerce и создать ключи доступа:

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

Пошаговое решение: получение заказов и фильтрация по статусу

Для примера возьмем сценарий: нужно получить все «завершенные» заказы за последние 7 дней и передать их в учетную систему.

Шаг 1. Установка библиотеки для работы с API (PHP пример)

Рекомендуется использовать официальный пакет woocommerce/woocommerce-rest-api. Установите с помощью Composer:

composer require automattic/woocommerce

Шаг 2. Пример кода для получения заказов

use Automattic\WooCommerce\Client;

$woocommerce = new Client(
    'https://example.com', // URL сайта
    'consumer_key',       // Consumer Key
    'consumer_secret',    // Consumer Secret
    [
        'version' => 'wc/v3',
        'query_string_auth' => true // если сервер не поддерживает Basic Auth
    ]
);

// Получение заказов со статусом completed за последние 7 дней
$since = date('Y-m-d', strtotime('-7 days'));

try {
    $orders = $woocommerce->get('orders', [
        'status' => 'completed',
        'after' => $since
    ]);

    foreach ($orders as $order) {
        // Обработка каждого заказа
        echo 'Заказ #' . $order->id . ' от ' . $order->date_created . "\n";
    }
} catch (Exception $e) {
    echo 'Ошибка API: ' . $e->getMessage();
}

Как проверить, что интеграция работает корректно

  • Запустите скрипт и убедитесь, что выводятся заказы с нужным статусом и датой.
  • Проверьте HTTP-коды ответов (200 — OK, ошибки 401/403 — проблемы с ключами).
  • В логах WooCommerce и сервера проверьте отсутствие ошибок.
  • Если интеграция с CRM или другой системой — проверьте корректное получение данных на стороне получателя.

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

  • Неверные ключи или права доступа. Ошибка 401 Unauthorized. Проверьте права пользователя, создавшего ключ, и корректность Consumer Key/Secret.
  • Проблемы с аутентификацией. Если сервер не поддерживает Basic Auth, используйте параметр query_string_auth=true в клиенте.
  • Ошибки формата даты. Параметр after должен быть в формате ISO 8601 или 'Y-m-d'.
  • Пагинация. По умолчанию API возвращает максимум 10 записей. Для получения более 10 заказов используйте параметры per_page и page.

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

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

Сравнение методов интеграции заказов WooCommerce — REST API vs CSV экспорт

МетодПреимуществаНедостатки
REST APIАвтоматизация, актуальные данные, гибкая фильтрацияТребует программирования, настройка безопасности
CSV экспортПростота, не требует программированияРучной процесс или сложные скрипты для импорта, устаревшие данные
×
Делай сайт лучше!!

-20% на премиум темы и плагины

Использовать скидку ⋙