Перейти до вмісту

REST API

REST API у просторі імен polski/v1/. Керуйте налаштуваннями, юридичними чекбоксами, юридичними сторінками та пошуком товарів.

Ендпоінти, що змінюють дані (POST, PUT, DELETE), вимагають автентифікації. Ендпоінт /search є публічним.

Підтримувані методи автентифікації:

  • Application Passwords (WordPress 5.6+) - рекомендовано
  • Cookie + nonce - для запитів з панелі адміністратора
  • Basic Auth (з плагіном Basic Auth) - лише для розробки

Потрібне право: manage_woocommerce (за замовчуванням ролі Адміністратор і Менеджер магазину).

Отримує всі групи налаштувань плагіна.

Права: manage_woocommerce

Приклад запиту:

Okno terminala
curl -u admin:XXXX-XXXX-XXXX-XXXX \
"https://tvijmagazyn.pl/wp-json/polski/v1/settings"

Приклад відповіді:

{
"groups": [
{
"id": "general",
"label": "Загальні налаштування",
"description": "Базова конфігурація плагіна"
},
{
"id": "compliance",
"label": "Юридичні вимоги",
"description": "Налаштування вимог права ЄС та польського права"
},
{
"id": "storefront",
"label": "Модулі магазину",
"description": "Модулі, що розширюють магазин"
},
{
"id": "checkout",
"label": "Каса та замовлення",
"description": "Налаштування каси та процесу замовлення"
}
]
}

Отримує налаштування з обраної групи.

Параметри URL:

ПараметрТипОпис
groupstringID групи налаштувань

Права: manage_woocommerce

Приклад запиту:

Okno terminala
curl -u admin:XXXX-XXXX-XXXX-XXXX \
"https://tvijmagazyn.pl/wp-json/polski/v1/settings/compliance"

Приклад відповіді:

{
"group": "compliance",
"settings": {
"omnibus_enabled": true,
"omnibus_days": 30,
"gpsr_enabled": true,
"withdrawal_enabled": true,
"withdrawal_days": 14,
"dsa_enabled": true,
"ksef_enabled": false,
"greenwashing_enabled": true
}
}

Оновлює налаштування в обраній групі.

Права: manage_woocommerce

Приклад запиту:

Okno terminala
curl -X POST \
-u admin:XXXX-XXXX-XXXX-XXXX \
-H "Content-Type: application/json" \
-d '{"omnibus_days": 30, "withdrawal_days": 14}' \
"https://tvijmagazyn.pl/wp-json/polski/v1/settings/compliance"

Приклад відповіді:

{
"updated": true,
"group": "compliance",
"changes": {
"omnibus_days": 30,
"withdrawal_days": 14
}
}

Отримує список усіх юридичних чекбоксів (каса, реєстрація, контакт).

Права: manage_woocommerce

Приклад відповіді:

{
"checkboxes": [
{
"id": 1,
"label": "Приймаю правила магазину",
"required": true,
"location": "checkout",
"enabled": true,
"position": 10,
"legal_page_id": 45
},
{
"id": 2,
"label": "Я ознайомився з політикою конфіденційності",
"required": true,
"location": "checkout",
"enabled": true,
"position": 20,
"legal_page_id": 47
}
],
"total": 2
}

Отримує статистику прийняття чекбоксів.

Права: manage_woocommerce

Приклад відповіді:

{
"stats": [
{
"checkbox_id": 1,
"label": "Приймаю правила магазину",
"total_shown": 1250,
"total_accepted": 1180,
"acceptance_rate": 94.4
}
]
}

Отримує деталі окремого чекбокса.

Параметри URL:

ПараметрТипОпис
idintID чекбокса

Права: manage_woocommerce

Приклад відповіді:

{
"id": 1,
"label": "Приймаю правила магазину",
"required": true,
"location": "checkout",
"enabled": true,
"position": 10,
"legal_page_id": 45,
"created_at": "2025-01-15T10:30:00",
"updated_at": "2025-06-01T14:22:00",
"stats": {
"total_shown": 1250,
"total_accepted": 1180,
"acceptance_rate": 94.4
}
}

Оновлює чекбокс.

Права: manage_woocommerce

Приклад запиту:

Okno terminala
curl -X PUT \
-u admin:XXXX-XXXX-XXXX-XXXX \
-H "Content-Type: application/json" \
-d '{"label": "Приймаю правила", "required": true}' \
"https://tvijmagazyn.pl/wp-json/polski/v1/checkboxes/1"

