Автоматическое создание и обновление заказов через REST API WordPress

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

Что такое REST API в WordPress и WooCommerce

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

Для работы с заказами через REST API WooCommerce используется маршруты вида /wp-json/wc/v3/orders. Для доступа необходимы ключи API с нужными правами.

Настройка доступа к REST API WooCommerce

Чтобы начать работу, нужно сгенерировать ключи API в WooCommerce:

  • В админке WordPress перейдите в WooCommerce → Настройки → Продвинутые → REST API.
  • Добавьте новый ключ, укажите пользователя и права (чтение/запись).
  • Сохраните ключи Consumer Key и Consumer Secret.

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

Пример настройки HTTP-клиента с авторизацией

function wporder_request($method, $endpoint, $data = null) {
    $url = 'https://example.com/wp-json/wc/v3/' . $endpoint;
    $consumer_key = 'ck_xxx';
    $consumer_secret = 'cs_xxx';

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

    if ($data) {
        $args['body'] = json_encode($data);
    }

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

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

Автоматическое создание заказа через REST API

Создание заказа требует передачи данных о покупателе, товарах, оплате и доставке. Ниже пример запроса для создания простого заказа с одним товаром:

$order_data = [
    'payment_method' => 'bacs',
    'payment_method_title' => 'Direct Bank Transfer',
    'set_paid' => true,
    'billing' => [
        'first_name' => 'Иван',
        'last_name' => 'Иванов',
        'address_1' => 'ул. Пушкина, д.10',
        'city' => 'Москва',
        'postcode' => '101000',
        'country' => 'RU',
        'email' => 'ivan@example.com',
        'phone' => '+7 999 123 45 67',
    ],
    'shipping' => [
        'first_name' => 'Иван',
        'last_name' => 'Иванов',
        'address_1' => 'ул. Пушкина, д.10',
        'city' => 'Москва',
        'postcode' => '101000',
        'country' => 'RU',
    ],
    'line_items' => [
        [
            'product_id' => 123,
            'quantity' => 2,
        ],
    ],
];

$response = wporder_request('POST', 'orders', $order_data);
if ($response) {
    echo 'Заказ создан, ID: ' . $response['id'];
} else {
    echo 'Ошибка создания заказа';
}

Обратите внимание, что product_id должен соответствовать ID товара в вашем магазине.

Обновление заказа через REST API

Для обновления данных заказа (например, изменение статуса, добавление заметок или изменение адреса) используется метод PUT к эндпоинту с ID заказа.

Пример обновления статуса заказа на "Выполнен":

$update_data = [
    'status' => 'completed',
];

$response = wporder_request('PUT', 'orders/456', $update_data);
if ($response) {
    echo 'Заказ обновлен, новый статус: ' . $response['status'];
} else {
    echo 'Ошибка обновления заказа';
}

Обновление пользовательских полей и метаданных заказа

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

$update_meta = [
    'meta_data' => [
        [
            'key' => '_custom_field',
            'value' => 'Новое значение',
        ],
    ],
];

wporder_request('PUT', 'orders/456', $update_meta);

Рекомендации по плагинам для расширения REST API

Для упрощения работы с REST API, особенно если нужно добавить собственные поля или расширить функционал, рекомендуются плагины:

  • WooCommerce REST API Manager — расширяет стандартный API, добавляет новые эндпоинты.
  • Clearfy Pro — оптимизирует WooCommerce и позволяет гибко настроить API и безопасность.
  • WPCommunity — если нужен обмен заказами в рамках сообщества или партнерских систем.

Эти плагины можно найти на WPSHOP.RU.

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

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

  • Используйте HTTPS для всех запросов.
  • Ограничьте права API-ключей только необходимыми действиями.
  • Реализуйте проверку входящих данных и обработку ошибок.
  • Для больших объемов заказов используйте пакетную обработку и кэширование.

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

Выводы

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

Не забывайте тщательно тестировать все сценарии и следить за безопасностью API.

Создание автоматических отчетов по проблемам и ошибкам в WordPress с примерами кода
07.01.2026
Оптимизация обработки заказов в WordPress: лучшие практики и примеры кода
07.11.2025
Автоматическое создание заказов через REST API в WordPress
15.02.2026
WooCommerce: автоматическое возврат денежных средств по заказу с примерами кода
27.05.2026
Автоматическое создание и отправка счетов (invoice) в WordPress при оформлении заказа
22.12.2025