Nejdůležitější vlastnosti a výhody modulu
🌍 Validace EU VAT — řetězec providerů
- VIES REST API (Evropská komise) — oficiální služba EU, zdarma, bez API klíčů, vrací číslo konzultace v souladu s předpisy
- VATcomply — bezplatný proxy k VIES, limit 2 dotazů/s/IP, bez autentizace
- VATLayer (APILayer) — komerční API s vysokou dostupností, vyžaduje API klíč, vrací kompletní údaje o firmě
- viesapi.eu — polský komerční proxy VIES s HTTP Basic Auth, rychlé doby odezvy
- Konfigurovatelný řetězec 3 slotů — vyberte Provider 1 (hlavní), Provider 2 (záložní), Provider 3 (poslední záchrana)
- Automatický fallback — pokud první provider vrátí chybu nebo timeout, modul automaticky zkusí dalšího
- Per-provider timeout a retry — nakonfigurujte samostatné časové limity pro každého providera
- Per-provider cache TTL — různé doby platnosti cache pro každé API
- Ochrana proti duplicitám — JavaScript blokuje výběr stejného providera ve 2 slotech, serverová validace na straně PHP
🇵🇱 Validace polského NIP — registr GUS
- Integrace s GUS BIR1.1 API — oficiální vládní registr REGON, bezplatný klíč z api.stat.gov.pl
- Jednoduché ověření kontrolního součtu NIP — vážený algoritmus podle oficiální specifikace MF
- Odmítání neplatných vzorů — samé nuly, samé jedničky, identické číslice — automaticky blokováno
- Validace checksum = 10 — podle oficiální specifikace NIP je hodnota 10 neplatná
- Načítání údajů o firmě — název, adresa, PSČ, město z registru REGON
- Konfigurovatelný timeout a retry — přizpůsobení výkonu serverů GUS
💰 Automatické osvobození od DPH (0% reverse charge)
- Automatické použití 0% DPH pro ověřené B2B zákazníky ze zemí EU
- Konfigurovatelná zdrojová země — vyloučení 0% pro tuzemské transakce (v souladu se zákonem o DPH)
- Seznam zemí pro ověření VIES — vyberte konkrétní země zahrnuté do validace
- Možnost "povolit, pokud validace selže" — neblokujte registraci při výpadku VIES
- Integrace s daňovým enginem PrestaShop přes `TaxManagerInterface`
👥 Automatická správa skupin zákazníků
- Automatické přiřazení skupiny po validaci — např. automaticky přidejte do skupiny "B2B" nebo "Osvobozeni od DPH"
- Zachování stávajících skupin — zákazník nepřijde o žádnou ze svých dosavadních skupin
- Idempotentní přidávání — bez duplicit i při opakované validaci
- Validace Group::isLoadedObject — bezpečnost při smazaných skupinách
📧 E-mailová upozornění
- E-mail adminovi při nové B2B validaci — okamžitá informace o novém firemním zákazníkovi
- E-mail při neúspěšné opětovné validaci — bezpečnostní upozornění, když VAT přestal být platný
- Vícejazyčné šablony (polština, angličtina) — upravitelné ve standardním editoru PS
- Konfigurovatelná adresa odesílatele — výchozí je e-mail obchodu z nastavení PS
🔄 Re-validace při změně stavu objednávky
- Automatická opětovná kontrola VAT při změně objednávky na vybraný stav (např. "Platba přijata")
- Ochrana souladu — zachycení situace, kdy VAT vypršel mezi objednávkou a odesláním
- Kompletní auditní log — každá re-validace se ukládá s consultation number VIES
- Multishop-aware — používá kontext obchodu z objednávky, nikoli aktuální výběr admina
📊 Profesionální administrátorský panel
- 5 sekcí dashboardu — řetězec providerů, statistiky validace, poslední validace, telemetrie providerů, průvodce rychlým startem
- Vizualizace řetězce — 3 sloty s ikonami, názvy, stavem (aktivní/vypnutý/bez klíče)
- 7 KPI karet — celkem, správné, nesprávné, posledních 7 dní, VIES, GUS, cache záznamy
- Tabulka posledních 10 validací — VAT číslo, zdroj, výsledek, firma, zákazník, datum
- Telemetrie providerů — per-provider success rate, počet kontrol, poslední volání
- Karty providerů s badge FREE/PAID — jasná informace o nákladech
- Automatické barevné rozlišení — zelená (OK), oranžová (warn), červená (error)
🏪 Plná podpora multistore
- Izolace cache pro každý obchod — sloupec `id_shop` v cache tabulce, composite UNIQUE key
- Izolace logů pro každý obchod — audit pro každou právní entitu
- Per-shop konfigurace — různí provideři, API klíče, skupiny zákazníků pro každý obchod
- Shop-aware re-validace — hook používá kontext objednávky, ne admina
- Automatické nastavení defaults pro všechny obchody při instalaci
⚡ Výkon a optimalizace
- Dvouúrovňová cache — statická (in-memory) + persistentní (databáze)
- Negative cache — žádné opakované DB dotazy pro nevalidovaná čísla
- TTL enforcement při čtení — staré záznamy jsou automaticky ignorovány
- Lazy render dashboardu — statistiky se počítají pouze na záložce Dashboard
- Jeden agregovaný SQL dotaz — 6 COUNT(*) → 1 SUM(CASE WHEN)
- Read replica pro všechna čtení (`_PS_USE_SQL_SLAVE_`)
- Dedikované indexy — idx_date, idx_source, idx_shop
- Retence logů přes CRON — automatické čištění po konfigurovatelném období (default 365 dní)
🔒 Bezpečnost
- CSRF tokeny ve všech vstupních bodech (front, admin, CRON)
- Timing-safe comparison (`hash_equals`) pro validaci tokenů
- Kompletní sanitizace SQL — `pSQL()`, `(int)`, `bqSQL()` všude
- Escapování Smarty — `htmlall:UTF-8` pro všechny proměnné v šablonách
- SSL verification — `CURLOPT_SSL_VERIFYPEER=true` ve všech voláních providerů
- Whitelist providerů — není možné uložit neplatného providera v chainu
- _PS_VERSION_ guard v každém PHP souboru
- AdminSecurity annotation v Symfony admin controlleru
🛠️ Kompatibilita a závislosti
- PrestaShop 1.7.0 – 9.x — plná kompatibilita, verzované guardy
- PHP 7.0 – 8.5 — bez moderní syntaxe bez guardů
- MySQL 5.6+ / MariaDB 10.x+ — utf8mb4 charset
- Zero Composer / vendor — vlastní PSR-4 autoloader (15 řádků kódu)
- Dual translation system — trans() + l() fallback funguje na všech verzích PS
- Kompletní české překlady — 200+ záznamů v pl.php a souborech XLF
- Dual theme support — legacy (Smarty) a moderní (Symfony) admin themes
👨💼 Administrátorský panel — 10 záložek
- Dashboard — dashboard s 5 sekcemi, výchozí záložka
- Nastavení — obecné možnosti validace, ISO check, auto-group, cache TTL, re-validace
- Nastavení EU VAT — zapnutí VIES, seznam zemí, 0% sazba, allow on fail, zdrojová země
- Řetězec providerů — 3 selecty s JavaScriptem blokujícím duplicity
- VIES REST — timeout, cache TTL, retry (bez klíčů)
- VATcomply — timeout, cache TTL, retry (bez klíčů)
- VATLayer — API key, timeout, cache TTL, retry
- viesapi.eu — identifier, access key, timeout, cache TTL, retry
- Konfigurace GUS — zapnutí, země, uživatelský klíč, allow on fail, timeout, cache TTL, retry
- Nástroje — URL CRON pro čištění cache a logů
🎯 Pro koho je tento modul?
- Obchody PrestaShop prodávající firmám (B2B) v Evropské unii
- Prodejci vystavující faktury v režimu reverse charge
- Obchody obsluhující polský trh vyžadující ověření NIP v GUS
- Multistore platformy s různými právními společnostmi pro každý obchod
- Prodejci potřebující audit validace VAT v souladu s daňovými předpisy
- Obchody s vysokým objemem B2B transakcí vyžadující cache a vysokou dostupnost