Přeskočit na obsah

REST API

REST API v namespace polski/v1/. Spravujte nastavení, právní checkboxy, právní stránky a vyhledávání produktů.

Endpointy upravující data (POST, PUT, DELETE) vyžadují autentizaci. Endpoint /search je veřejný.

Podporované metody autentizace:

  • Application Passwords (WordPress 5.6+) - doporučeno
  • Cookie + nonce - pro požadavky z administračního panelu
  • Basic Auth (s pluginem Basic Auth) - pouze pro vývoj

Vyžadované oprávnění: manage_woocommerce (ve výchozím stavu role Administrátor a Správce obchodu).

Získá všechny skupiny nastavení pluginu.

Oprávnění: manage_woocommerce

Příklad požadavku:

Terminál
curl -u admin:XXXX-XXXX-XXXX-XXXX \
"https://twojsklep.pl/wp-json/polski/v1/settings"

Příklad odpovědi:

{
"groups": [
{
"id": "general",
"label": "Obecná nastavení",
"description": "Základní konfigurace pluginu"
},
{
"id": "compliance",
"label": "Právní požadavky",
"description": "Nastavení požadavků práva EU a polského"
},
{
"id": "storefront",
"label": "Moduly obchodu",
"description": "Moduly rozšiřující obchod"
},
{
"id": "checkout",
"label": "Pokladna a objednávky",
"description": "Nastavení pokladny a procesu objednávky"
}
]
}

GET /polski/v1/settings/{group}

Sekce “GET /polski/v1/settings/{group}”

Získá nastavení z vybrané skupiny.

Parametry URL:

ParametrTypPopis
groupstringID skupiny nastavení

Oprávnění: manage_woocommerce

Příklad požadavku:

Terminál
curl -u admin:XXXX-XXXX-XXXX-XXXX \
"https://twojsklep.pl/wp-json/polski/v1/settings/compliance"

Příklad odpovědi:

{
"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
}
}

POST /polski/v1/settings/{group}

Sekce “POST /polski/v1/settings/{group}”

Aktualizuje nastavení ve vybrané skupině.

Oprávnění: manage_woocommerce

Příklad požadavku:

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

Příklad odpovědi:

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

GET /polski/v1/checkboxes

Sekce “GET /polski/v1/checkboxes”

Získá seznam všech právních checkboxů (pokladna, registrace, kontakt).

Oprávnění: manage_woocommerce

Příklad odpovědi:

{
"checkboxes": [
{
"id": 1,
"label": "Souhlasím s obchodními podmínkami",
"required": true,
"location": "checkout",
"enabled": true,
"position": 10,
"legal_page_id": 45
},
{
"id": 2,
"label": "Seznámil/a jsem se se zásadami ochrany osobních údajů",
"required": true,
"location": "checkout",
"enabled": true,
"position": 20,
"legal_page_id": 47
}
],
"total": 2
}

GET /polski/v1/checkboxes/stats

Sekce “GET /polski/v1/checkboxes/stats”

Získá statistiky přijetí checkboxů.

Oprávnění: manage_woocommerce

Příklad odpovědi:

{
"stats": [
{
"checkbox_id": 1,
"label": "Souhlasím s obchodními podmínkami",
"total_shown": 1250,
"total_accepted": 1180,
"acceptance_rate": 94.4
}
]
}

GET /polski/v1/checkboxes/{id}

Sekce “GET /polski/v1/checkboxes/{id}”

Získá podrobnosti jednoho checkboxu.

Parametry URL:

ParametrTypPopis
idintID checkboxu

Oprávnění: manage_woocommerce

Příklad odpovědi:

{
"id": 1,
"label": "Souhlasím s obchodními podmínkami",
"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
}
}

PUT /polski/v1/checkboxes/{id}

Sekce “PUT /polski/v1/checkboxes/{id}”

Aktualizuje checkbox.

Oprávnění: manage_woocommerce

Příklad požadavku:

Terminál
curl -X PUT \
-u admin:XXXX-XXXX-XXXX-XXXX \
-H "Content-Type: application/json" \
-d '{"label": "Souhlasím s podmínkami", "required": true}' \
"https://twojsklep.pl/wp-json/polski/v1/checkboxes/1"

