Preskočiť na obsah

NIP na pokladni

Firemní zákazníci potrebujú pole NIP na pokladni, aby dostali faktúru s DPH. Plugin Polski for WooCommerce pridáva pole NIP s validáciou kontrolného súčtu a overením v databáze GUS REGON. Firemné údaje sa doplnia automaticky.

Modul NIP ponúka tri úrovne overenia:

  1. Validácia formátu - kontrola, či číslo pozostáva z 10 číslic
  2. Validácia kontrolného súčtu - algoritmus overenia kontrolnej číslice NIP
  3. Overenie GUS REGON - kontrola v databáze Hlavného štatistického úradu s automatickým stiahnutím firemných údajov

Prejdite do WooCommerce > Nastavenia > Polski > Pokladňa a nakonfigurujte sekciu “NIP”.

NastaveniePredvolená hodnotaPopis
Zapnúť pole NIPÁnoPridá pole NIP na stránku pokladne
Pole povinnéNieČi je NIP povinný
Pozícia poľaZa poľom firmyKde zobraziť pole NIP
Validácia kontrolného súčtuÁnoKontroluje správnosť čísla NIP
Overenie GUS REGONNieOveruje NIP v databáze GUS
Automatické doplnenieÁnoSťahuje firemné údaje z GUS

Pole NIP môže byť zobrazované:

  • Vždy - viditeľné pre všetkých zákazníkov
  • Po zaškrtnutí checkboxu “Chcem faktúru” - zobrazí sa po zaškrtnutí
  • Po vyplnení názvu firmy - zobrazí sa, keď pole “Firma” je vyplnené

Odporúčaná možnosť je zobrazovanie po zaškrtnutí checkboxu “Chcem faktúru” - je to najčitateľnejšie pre zákazníka.

Algoritmus validácie NIP je založený na systéme váh. Kontrolná číslica (posledná, desiata číslica) sa vypočíta na základe deviatich predchádzajúcich číslic.

Váhy pre jednotlivé číslice NIP: 6, 5, 7, 2, 3, 4, 5, 6, 7

NIP: 1234567890
Suma = 1*6 + 2*5 + 3*7 + 4*2 + 5*3 + 6*4 + 7*5 + 8*6 + 9*7 = 214
Zvyšok = 214 mod 11
Ak zvyšok == posledná číslica NIP → NIP správny

Plugin vykonáva túto validáciu na strane klienta (JavaScript) aj na strane servera (PHP). Serverová validácia je vždy aktívna - nie je ju možné obísť vypnutím JavaScriptu.

Plugin akceptuje NIP v rôznych formátoch:

  • 1234567890 - len číslice
  • 123-456-78-90 - s pomlčkami
  • 123 456 78 90 - s medzerami
  • PL1234567890 - s prefixom krajiny

Všetky formáty sú normalizované na 10 číslic pred validáciou.

API GUS REGON vyžaduje prístupový kľúč. Plugin podporuje dve prostredia:

ProstredieURLKľúčPoužitie
Testovaciehttps://wyszukiwarkaregontest.stat.gov.pl/wsBIR/UslugaBIRzewnwordbir.svcabcde12345abcde12345 (verejný testovací kľúč)Vývoj a testovanie
Produkčnéhttps://wyszukiwarkaregon.stat.gov.pl/wsBIR/UslugaBIRzewnetrzny.svcVlastný kľúč z GUSPrevádzkovaný obchod
  1. Prejdite na stránku: https://api.stat.gov.pl/Home/BirIndex
  2. Zaregistrujte sa a prihláste
  3. Podajte žiadosť o prístup k API REGON
  4. Kľúč bude zaslaný na uvedenú e-mailovú adresu (čakacia doba: 1-3 pracovné dni)
  1. Prejdite do WooCommerce > Nastavenia > Polski > Pokladňa > NIP
  2. Zapnite Overenie GUS REGON
  3. Vyberte prostredie: Testovacie alebo Produkčné
  4. Vložte API kľúč (pre produkčné prostredie)
  5. Uložte nastavenia

V testovacom režime plugin používa verejný testovací kľúč GUS. Testovacia databáza obsahuje fiktívne údaje - neslúži na overenie skutočných čísiel NIP. Používajte ho výlučne počas vývoja a testovania integrácie.

Automatické sťahovanie firemných údajov

Section titled “Automatické sťahovanie firemných údajov”

Po overení NIP v GUS REGON plugin automaticky doplní polia formulára:

Pole WooCommerceÚdaje z GUS
Firma (company)Názov firmy
Adresa 1Ulica a číslo
MestoMesto
PSČPSČ
VojvodstvoVojvodstvo

Zákazník vidí doplnené údaje a môže ich opraviť pred zadaním objednávky.

  • Polia sú doplnené len ak sú prázdne alebo obsahujú skôr stiahnuté údaje z GUS
  • Ak zákazník ručne zmenil údaje, plugin neprepíše zmeny
  • Zákazník je informovaný hlásením o stiahnutí údajov

Číslo NIP sa ukladá ako metadáta objednávky:

  • kľúč: _billing_nip
  • viditeľné v administračnom paneli objednávky
  • dostupné v šablónach e-mailov
  • exportovateľné v reportoch

NIP sa automaticky zobrazuje:

  • v podrobnostiach objednávky (administračný panel)
  • v e-maili potvrdenia objednávky
  • na stránke “Môj účet > Objednávky”
$order = wc_get_order($order_id);
$nip = $order->get_meta('_billing_nip');
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];
}
add_filter('polski/checkout/validate_nip', function (bool $is_valid, string $nip): bool {
// Dodatkowa logika walidacji
// np. sprawdzenie na liście zablokowanych NIP-ów
$blocked_nips = ['0000000000'];
if (in_array($nip, $blocked_nips, true)) {
return false;
}
return $is_valid;
}, 10, 2);
  1. Skontrolujte, či API kľúč je správny a aktívny
  2. Overte, či server môže nadviazať HTTPS spojenie s api.stat.gov.pl
  3. API GUS býva nedostupné - plugin obsluhuje timeout a zobrazuje príslušné hlásenie
  4. Uistite sa, že PHP rozšírenie SOAP je nainštalované na serveri
  1. Skontrolujte, či modul NIP je zapnutý
  2. Overte nastavenie podmieneného zobrazovania
  3. Vymažte cache (cachovacie pluginy môžu cachovať formulár pokladne)

Firemné údaje sa nedoplňujú automaticky

Section titled “Firemné údaje sa nedoplňujú automaticky”
  1. Skontrolujte konzolu prehliadača na chyby AJAX
  2. Overte, či endpoint REST API pluginu je dostupný
  3. Uistite sa, že NIP je správny a firma existuje v databáze GUS
Táto stránka slúži len na informačné účely a nepredstavuje právne poradenstvo. Pred implementáciou sa poraďte s právnikom. Polski for WooCommerce je open source softvér (GPLv2) poskytovaný bez záruky.