Публичный REST API WooCommerce (Store API)
Платформа WooCommerce предоставляет несколько способов взаимодействия с данными магазина через API. Наиболее важные из них:
- Store API (публичный REST API)
- Классический WooCommerce REST API (непубличный)
В этой статье разберём:
- что такое Store API
- как он работает
- примеры запросов
- чем он отличается от приватного REST API
Что такое Store API
Store API — это публичный REST API, встроенный в WooCommerce (начиная с блоков Cart/Checkout), который позволяет получать данные магазина без аутентификации.
📌 Основная идея:
Store API предназначен для клиентской части (frontend), а не для управления магазином.
Он используется в:
- React/Vue фронтендах
- headless-commerce решениях
- WooCommerce Blocks (новая корзина и оформление заказа)
Основные характеристики
- ✅ Не требует API-ключей
- ✅ Работает через cookie/сессию пользователя
- ✅ Ограничен только безопасными операциями
- ❌ Не даёт доступ к админским данным
Базовый URL
Store API доступен по следующему пути:
/wp-json/wc/store/
Пример:
https://example.com/wp-json/wc/store/products
Основные эндпоинты Store API
Получение товаров
Запрос
GET /wp-json/wc/store/products
Пример ответа
[
{
"id": 123,
"name": "T-shirt",
"price": "20.00",
"images": [
{
"src": "https://example.com/image.jpg"
}
]
}
]
Фильтрация
GET /wp-json/wc/store/products?search=shirt&min_price=1000
Получение одного товара
GET /wp-json/wc/store/products/123
Работа с корзиной
Получить корзину
GET /wp-json/wc/store/cart
Добавить товар
POST /wp-json/wc/store/cart/add-item
Пример body:
{
"id": 123,
"quantity": 2
}
Оформление заказа
POST /wp-json/wc/store/checkout
📌 Здесь используется сессия пользователя, а не API-ключи.
Как работает аутентификация
Store API использует:
- cookies
- nonce (в WordPress)
- сессии пользователя
📌 Это значит:
- пользователь «идентифицируется» как браузерный клиент
- API нельзя использовать для админских задач
Непубличный REST API WooCommerce
Теперь рассмотрим второй тип API.
Что это такое
Классический WooCommerce REST API:
/wp-json/wc/v3/
Пример:
GET /wp-json/wc/v3/products
Особенности
- ❗ Требует API-ключи (consumer key + secret)
- ❗ Даёт полный доступ к данным магазина
- ❗ Используется для интеграций
Пример запроса
GET /wp-json/wc/v3/orders
Authorization: Basic base64(consumer_key:consumer_secret)
Возможности
С помощью приватного API можно:
- управлять товарами
- получать заказы
- создавать клиентов
- управлять доставкой и налогами
Ключевые отличия Store API и REST API
| Характеристика | Store API | REST API (wc/v3) |
|---|---|---|
| Доступ | Публичный | Приватный |
| Аутентификация | Cookie / Session | API ключи |
| Назначение | Frontend | Backend / интеграции |
| Работа с заказами | Только checkout | Полный контроль |
| Безопасность | Ограниченная | Полный доступ |
| CRUD операции | Ограничены | Полные |
Архитектурная разница
Store API
- ориентирован на UX
- безопасен для клиента
- не даёт критических данных
REST API
- ориентирован на интеграции
- используется сервер-сервер
- требует строгой защиты
Расширенное сравнение Store API и WooCommerce REST API
| Критерий | Store API (публичный) | REST API WooCommerce (wc/v3, приватный) |
|---|---|---|
| 📌 Назначение | Работа фронтенда (витрина, корзина, checkout) | Интеграции, администрирование |
| 🌐 Базовый URL | /wp-json/wc/store/ |
/wp-json/wc/v3/ |
| 🔐 Аутентификация | Не требуется (cookie + session) | Обязательна (API keys) |
| 👤 Контекст пользователя | Текущий пользователь (сессия браузера) | Любой пользователь (через ключи) |
| 🛒 Работа с корзиной | ✅ Да | ❌ Нет |
| 💳 Checkout | ✅ Да | ❌ Нет (создание заказов только вручную) |
| 📦 Получение товаров | ✅ Да | ✅ Да |
| 📦 Управление товарами | ❌ Нет | ✅ Полный CRUD |
| 📑 Заказы (просмотр) | ❌ Нет | ✅ Да |
| 📑 Заказы (создание) | Только через checkout | ✅ Да (прямое создание) |
| 👥 Пользователи | ❌ Нет | ✅ Да |
| 🚚 Доставка / налоги | ❌ Нет | ✅ Да |
| 🔄 CRUD операции | Ограниченные | Полные |
| 🧠 Архитектура | Headless / frontend-first | Backend / server-to-server |
| ⚡ Безопасность | Ограниченный доступ | Полный доступ (нужно защищать) |
| 📡 Использование в браузере | ✅ Да | ❌ Нельзя (утечка ключей) |
| 🔧 Использование на сервере | ⚠️ Ограничено | ✅ Основной сценарий |
| 🧩 Подходит для SPA (React/Vue) | ✅ Идеально | ❌ Нет |
| 🔗 Подходит для CRM/ERP | ❌ Нет | ✅ Да |
| 📉 Риск компрометации | Низкий | Высокий при утечке ключей |
Вывод
Store API — это современный, безопасный способ работы с WooCommerce на фронтенде, особенно в headless-архитектуре.
Классический REST API остаётся мощным инструментом для серверных интеграций, но его нельзя использовать напрямую в клиентских приложениях из-за требований безопасности.