Přeskočit na obsah

Účetní integrace

Modul propojuje WooCommerce s polskými fakturačními systémy: wFirma, Fakturownia a iFirma. Faktury se odesílají automaticky, s opakováním při chybách API.

SystémFormát APIVerze APIOvěřování
wFirmaXMLv2API key + API secret
FakturowniaJSONv3API token
iFirmaJSONv1Login + API key (klíč faktur)

Současně může být aktivní pouze jedna integrace.

Přejděte na WooCommerce > Nastavení > Polski PRO > Účetnictví.

Vyberte účetní systém a zadejte přihlašovací údaje.

NastaveníPopis
API keyKlíč API z panelu wFirma
API secretAPI secret
ID firmyIdentifikátor firmy ve wFirma
Série fakturSérie číslování (např. “FV”, “FVS”)
NastaveníPopis
SubdoménaNázev subdomény (např. mojafirma.fakturownia.pl)
API tokenToken API z nastavení účtu
ID odděleníVolitelně - ID oddělení vystavujícího faktury
Jazyk fakturypl nebo en
NastaveníPopis
LoginLogin k účtu iFirma
Klíč API fakturKlíč API pro vystavování faktur
Klíč API předplatiteleKlíč API předplatitele (pro načítání dat)
NastaveníVýchozí hodnotaPopis
Automatické vystavováníAnoVystavit fakturu automaticky po zaplacení objednávky
Spouštěcí stavprocessingStav objednávky spouštějící vystavení faktury
Typ dokumentuFaktura VATFaktura VAT, Proforma faktura, Účet
Přidat do e-mailuAnoPřipojit PDF faktury k e-mailu objednávky
Retry při chyběAnoOpakovat pokus při chybě API
Maximální počet pokusů5Limit opakovaných pokusů
  1. Objednávka WooCommerce změní stav na processing (nebo jiný nakonfigurovaný)
  2. Modul shromáždí data objednávky a namapuje je na formát poskytovatele
  3. Data jsou odeslána asynchronně do API účetního systému
  4. Po úspěšném vytvoření je ID faktury uloženo do meta objednávky
  5. PDF faktury je staženo a připojeno k e-mailu zákazníka

Modul automaticky převádí data objednávky do formátu API:

Data WooCommercewFirma (XML)Fakturownia (JSON)iFirma (JSON)
Název firmy<contractor><name>buyer_nameKontrahent.Nazwa
NIP<contractor><nip>buyer_tax_noKontrahent.NIP
Adresa<contractor><street>buyer_streetKontrahent.Ulica
Položky objednávky<invoicecontents>positionsPozycje
Sazba DPH<vat_code>taxStawkaVat
Platební metoda<paymentmethod>payment_typeSposobZaplaty
<api>
<invoices>
<invoice>
<contractor>
<name>Firma Testowa Sp. z o.o.</name>
<nip>1234567890</nip>
<street>ul. Testowa 1</street>
<city>Warszawa</city>
<zip>00-001</zip>
</contractor>
<invoicecontents>
<invoicecontent>
<name>Produkt testowy</name>
<unit>szt.</unit>
<count>2</count>
<price>100.00</price>
<vat_code>23</vat_code>
</invoicecontent>
</invoicecontents>
<paymentmethod>transfer</paymentmethod>
<paymentdate>2026-04-12</paymentdate>
</invoice>
</invoices>
</api>

Formát JSON (Fakturownia)

Sekce “Formát JSON (Fakturownia)”
{
"invoice": {
"kind": "vat",
"number": null,
"buyer_name": "Firma Testowa Sp. z o.o.",
"buyer_tax_no": "1234567890",
"buyer_street": "ul. Testowa 1",
"buyer_city": "Warszawa",
"buyer_post_code": "00-001",
"positions": [
{
"name": "Produkt testowy",
"quantity": 2,
"total_price_gross": "246.00",
"tax": "23"
}
],
"payment_type": "transfer",
"payment_to": "2026-04-12"
}
}

Při serverových chybách (HTTP 5xx, timeout) modul opakuje pokus s rostoucím zpožděním:

PokusZpožděníČas od prvního pokusu
1Okamžitě0 s
230 s30 s
32 min2 min 30 s
48 min10 min 30 s
532 min42 min 30 s

Zpoždění se počítá vzorcem: delay = base_delay * 2^(attempt - 1), kde base_delay = 30 sekund.

Chyby nepodléhající retry

