Что такое WooCommerce REST API и зачем он нужен
WooCommerce REST API — это мощный инструмент, позволяющий разработчикам и администраторам сайтов на WordPress получать и изменять данные интернет-магазина программно. Особенно полезен он для автоматизации обработки заказов, интеграции с внешними сервисами и создания кастомных панелей управления. На wp-host.ru мы часто сталкиваемся с задачей интеграции WooCommerce с CRM-системами и ERP, а также с необходимостью создавать собственные скрипты для массового управления заказами.
REST API предоставляет доступ к ключевым сущностям WooCommerce: заказам, продуктам, клиентам, платежам и т.д. Это значит, что можно не заходить в админку, а делать всё через HTTP-запросы, что ускоряет работу и упрощает интеграцию.
Для работы с API необходимы ключи доступа (Consumer Key и Consumer Secret), которые создаются в настройках WooCommerce. Они обеспечивают безопасность и позволяют ограничивать права доступа.
Создание ключей доступа API в WooCommerce
Для начала работы с WooCommerce REST API нужно сгенерировать пару ключей:
- В панели администратора WordPress перейдите в WooCommerce → Настройки → Дополнительно → REST API.
- Нажмите «Добавить ключ».
- Введите описание, выберите пользователя и права доступа (чтение, запись или чтение и запись).
- Сохраните ключи, которые появятся на экране — они больше не будут отображаться.
Эти ключи используются для аутентификации при отправке запросов к API.
Пример запроса для получения списка заказов
Покажем, как с помощью PHP и библиотеки cURL получить последние 10 заказов.
function wp_host_get_orders() {
$url = 'https://your-site.ru/wp-json/wc/v3/orders?per_page=10';
$consumer_key = 'ck_xxxxxxx';
$consumer_secret = 'cs_xxxxxxx';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERPWD, $consumer_key . ':' . $consumer_secret);
$response = curl_exec($curl);
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($httpcode === 200) {
return json_decode($response, true);
} else {
return null;
}
}Эта функция возвращает массив с информацией о заказах, который затем можно обработать и вывести в удобном формате.
Обновление статуса заказа через API
Часто возникает необходимость автоматически менять статус заказов, например, после подтверждения оплаты во внешней системе. Рассмотрим пример, как изменить статус заказа на «completed».
function wp_host_update_order_status($order_id, $new_status = 'completed') {
$url = 'https://your-site.ru/wp-json/wc/v3/orders/' . $order_id;
$consumer_key = 'ck_xxxxxxx';
$consumer_secret = 'cs_xxxxxxx';
$data = json_encode(['status' => $new_status]);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERPWD, $consumer_key . ':' . $consumer_secret);
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($curl);
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
return $httpcode === 200 ? json_decode($response, true) : null;
}Этот код отправляет PUT-запрос с новым статусом. При успешном обновлении вернётся обновлённый объект заказа.
Фильтрация заказов по дате и статусу через API
API позволяет удобно фильтровать заказы, например, получать только новые или заказы за определённый период. В запросе можно использовать параметры status, after и before.
Пример запроса для получения новых заказов за последние 7 дней:
$url = 'https://your-site.ru/wp-json/wc/v3/orders?status=processing&after=' . date('Y-m-d', strtotime('-7 days'));Такой подход позволяет создавать отчёты и триггеры на стороне сервера, что полезно для автоматизации.
Использование плагина WP-Host API Helper для упрощения работы с WooCommerce API
На wp-host.ru мы разработали плагин WP-Host API Helper, который облегчает работу с WooCommerce REST API. Он оборачивает стандартные запросы в удобные функции с логированием и обработкой ошибок.
Пример использования:
use WpHostApiHelper\WooCommerceApi;
$api = new WooCommerceApi('ck_xxxxxxx', 'cs_xxxxxxx', 'https://your-site.ru');
$orders = $api->getOrders(['per_page' => 5, 'status' => 'pending']);
foreach ($orders as $order) {
echo 'Заказ #' . $order['id'] . ' на сумму ' . $order['total'] . ' руб.<br>';
}Плагин автоматизирует авторизацию, построение URL и обработку ответов, экономя время.
Безопасность и ограничения при работе с WooCommerce REST API
Важно помнить, что ключи доступа дают существенные права, поэтому их нельзя раскрывать публично. Используйте HTTPS, чтобы данные не перехватывались. Также можно ограничивать права ключей только чтением или записью в зависимости от задачи.
WooCommerce имеет ограничения по количеству запросов (rate limits), чтобы защитить сервер от перегрузки. При интенсивной работе стоит реализовывать кэширование результатов и обрабатывать ошибки с повтором.
Также некоторые хостинг-провайдеры (например, wp-host.ru) могут иметь дополнительные рекомендации по конфигурации сервера и безопасности при использовании REST API — обязательно ознакомьтесь с ними.
Заключение: практические советы по работе с WooCommerce REST API
Использование WooCommerce REST API открывает большие возможности для автоматизации и интеграции. Начинайте с простых GET-запросов, постепенно добавляя обновление и создание данных. Не забывайте обрабатывать ошибки и логировать важные операции.
Интеграция с CRM, автоматическое обновление статусов заказов, генерация отчетов — всё это становится проще с REST API. На wp-host.ru мы рекомендуем использовать готовые библиотеки и наши инструменты для ускорения разработки и повышения надежности.
Если вы хотите получить пример плагина или скрипта с конкретным кейсом — обращайтесь, мы поможем реализовать задачи любой сложности.