WooCommerce — это самый популярный плагин для создания интернет-магазина на WordPress. Если вы управляете магазином и хотите автоматизировать задачи, например, обновление товаров, обработку заказов или интеграцию с внешними сервисами, REST API WooCommerce — это мощный инструмент для разработчика.
Что такое WooCommerce REST API и зачем он нужен
WooCommerce REST API предоставляет программный интерфейс для взаимодействия с данными магазина — товарами, заказами, клиентами и т.д. Это HTTP API, которое позволяет получать, создавать, изменять и удалять данные из магазина с помощью стандартных HTTP методов (GET, POST, PUT, DELETE).
REST API полезен для автоматизации рутинных задач, интеграции с CRM, ERP, системами аналитики или мобильными приложениями. Вместо ручного управления через админку вы можете написать скрипты или плагины, которые управляют магазином программно.
Важно понимать, что для работы с API нужно настроить правильную аутентификацию, обычно с помощью ключей API (Consumer Key и Consumer Secret), которые создаются в настройках WooCommerce.
Настройка WooCommerce REST API на сайте WordPress
Для начала работы с WooCommerce REST API нужно:
- Установить и активировать плагин WooCommerce.
- Перейти в админке WordPress в WooCommerce → Настройки → Расширенные → REST API.
- Нажать «Добавить ключ» и указать пользователя, уровень доступа (например, «Чтение/Запись») и описание ключа.
- Сохранить и сохранить сгенерированные Consumer Key и Consumer Secret.
Эти ключи нужны для аутентификации запросов к API. Без них вы не сможете получить доступ к данным магазина.
Пример авторизованного запроса с помощью PHP и wpbook
Для работы с REST API можно использовать библиотеку Guzzle или стандартные функции PHP. Ниже пример простой функции wpbook_get_woocommerce_products на PHP с использованием cURL для получения списка товаров:
function wpbook_get_woocommerce_products() {
$url = 'https://your-site.ru/wp-json/wc/v3/products';
$consumer_key = 'ck_your_consumer_key';
$consumer_secret = 'cs_your_consumer_secret';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url . '?consumer_key=' . $consumer_key . '&consumer_secret=' . $consumer_secret);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}Эта функция отправляет GET-запрос к API и возвращает массив товаров. В реальном проекте ключи лучше хранить в настройках или переменных окружения.
Основные методы и примеры работы с товарами через API
WooCommerce API поддерживает полный CRUD (создание, чтение, обновление, удаление) для товаров.
Получение товаров
GET-запрос к /wp-json/wc/v3/products вернёт список товаров. Можно использовать параметры фильтрации, например, per_page, category, search и т.д.
Создание товара
Для создания товара отправляем POST-запрос с JSON-данными. Пример функции wpbook_create_product:
function wpbook_create_product($data) {
$url = 'https://your-site.ru/wp-json/wc/v3/products';
$consumer_key = 'ck_your_consumer_key';
$consumer_secret = 'cs_your_consumer_secret';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url . '?consumer_key=' . $consumer_key . '&consumer_secret=' . $consumer_secret);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$response = curl_exec($curl);
curl_close($curl);
return json_decode($response, true);
}Пример данных для создания простого товара:
{
"name": "Новый продукт",
"type": "simple",
"regular_price": "1500",
"description": "Описание продукта",
"short_description": "Краткое описание"
}Обновление товара
Для обновления товара используйте PUT-запрос к /wp-json/wc/v3/products/{id}. Пример:
function wpbook_update_product_price($product_id, $new_price) {
$url = 'https://your-site.ru/wp-json/wc/v3/products/' . $product_id;
$consumer_key = 'ck_your_consumer_key';
$consumer_secret = 'cs_your_consumer_secret';
$data = array('regular_price' => (string)$new_price);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url . '?consumer_key=' . $consumer_key . '&consumer_secret=' . $consumer_secret);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$response = curl_exec($curl);
curl_close($curl);
return json_decode($response, true);
}Работа с заказами через WooCommerce REST API
Заказы — важная часть магазина. Через API можно получать список заказов, менять статус, добавлять заметки и т.д.
Пример получения заказов:
function wpbook_get_orders($status = 'processing') {
$url = 'https://your-site.ru/wp-json/wc/v3/orders';
$consumer_key = 'ck_your_consumer_key';
$consumer_secret = 'cs_your_consumer_secret';
$params = '?status=' . $status . '&consumer_key=' . $consumer_key . '&consumer_secret=' . $consumer_secret;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url . $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}Можно автоматизировать обработку заказов, например, менять статус после оплаты или отправлять уведомления.
Плагины для удобной работы с WooCommerce REST API
Если писать код с нуля не хочется, используйте полезные плагины, расширяющие возможности API или упрощающие интеграции:
- WooCommerce API Manager — расширяет возможности API, добавляет поддержку цифровых продуктов и лицензий.
- WP OAuth Server — для более гибкой и безопасной аутентификации через OAuth 2.0.
- WooCommerce Zapier — интеграция с Zapier для автоматизации без программирования.
Эти инструменты помогут ускорить разработку и интеграцию.
Советы и лучшие практики при работе с WooCommerce REST API
При работе с WooCommerce REST API учитывайте следующие моменты:
- Безопасность: Никогда не храните ключи в открытом виде в коде, используйте переменные окружения или защищённые настройки.
- Ограничение запросов: WooCommerce может ограничивать частоту запросов, учитывайте это при написании скриптов, добавляйте паузы и обработку ошибок.
- Версии API: Используйте актуальную версию API, чтобы получать новые возможности и исправления.
- Логирование и отладка: Добавляйте логирование запросов и ответов для быстрого поиска проблем.
Следуя этим рекомендациям, вы создадите надёжные и удобные интеграции для вашего магазина.