Preskočiť na obsah

NIP v pokladni

Firemní zákazníci potrebujú pole NIP v pokladni, aby získali faktúru DPH. Doplnok Polski for WooCommerce pridáva pole NIP s validáciou kontrolného súčtu a overením v databáze GUS REGON. Údaje firmy sa dopĺňajú automaticky.

Modul NIP overuje číslo na troch úrovniach:

  1. Validácia formátu - kontrola, či sa číslo skladá 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 načítaním údajov firmy

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

NastaveniePredvolená hodnotaPopis
Zapnúť pole NIPÁnoPridáva 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é dopĺňanieÁnoNačítava údaje firmy z GUS

Pole NIP môže byť zobrazené:

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

Odporúčaná možnosť je zobrazenie po zaškrtnutí poľa “Chcem faktúru” - je to najprehľadnejšie pre zákazníka.

NIP je validovaný systémom váh. Posledná číslica (kontrolná) musí zodpovedať výsledku výpočtu z deviatich predchádzajúcich číslic.

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

NIP: 1234567890
Súčet = 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 je správny

Doplnok validuje NIP na strane klienta (JavaScript) aj servera (PHP). Serverová validácia je vždy aktívna - nedá sa obísť.

Doplnok 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ľúč. Doplnok 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 GUSFungujúci 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 odoslaný na zadanú e-mailovú adresu (čas čakania: 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 kľúč API (pre produkčné prostredie)
  5. Uložte nastavenia

Testovací režim využíva verejný kľúč GUS. Testovacia databáza obsahuje fiktívne údaje - neoveríte v nej skutočné čísla NIP. Používajte ho len počas vytvárania a testovania obchodu.

Po overení NIP doplnok automaticky dopĺňa polia formulára:

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

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

  • Polia sú dopĺňané len ak sú prázdne alebo obsahujú skôr načítané údaje z GUS
  • Ak zákazník ručne zmenil údaje, doplnok zmeny neprepisuje
  • Zákazník je informovaný oznamom o načítaní ú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 zobrazuje automaticky:

  • v detailoch objednávky (administračný panel)
  • v e-maile s potvrdením 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 {
// Doplnková logika validácie
// napr. kontrola v zozname zablokovaných NIP
$blocked_nips = ['0000000000'];
if (in_array($nip, $blocked_nips, true)) {
return false;
}
return $is_valid;
}, 10, 2);
  1. Skontrolujte, či je kľúč API správny a aktívny
  2. Overte, či server dokáže nadviazať HTTPS spojenie s api.stat.gov.pl
  3. API GUS býva nedostupné - doplnok obsluhuje timeout a zobrazuje príslušný oznam
  4. Uistite sa, že rozšírenie PHP SOAP je nainštalované na serveri
  1. Skontrolujte, či je modul NIP zapnutý
  2. Overte nastavenie podmieneného zobrazenia
  3. Vyčistite cache (cachovacie doplnky môžu cachovať formulár pokladne)
  1. Skontrolujte konzolu prehliadača kvôli chybám AJAX
  2. Overte, či je endpoint REST API doplnku dostupný
  3. Uistite sa, že NIP je správny a firma existuje v databáze GUS
Táto stránka má výlučne informatívny charakter a nepredstavuje právne poradenstvo. Pred nasadením sa poraďte s právnikom. Polski for WooCommerce je open source softvér (GPLv2) poskytovaný bez záruky.