NIP na pokladne
Firemni zakaznici potrebuji pole NIP na pokladne pro ziskani faktury s DPH. Plugin pridava pole NIP s validaci kontrolniho souctu a overenim v bazi GUS REGON. Udaje firmy se doplni automaticky.
Funkce
Section titled “Funkce”Modul NIP nabizi tri urovne overeni:
- Validace formatu - kontrola, zda cislo sestava z 10 cislic
- Validace kontrolniho souctu - algoritmus overeni kontrolni cislice NIP
- Overeni GUS REGON - kontrola v databazi Hlavniho statistickeho uradu s automatickym stazenim udaju firmy
Konfigurace
Section titled “Konfigurace”Prejdete do WooCommerce > Nastaveni > Polski > Pokladna a nakonfigurujte sekci “NIP”.
Zakladni nastaveni
Section titled “Zakladni nastaveni”| Nastaveni | Vychozi hodnota | Popis |
|---|---|---|
| Aktivovat pole NIP | Ano | Pridava pole NIP na stranku pokladny |
| Pole povinne | Ne | Zda je NIP povinny |
| Pozice pole | Za polem firmy | Kde zobrazit pole NIP |
| Validace kontrolniho souctu | Ano | Kontroluje spravnost cisla NIP |
| Overeni GUS REGON | Ne | Overuje NIP v databazi GUS |
| Automaticke doplnovani | Ano | Stahuje udaje firmy z GUS |
Podminene zobrazeni
Section titled “Podminene zobrazeni”Pole NIP muze byt zobrazeno:
- Vzdy - viditelne pro vsechny zakazniky
- Po zaznaceni checkboxu “Chci fakturu” - objevi se po zaznaceni
- Po vyplneni nazvu firmy - objevi se, kdyz pole “Firma” je vyplneno
Doporucena moznost je zobrazeni po zaznaceni checkboxu “Chci fakturu” - je to nejprehlednejsi pro zakaznika.
Validace kontrolniho souctu
Section titled “Validace kontrolniho souctu”Algoritmus validace NIP je zalozen na systemu vah. Kontrolni cislice (posledni, desata cislice) je vypocitana na zaklade deviti predchozich cislic.
Algoritmus
Section titled “Algoritmus”Vahy pro jednotlive cislice NIP: 6, 5, 7, 2, 3, 4, 5, 6, 7
NIP: 1234567890Suma = 1*6 + 2*5 + 3*7 + 4*2 + 5*3 + 6*4 + 7*5 + 8*6 + 9*7 = 214Zbytek = 214 mod 11Pokud zbytek == posledni cislice NIP → NIP spravnyPlugin provadi tuto validaci jak na strane klienta (JavaScript), tak na strane serveru (PHP). Serverova validace je vzdy aktivni - nelze ji obejit deaktivaci JavaScriptu.
Obsluha vstupnich formatu
Section titled “Obsluha vstupnich formatu”Plugin akceptuje NIP v ruznych formatech:
1234567890- same cislice123-456-78-90- s pomlckami123 456 78 90- s mezeramiPL1234567890- s prefixem zeme
Vsechny formaty jsou normalizovany na 10 cislic pred validaci.
Overeni GUS REGON
Section titled “Overeni GUS REGON”Konfigurace API
Section titled “Konfigurace API”API GUS REGON vyzaduje pristupovy klic. Plugin podporuje dve prostredi:
| Prostredi | URL | Klic | Pouziti |
|---|---|---|---|
| Testovaci | https://wyszukiwarkaregontest.stat.gov.pl/wsBIR/UslugaBIRzewnwordbir.svc | abcde12345abcde12345 (verejny testovaci klic) | Vyvoj a testovani |
| Produkcni | https://wyszukiwarkaregon.stat.gov.pl/wsBIR/UslugaBIRzewnetrzny.svc | Vlastni klic z GUS | Fungujici obchod |
Ziskani produkcniho klice
Section titled “Ziskani produkcniho klice”- Prejdete na stranku: https://api.stat.gov.pl/Home/BirIndex
- Zaregistrujte se a prihlaste
- Podejte zadost o pristup k API REGON
- Klic bude zaslan na zadanou e-mailovou adresu (doba cekani: 1-3 pracovni dny)
Konfigurace v pluginu
Section titled “Konfigurace v pluginu”- Prejdete do WooCommerce > Nastaveni > Polski > Pokladna > NIP
- Aktivujte Overeni GUS REGON
- Zvolte prostredi: Testovaci nebo Produkcni
- Vlozte klic API (pro produkcni prostredi)
- Ulozte nastaveni
Testovaci rezim
Section titled “Testovaci rezim”V testovacim rezimu plugin pouziva verejny testovaci klic GUS. Testovaci databaze obsahuje fiktivni data - neslouzi k overeni skutecnych cisel NIP. Pouzivejte jej vyhradne behem vyvoje a testovani integrace.
Automaticke stahovani udaju firmy
Section titled “Automaticke stahovani udaju firmy”Po overeni NIP v GUS REGON plugin automaticky doplni pole formulare:
| Pole WooCommerce | Data z GUS |
|---|---|
| Firma (company) | Nazev firmy |
| Adresa 1 | Ulice a cislo |
| Mesto | Mesto |
| PSC | PSC |
| Kraj | Vojvodstvi |
Zakaznik vidi doplnene udaje a muze je opravit pred slozenim objednavky.
Chovani pri automatickem doplnovani
Section titled “Chovani pri automatickem doplnovani”- Pole jsou doplnovana pouze pokud jsou prazdna nebo obsahuji drive stazena data z GUS
- Pokud zakaznik rucne zmenil udaje, plugin zmeny neprepisuje
- Zakaznik je informovan zpravou o stazeni dat
Uchovavani NIP
Section titled “Uchovavani NIP”Cislo NIP je ukladano jako metadata objednavky:
- klic:
_billing_nip - viditelne v administracnim panelu objednavky
- dostupne v sablonach e-mailu
- exportovatelne v reportech
Zobrazeni NIP v objednavce
Section titled “Zobrazeni NIP v objednavce”NIP je automaticky zobrazovan:
- v detailech objednavky (administracni panel)
- v e-mailu potvrzeni objednavky
- na strance “Muj ucet > Objednavky”
Programaticky pristup
Section titled “Programaticky pristup”Ziskani NIP z objednavky
Section titled “Ziskani NIP z objednavky”$order = wc_get_order($order_id);$nip = $order->get_meta('_billing_nip');Validace NIP v PHP
Section titled “Validace NIP v PHP”function validate_nip(string $nip): bool { $nip = preg_replace('/[^0-9]/', '', $nip);
if (strlen($nip) !== 10) { return false; }
$weights = [6, 5, 7, 2, 3, 4, 5, 6, 7]; $sum = 0;
for ($i = 0; $i < 9; $i++) { $sum += (int) $nip[$i] * $weights[$i]; }
return ($sum % 11) === (int) $nip[9];}Hook validace
Section titled “Hook validace”add_filter('polski/checkout/validate_nip', function (bool $is_valid, string $nip): bool { // Doplnkova logika validace $blocked_nips = ['0000000000'];
if (in_array($nip, $blocked_nips, true)) { return false; }
return $is_valid;}, 10, 2);Nejcastejsi problemy
Section titled “Nejcastejsi problemy”Overeni GUS vraci chybu
Section titled “Overeni GUS vraci chybu”- Zkontrolujte, zda klic API je spravny a aktivni
- Overite, zda server muze navazat HTTPS spojeni s api.stat.gov.pl
- API GUS byva nedostupne - plugin obsluhuje timeout a zobrazuje prislusnou zpravu
- Ujistete se, ze rozsireni PHP SOAP je nainstalovano na serveru
Pole NIP se nezobrazuje
Section titled “Pole NIP se nezobrazuje”- Zkontrolujte, zda je modul NIP aktivovan
- Overite nastaveni podmineného zobrazeni
- Vymažte cache (cachovaci pluginy mohou cachovat formular pokladny)
Udaje firmy se nedoplnuji automaticky
Section titled “Udaje firmy se nedoplnuji automaticky”- Zkontrolujte konzoli prohlizece na chyby AJAX
- Overite, zda endpoint REST API pluginu je dostupny
- Ujistete se, ze NIP je spravny a firma existuje v databazi GUS