Przejdź do głównej zawartości

Reguly podatkowe

Modul Regul podatkowych pozwala zautomatyzowac przypisywanie kodow GTU, kodow JPK_V7, klas podatkowych oraz kategorii/tagow do produktow WooCommerce na podstawie regul warunek/akcja. Dziala przy zapisie produktu, w codziennym cronie oraz manualnie (dry run + run now).

  1. Tworzysz regule: nazwa, tryb dopasowania (all/any), warunki, akcje, wyzwalacze i priorytet.
  2. Silnik sprawdza warunki wobec kazdego produktu i stosuje akcje jesli regula pasuje.
  3. Kazde zastosowanie regulujest zapisywane w logu audytu (kto, co, kiedy, dry run czy na zywo).
  4. Wyzwalacze:
    • Przy zapisie produktu - regula uruchamia sie po utworzeniu lub edycji produktu
    • Codziennie - regula dziala w nocnym cronie na calym katalogu
    • Co tydzien - regula dziala raz w tygodniu (WP cron)
    • Co miesiac - regula dziala raz na 30 dni (WP cron)
    • Recznie - regula odpala sie tylko z poziomu panelu (Dry run / Run now)

Przejdz do WooCommerce > Reguly podatkowe i kliknij Dodaj regule.

PoleOpis
NazwaOpisowa nazwa dla zespolu (np. “Ksiazki -> GTU_12”)
WlaczonaMozesz tymczasowo wylaczyc regule bez usuwania
Tryb dopasowaniaall - wszystkie warunki musza pasowac, any - wystarczy jeden
WyzwalaczeKiedy regula dziala (zapis / cron / recznie)
PriorytetKolejnosc uruchamiania, rosnaco (10 to wartosc domyslna)

Format: field | operator | value | key (ostatnie pole opcjonalne).

Przykladowe pola: title, sku, price, regular_price, stock_quantity, stock_status, category, tag, type, attribute, tax_class, meta_field, gtu_code, jpk_v7_code, taxonomy.

Pole taxonomy obsluguje dowolna niestandardowa taksonomie (np. product_brand, pwb-brand). W polu key wpisz slug taksonomii, w value liste ID termow:

taxonomy | in | 12,34,56 | product_brand

Operatory: equals, not_equals, contains, not_contains, starts_with, ends_with, gt, gte, lt, lte, in, not_in, is_empty, is_not_empty.

Przyklady:

title | contains | ksiazka
price | gte | 100
category | in | 42,56,78
meta_field | equals | tak | _polski_tabletka

Format: action_type | value.

AkcjaOpisPrzyklad
set_gtu_codePrzypisuje kod GTU do produktuset_gtu_code | GTU_06
remove_gtu_codeUsuwa kod GTUremove_gtu_code |
set_jpk_v7_codePrzypisuje kod JPK_V7set_jpk_v7_code | GTU_12
set_tax_classUstawia klase podatkowa WooCommerceset_tax_class | reduced-rate
add_categoryDodaje produkt do kategoriiadd_category | 42
add_tagDodaje tagadd_tag | 77
set_meta_fieldUstawia pole metaset_meta_field | _polski_custom:jakis-znacznik
mark_receipt_with_nipOznacza produkt jako wymagajacy paragonu z NIPmark_receipt_with_nip | 1

Kazda regula ma w panelu przyciski:

  • Dry run - przechodzi po wszystkich produktach i zapisuje w logu co by zmieniono, bez zmian w bazie.
  • Run now - stosuje regule na calym katalogu i zapisuje zmiany.

Zakladka Audit log pokazuje ostatnie 200 zastosowan regul: data, regula, produkt, czy dopasowano, czy dry run, oraz zastosowane akcje.

  • Tryb dopasowania: any
  • Warunek: category | in | <ID kategorii Ksiazki>
  • Warunek: title | contains | ksiazka
  • Akcja: set_jpk_v7_code | GTU_12
  • Tryb dopasowania: all
  • Warunek: category | equals | <ID kategorii Leki>
  • Akcja: set_tax_class | reduced-rate
  • Akcja: set_gtu_code | GTU_09
  • Tryb dopasowania: all
  • Warunek: type | equals | service
  • Warunek: price | gte | 15000
  • Akcja: mark_receipt_with_nip | 1