GET /polski/v1/legal-pages

Sekce “GET /polski/v1/legal-pages”

Získá seznam právních stránek (obchodní podmínky, zásady ochrany osobních údajů atd.).

Oprávnění: manage_woocommerce

Příklad odpovědi:

{
"pages": [
{
"id": 45,
"type": "terms",
"title": "Obchodní podmínky",
"status": "publish",
"url": "https://twojsklep.pl/regulamin/",
"last_modified": "2025-06-01T14:00:00",
"word_count": 3200
},
{
"id": 47,
"type": "privacy",
"title": "Zásady ochrany osobních údajů",
"status": "publish",
"url": "https://twojsklep.pl/polityka-prywatnosci/",
"last_modified": "2025-05-15T09:30:00",
"word_count": 2800
}
],
"total": 2
}

POST /polski/v1/legal-pages/generate

Sekce “POST /polski/v1/legal-pages/generate”

Vygeneruje právní stránku na základě šablony.

Oprávnění: manage_woocommerce

Parametry body:

ParametrTypPovinnýPopis
typestringAnoTyp stránky: terms, privacy, withdrawal, dsa_report
company_namestringAnoNázev firmy
company_addressstringAnoAdresa firmy
emailstringAnoKontaktní e-mail
phonestringNeTelefonní číslo
nipstringNeNIP firmy

Příklad požadavku:

Terminál
curl -X POST \
-u admin:XXXX-XXXX-XXXX-XXXX \
-H "Content-Type: application/json" \
-d '{"type": "terms", "company_name": "Můj Obchod s.r.o.", "company_address": "ul. Przykładowa 1, 00-001 Warszawa", "email": "[email protected]"}' \
"https://twojsklep.pl/wp-json/polski/v1/legal-pages/generate"

Příklad odpovědi:

{
"page_id": 120,
"type": "terms",
"title": "Obchodní podmínky",
"url": "https://twojsklep.pl/regulamin/",
"status": "draft"
}

Vyhledávání produktů (veřejný endpoint).

Parametry query:

ParametrTypPovinnýPopis
qstringAnoVyhledávací fráze
limitintNeLimit výsledků (výchozí 8)
catintNeID kategorie

Oprávnění: veřejný (nevyžaduje autentizaci)

Příklad požadavku:

Terminál
curl "https://twojsklep.pl/wp-json/polski/v1/search?q=boty&limit=5"

Příklad odpovědi:

{
"results": [
{
"id": 456,
"title": "Sportovní boty Nike",
"url": "https://twojsklep.pl/produkt/buty-sportowe-nike/",
"image": "https://twojsklep.pl/wp-content/uploads/buty-nike.jpg",
"price_html": "<span class=\"amount\">299,00&nbsp;zł</span>",
"category": "Obuv",
"in_stock": true,
"rating": 4.8
}
],
"total": 1,
"query": "boty"
}

POST /polski/v1/wizard/complete

Sekce “POST /polski/v1/wizard/complete”

Označí konfiguračního průvodce jako dokončeného.

Oprávnění: manage_woocommerce

Parametry body:

ParametrTypPovinnýPopis
steps_completedarrayAnoSeznam dokončených kroků

Příklad požadavku:

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

Příklad odpovědi:

{
"completed": true,
"completed_at": "2025-06-15T12:00:00",
"steps": {
"company_info": true,
"legal_pages": true,
"checkboxes": true,
"compliance": true
}
}
KódPopis
200Úspěch
201Zdroj vytvořen (POST)
400Neplatný požadavek (chybějící parametry)
401Chybí autentizace
403Chybí oprávnění
404Zdroj nenalezen
500Chyba serveru

Každý endpoint má filtr pro úpravu odpovědi:

add_filter('polski/rest/settings_response', function (array $response, WP_REST_Request $request): array {
// Úprava odpovědi
return $response;
}, 10, 2);

Žádný vestavěný rate limiting. Použijte Cloudflare, Nginx nebo plugin pro omezení veřejných endpointů.

Hlášení problémů: github.com/wppoland/polski/issues

Tato stránka má pouze informativní charakter a nepředstavuje právní poradenství. Před nasazením se poraďte s právníkem. Polski for WooCommerce je open source software (GPLv2) poskytovaný bez záruky.