Sekce “Chyby nepodléhající retry”

Klientské chyby (HTTP 4xx) se neopakují - poukazují na problém s daty:

  • 400 Bad Request - nesprávná data
  • 401 Unauthorized - chybný API token
  • 403 Forbidden - chybějící oprávnění
  • 422 Unprocessable Entity - validace dat

Tyto chyby vyžadují ruční opravu.

Asynchronní odesílání

Sekce “Asynchronní odesílání”

Faktury jsou odesílány na pozadí pomocí WC_Action_Scheduler. Zákazník vidí potvrzení objednávky ihned a faktura se generuje na pozadí.

/**
* Akce volaná po úspěšném vystavení faktury.
*
* @param int $order_id ID objednávky
* @param string $invoice_id ID faktury v účetním systému
* @param string $provider Název poskytovatele ('wfirma', 'fakturownia', 'ifirma')
*/
do_action('polski_pro/accounting/invoice_created', int $order_id, string $invoice_id, string $provider);

Příklad - logování do externího systému:

add_action('polski_pro/accounting/invoice_created', function (
int $order_id,
string $invoice_id,
string $provider
): void {
error_log(sprintf(
'[Polski PRO] Faktura %s vystavena v %s pro objednávku #%d',
$invoice_id,
$provider,
$order_id
));
}, 10, 3);
/**
* Akce volaná po vyčerpání pokusů o odeslání faktury.
*
* @param int $order_id ID objednávky
* @param string $provider Název poskytovatele
* @param string $error Chybová zpráva
* @param int $attempts Počet provedených pokusů
*/
do_action('polski_pro/accounting/invoice_failed', int $order_id, string $provider, string $error, int $attempts);

Příklad - upozornění administrátora:

add_action('polski_pro/accounting/invoice_failed', function (
int $order_id,
string $provider,
string $error,
int $attempts
): void {
$admin_email = get_option('admin_email');
wp_mail(
$admin_email,
sprintf('Chyba vystavení faktury - objednávka #%d', $order_id),
sprintf(
"Nepodařilo se vystavit fakturu v %s po %d pokusech.\n\nChyba: %s\n\nZkontrolujte objednávku: %s",
$provider,
$attempts,
$error,
admin_url(sprintf('post.php?post=%d&action=edit', $order_id))
)
);
}, 10, 4);
/**
* Filtruje data faktury před odesláním do API.
*
* @param array $invoice_data Data faktury ve formátu poskytovatele
* @param \WC_Order $order Objednávka WooCommerce
* @param string $provider Název poskytovatele
*/
apply_filters('polski_pro/accounting/invoice_data', array $invoice_data, \WC_Order $order, string $provider): array;

Příklad - přidání poznámky k faktuře:

add_filter('polski_pro/accounting/invoice_data', function (
array $invoice_data,
\WC_Order $order,
string $provider
): array {
if ($provider === 'fakturownia') {
$invoice_data['invoice']['description'] = sprintf(
'Internetová objednávka #%s',
$order->get_order_number()
);
}
return $invoice_data;
}, 10, 3);

V seznamu objednávek sloupec “Faktura” zobrazuje:

  • Zelená ikona - faktura úspěšně vystavena
  • Žlutá ikona - probíhá odesílání / retry
  • Červená ikona - chyba (klikněte pro zobrazení detailů)
  • Šedá ikona - netýká se (bez automatického vystavování)

V panelu Faktura na stránce objednávky může administrátor:

  1. Vystavit fakturu ručně (pokud automatické vystavování selhalo)
  2. Stáhnout PDF faktury
  3. Znovu odeslat fakturu
  4. Zobrazit log pokusů a chyb

Faktura se nevystavuje automaticky Zkontrolujte, zda je spouštěcí stav správný. Ujistěte se, že Action Scheduler funguje (WooCommerce > Stav > Naplánované akce). Zkontrolujte log chyb v WooCommerce > Stav > Logy.

Chyba “Unauthorized” při připojení k API Ověřte přihlašovací údaje. V případě wFirma zkontrolujte, zda jsou API key a secret z hlavního účtu (nikoli podúčtu). U Fakturownia se ujistěte, že je subdoména správná.

Duplicitní faktury Modul před vystavením kontroluje meta _polski_pro_invoice_id, aby se zabránilo duplicitám. Pokud se duplicity vyskytují, zkontrolujte, zda jiný plugin nespouští stejný hook.

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.