Przypisane kody GTU i JPK_V7 zapisywane sa jako meta produktow i moga byc wykorzystane przez:

  • modul fakturowania (Faktura VAT PDF + KSeF)
  • eksport JPK_VAT
  • integracje ksiegowe (wFirma, Fakturownia, iFirma)

Na gorze edytora reguly panel Insert helper pozwala dodawac linie warunkow i akcji bez recznego wpisywania ID. Dostepne pickery:

  • Kategoria - lista wszystkich product_cat (Select2, wyszukiwarka). Przyciski: “Append as condition” (dodaje category | in | <ID>) i “Append as action” (dodaje add_category | <ID>).
  • Tag - analogicznie dla product_tag.
  • Klasa podatkowa - lista klas podatkowych WooCommerce (Standard + wszystkie dodatkowe). Pickery: set_tax_class | <slug> i tax_class | equals | <slug>.
  • Kod GTU - dropdown GTU_01 - GTU_13. Trzy przyciski: dodanie jako set_gtu_code, set_jpk_v7_code lub warunku gtu_code | equals | <CODE>.

Textarea pozostaje zrodlem prawdy - pickery tylko dopisuja gotowe linie.

Kazda regula moze miec opcjonalna etykiete grupy (pole group_label w edytorze). Grupy uzywane sa tylko do organizacji i filtrowania w panelu - nie wplywaja na dzialanie regul. Przyklady grup: “Ksiazki”, “Leki”, “Zywnosc VAT 5%”, “Wyposazenie - GTU_06”.

Lista regul w panelu obsluguje:

  • Wyszukiwanie po nazwie reguly (niezalezne od wielkosci liter)
  • Filtr statusu: enabled / disabled
  • Filtr wyzwalacza: on_save / daily / manual
  • Filtr grupy (widoczny tylko jesli sa przypisane etykiety)

W zakladce Import / export:

  • Export - pobiera wszystkie reguly jako przenosny plik JSON (format polski.tax_rules, v1). Uzywaj do kopii zapasowej lub migracji miedzy sklepami.
  • Import - wgrywa wczesniej wyeksportowany JSON. Reguly sa zawsze dopisywane (nigdy nie nadpisuja istniejacych po ID), wiec mozna bezpiecznie laczyc reguly z wielu sklepow.

Plik JSON ma strukture:

{
"format": "polski.tax_rules",
"version": 1,
"exported_at": "2026-04-19T12:00:00+00:00",
"rules": [
{
"name": "Ksiazki -> GTU_12",
"group_label": "Ksiazki",
"enabled": true,
"match_mode": "all",
"priority": 10,
"triggers": ["on_save"],
"conditions": [
{ "field": "category", "operator": "in", "value": [42], "key": null }
],
"actions": [
{ "type": "set_jpk_v7_code", "value": "GTU_12" }
]
}
]
}

Dla duzych sklepow i automatyzacji:

Okno terminala
# Lista regul
wp polski tax-rules list
wp polski tax-rules list --format=json
# Uruchom regule #3 w trybie dry-run
wp polski tax-rules run 3 --dry-run
# Uruchom regule #3 na zywo (paczki po 100 produktow)
wp polski tax-rules run 3 --batch-size=100
# Export regul do pliku
wp polski tax-rules export --file=/tmp/rules.json
# Import z pliku
wp polski tax-rules import /tmp/rules.json

Na standardowej liscie produktow WooCommerce (wp-admin/edit.php?post_type=product) w dropdown “Akcje hurtowe” dostepne sa dwie pozycje:

  • Apply tax rules - uruchamia wszystkie aktywne reguly na zaznaczonych produktach.
  • Dry-run tax rules - raportuje co by sie zmienilo, bez zapisu.

Po wykonaniu panel wyswietla notice z liczba przetworzonych produktow, dopasowan i zmian.

  • Cron dzienny przetwarza katalog w paczkach po 50 produktow.
  • Log jest ograniczony do 10 000 wierszy - starsze sa automatycznie kasowane.
  • Silnik zabezpiecza sie przed rekurencja: regula nie odpala sie wielokrotnie podczas wewnetrznego zapisu produktu.