Отримує список юридичних сторінок (правила, політика конфіденційності тощо).

Права: manage_woocommerce

Приклад відповіді:

{
"pages": [
{
"id": 45,
"type": "terms",
"title": "Правила магазину",
"status": "publish",
"url": "https://tvijmagazyn.pl/regulamin/",
"last_modified": "2025-06-01T14:00:00",
"word_count": 3200
},
{
"id": 47,
"type": "privacy",
"title": "Політика конфіденційності",
"status": "publish",
"url": "https://tvijmagazyn.pl/polityka-prywatnosci/",
"last_modified": "2025-05-15T09:30:00",
"word_count": 2800
}
],
"total": 2
}

Генерує юридичну сторінку на основі шаблону.

Права: manage_woocommerce

Параметри body:

ПараметрТипОбов’язковийОпис
typestringТакТип сторінки: terms, privacy, withdrawal, dsa_report
company_namestringТакНазва компанії
company_addressstringТакАдреса компанії
emailstringТакКонтактна електронна пошта
phonestringНіНомер телефону
nipstringНіNIP компанії

Приклад запиту:

Okno terminala
curl -X POST \
-u admin:XXXX-XXXX-XXXX-XXXX \
-H "Content-Type: application/json" \
-d '{"type": "terms", "company_name": "Mój Sklep Sp. z o.o.", "company_address": "ul. Przykładowa 1, 00-001 Warszawa", "email": "[email protected]"}' \
"https://tvijmagazyn.pl/wp-json/polski/v1/legal-pages/generate"

Приклад відповіді:

{
"page_id": 120,
"type": "terms",
"title": "Правила магазину",
"url": "https://tvijmagazyn.pl/regulamin/",
"status": "draft"
}

Пошук товарів (публічний ендпоінт).

Параметри query:

ПараметрТипОбов’язковийОпис
qstringТакПошукова фраза
limitintНіЛіміт результатів (за замовчуванням 8)
catintНіID категорії

Права: публічний (не вимагає автентифікації)

Приклад запиту:

Okno terminala
curl "https://tvijmagazyn.pl/wp-json/polski/v1/search?q=buty&limit=5"

Приклад відповіді:

{
"results": [
{
"id": 456,
"title": "Спортивне взуття Nike",
"url": "https://tvijmagazyn.pl/produkt/buty-sportowe-nike/",
"image": "https://tvijmagazyn.pl/wp-content/uploads/buty-nike.jpg",
"price_html": "<span class=\"amount\">299,00&nbsp;zł</span>",
"category": "Взуття",
"in_stock": true,
"rating": 4.8
}
],
"total": 1,
"query": "buty"
}

Позначає майстер конфігурації як завершений.

Права: manage_woocommerce

Параметри body:

ПараметрТипОбов’язковийОпис
steps_completedarrayТакСписок завершених кроків

Приклад запиту:

Okno terminala
curl -X POST \
-u admin:XXXX-XXXX-XXXX-XXXX \
-H "Content-Type: application/json" \
-d '{"steps_completed": ["company_info", "legal_pages", "checkboxes", "compliance"]}' \
"https://tvijmagazyn.pl/wp-json/polski/v1/wizard/complete"

Приклад відповіді:

{
"completed": true,
"completed_at": "2025-06-15T12:00:00",
"steps": {
"company_info": true,
"legal_pages": true,
"checkboxes": true,
"compliance": true
}
}
КодОпис
200Успіх
201Ресурс створено (POST)
400Некоректний запит (відсутні параметри)
401Немає автентифікації
403Немає прав
404Ресурс не знайдено
500Помилка сервера

Фільтрування відповідей

Section titled “Фільтрування відповідей”

Кожен ендпоінт має фільтр для зміни відповіді:

add_filter('polski/rest/settings_response', function (array $response, WP_REST_Request $request): array {
// Зміна відповіді
return $response;
}, 10, 2);

Вбудованого rate limiting немає. Використовуйте Cloudflare, Nginx або плагін для обмеження публічних ендпоінтів.

Повідомлення про проблеми: github.com/wppoland/polski/issues

Ця сторінка має виключно інформаційний характер і не є юридичною консультацією. Перед впровадженням проконсультуйтеся з юристом. Polski for WooCommerce є програмним забезпеченням з відкритим кодом (GPLv2), що надається без гарантій.