WooCommerce — одна из самых популярных систем для создания интернет-магазинов на базе WordPress. Она предоставляет мощный REST API, который позволяет программно управлять товарами, заказами, клиентами и другими данными магазина. В этой статье подробно расскажу, как настроить и использовать WooCommerce REST API для управления товарами, приведу примеры запросов и кода на PHP.
Что такое WooCommerce REST API и зачем он нужен
REST API — это интерфейс взаимодействия с данными WooCommerce через HTTP-запросы. С его помощью можно создавать, изменять, удалять и получать данные магазина без необходимости заходить в админку. Это полезно для интеграций с внешними сервисами, мобильными приложениями, автоматизации процесса управления товарами и аналитики.
Например, вы можете автоматически обновлять цены и наличие товаров из внешней системы, создавать новые товары при загрузке каталога, получать список заказов для аналитики или интегрировать магазин с CRM.
Для работы с WooCommerce REST API необходимо включить API в настройках WooCommerce и создать пару ключей (Consumer Key и Consumer Secret) с нужными правами доступа.
Как создать ключи API в WooCommerce
Для начала перейдите в админке WordPress в раздел WooCommerce > Настройки > Продвинутые > REST API.
- Нажмите кнопку Добавить ключ.
- Введите описание, например, "Управление товарами через API".
- Выберите пользователя, от имени которого будут выполняться запросы (обычно администратор).
- Выберите уровень доступа: Чтение/Запись.
- Создайте ключи — система выдаст Consumer Key и Consumer Secret, сохраните их.
Эти ключи понадобятся для аутентификации запросов.
Пример запроса: получение списка товаров с помощью PHP
Для работы с REST API можно использовать библиотеку Guzzle или стандартные функции PHP. Ниже пример на PHP с использованием cURL для получения списка товаров:
function wpreg_get_woocommerce_products() {
$url = 'https://your-site.ru/wp-json/wc/v3/products';
$consumer_key = 'ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$consumer_secret = 'cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url . '?per_page=10',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => $consumer_key . ':' . $consumer_secret,
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
]);
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
return 'Ошибка запроса: ' . $error;
}
return json_decode($response, true);
}
Вызов функции вернёт массив с первыми 10 товарами магазина.
Создание нового товара через API
Чтобы создать товар, нужно отправить POST-запрос с нужными параметрами. Пример на PHP:
function wpreg_create_woocommerce_product() {
$url = 'https://your-site.ru/wp-json/wc/v3/products';
$consumer_key = 'ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$consumer_secret = 'cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$data = [
'name' => 'Новый продукт WPReg',
'type' => 'simple',
'regular_price' => '499.99',
'description' => 'Описание нового продукта через REST API',
'categories' => [
['id' => 15] // ID категории
],
];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => $consumer_key . ':' . $consumer_secret,
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => [
'Content-Type: application/json'
],
]);
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
return 'Ошибка запроса: ' . $error;
}
return json_decode($response, true);
}
После вызова функции товар появится в каталоге WooCommerce.
Обновление и удаление товара через API
Для обновления товара используется PUT-запрос к эндпоинту /wp-json/wc/v3/products/{id}. Например, чтобы изменить цену товара с ID 123:
function wpreg_update_woocommerce_product_price($product_id, $new_price) {
$url = 'https://your-site.ru/wp-json/wc/v3/products/' . $product_id;
$consumer_key = 'ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$consumer_secret = 'cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$data = ['regular_price' => (string)$new_price];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => $consumer_key . ':' . $consumer_secret,
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => [
'Content-Type: application/json'
],
]);
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
return 'Ошибка запроса: ' . $error;
}
return json_decode($response, true);
}
Удаление товара происходит через DELETE-запрос по тому же URL:
function wpreg_delete_woocommerce_product($product_id) {
$url = 'https://your-site.ru/wp-json/wc/v3/products/' . $product_id;
$consumer_key = 'ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$consumer_secret = 'cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url . '?force=true',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => $consumer_key . ':' . $consumer_secret,
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_CUSTOMREQUEST => 'DELETE',
]);
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
return 'Ошибка запроса: ' . $error;
}
return json_decode($response, true);
}
Полезные плагины для работы с WooCommerce REST API
Для удобства работы с API и тестирования запросов можно использовать плагины:
- WP REST API Controller — позволяет управлять REST API, настраивать доступы и контролировать эндпоинты.
- Clearfy Pro — помогает оптимизировать и защитить сайт, в том числе управлять API и отключать лишние эндпоинты.
Эти инструменты помогут сделать работу с API более безопасной и удобной.
Советы по безопасности при использовании WooCommerce REST API
Работа с API открывает дополнительные возможности, но и потенциальные риски. Чтобы обезопасить магазин:
- Используйте ключи с минимальными нужными правами доступа.
- Храните Consumer Key и Secret в безопасном месте, не публикуйте их в открытом доступе.
- Ограничьте доступ к API по IP, если возможно.
- Используйте HTTPS для всех запросов.
- Регулярно проверяйте логи активности API в WooCommerce.
Заключение
WooCommerce REST API — мощный инструмент для автоматизации и интеграции интернет-магазина на WordPress. С помощью него можно полноценно управлять товарами, заказами и клиентами из внешних приложений или собственных скриптов. В статье представлены базовые примеры получения, создания, обновления и удаления товаров с использованием PHP и cURL. Для более сложных задач советую изучить официальную документацию WooCommerce REST API.
Для тестирования и удобства можно использовать плагины и сервисы, а также обратить внимание на безопасность при работе с ключами API.