Przejdź do głównej zawartości

Reguły podatkowe

Moduł reguł podatkowych pozwala zautomatyzować przypisywanie kodów GTU, kodów JPK_V7, klas podatkowych oraz kategorii/tagów do produktów WooCommerce na podstawie reguł warunek/akcja. Działa przy zapisie produktu, w codziennym cronie oraz manualnie (dry run + run now).

  1. Tworzysz regułę: nazwa, tryb dopasowańia (all/any), warunki, akcje, wyzwalacze i priorytet.
  2. Silnik sprawdza warunki wobec każdego produktu i stosuje akcje jeśli reguła pasuje.
  3. Każde zastosowanie reguły jest zapisywane w logu audytu (kto, co, kiedy, dry run czy na żywo).
  4. Wyzwalacze:
    • Przy zapisie produktu - reguła uruchamia się po utworzeniu lub edycji produktu
    • Codziennie - reguła działa w nocnym cronie na całym katalogu
    • Co tydzień - reguła działa raz w tygodniu (WP cron)
    • Co miesiąc - reguła działa raz na 30 dni (WP cron)
    • Ręcznie - reguła odpala się tylko z poziomu panelu (Dry run / Run now)

Przejdź do WooCommerce > Reguły podatkowe i kliknij Dodaj regułę.

PoleOpis
NazwaOpisowa nazwa dla zespołu (np. “Książki -> GTU_12”)
WłączonaMożesz tymczasowo wyłączyć regułę bez usuwania
Tryb dopasowańiaall - wszystkie warunki muszą pasować, any - wystarczy jeden
WyzwalaczeKiedy reguła działa (zapis / cron / ręcznie)
PriorytetKolejność uruchamiania, rosnąco (10 to wartość domyślna)

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

Przykładowe 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 obsługuje dowolną niestandardową taksonomię (np. product_brand, pwb-brand). W polu key wpisz slug taksonomii, w value listę ID termów:

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.

Przykłady:

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

Format: action_type | value.

AkcjaOpisPrzykład
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 klasę podatkową 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 wymagający paragonu z NIPmark_receipt_with_nip | 1

Każda reguła ma w panelu przyciski:

  • Dry run - przechodzi po wszystkich produktach i zapisuje w logu co by zmieniono, bez zmian w bazie.
  • Run now - stosuje regułę na całym katalogu i zapisuje zmiany.

Zakładka Audit log pokazuje ostatnie 200 zastosowań reguł: data, reguła, produkt, czy dopasowano, czy dry run, oraz zastosowane akcje.

  • Tryb dopasowańia: any
  • Warunek: category | in | <ID kategorii Książki>
  • Warunek: title | contains | ksiazka
  • Akcja: set_jpk_v7_code | GTU_12
  • Tryb dopasowańia: all
  • Warunek: category | equals | <ID kategorii Leki>
  • Akcja: set_tax_class | reduced-rate
  • Akcja: set_gtu_code | GTU_09
  • Tryb dopasowańia: all
  • Warunek: type | equals | service
  • Warunek: price | gte | 15000
  • Akcja: mark_receipt_with_nip | 1

Przypisane kody GTU i JPK_V7 zapisywane są jako meta produktów i mogą być wykorzystane przez:

  • moduł fakturowania (Faktura VAT PDF + KSeF)
  • eksport JPK_VAT
  • integracje księgowe (wFirma, Fakturownia, iFirma)

Na górze edytora reguły panel Insert helper pozwala dodawać linie warunków i akcji bez ręcznego wpisywania ID. Dostępne 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 źródłem prawdy - pickery tylko dopisują gotowe linie.

Każda reguła może mieć opcjonalną etykietę grupy (pole group_label w edytorze). Grupy używane są tylko do organizacji i filtrowania w panelu - nie wpływają na działanie reguł. Przykłady grup: “Książki”, “Leki”, “Żywność VAT 5%”, “Wyposażenie - GTU_06”.

Lista reguł w panelu obsługuje:

  • Wyszukiwanie po nazwie reguły (niezależnie od wielkości liter)
  • Filtr statusu: enabled / disabled
  • Filtr wyzwalacza: on_save / daily / manual
  • Filtr grupy (widoczny tylko jeśli są przypisane etykiety)

W zakładce Import / export:

  • Export - pobiera wszystkie reguły jako przenośny plik JSON (format polski.tax_rules, v1). Używaj do kopii zapasowej lub migracji między sklepami.
  • Import - wgrywa wcześniej wyeksportowany JSON. Reguły są zawsze dopisywane (nigdy nie nadpisują istniejących po ID), więc można bezpiecznie łączyć reguły z wielu sklepów.

Plik JSON ma strukturę:

{
"format": "polski.tax_rules",
"version": 1,
"exported_at": "2026-04-19T12:00:00+00:00",
"rules": [
{
"name": "Książki -> GTU_12",
"group_label": "Książki",
"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 dużych sklepów i automatyzacji:

Okno terminala
# Lista reguł
wp polski tax-rules list
wp polski tax-rules list --format=json
# Uruchom regułę #3 w trybie dry-run
wp polski tax-rules run 3 --dry-run
# Uruchom regułę #3 na żywo (paczki po 100 produktów)
wp polski tax-rules run 3 --batch-size=100
# Export reguł do pliku
wp polski tax-rules export --file=/tmp/rules.json
# Import z pliku
wp polski tax-rules import /tmp/rules.json

Na standardowej liście produktów WooCommerce (wp-admin/edit.php?post_type=product) w dropdown “Akcje hurtowe” dostępne są dwie pozycje:

  • Apply tax rules - uruchamia wszystkie aktywne reguły na zaznaczonych produktach.
  • Dry-run tax rules - raportuje co by się zmieniło, bez zapisu.

Po wykonaniu panel wyświetla notice z liczbą przetworzonych produktów, dopasowań i zmian.

  • Cron dzienny przetwarza katalog w paczkach po 50 produktów.
  • Log jest ograniczony do 10 000 wierszy - starsze są automatycznie kasowane.
  • Silnik zabezpiecza się przed rekurencją: reguła nie odpala się wielokrotnie podczas wewnętrznego zapisu produktu.