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).
Jak to działa
Dział zatytułowany „Jak to działa”- Tworzysz regułę: nazwa, tryb dopasowańia (all/any), warunki, akcje, wyzwalacze i priorytet.
- Silnik sprawdza warunki wobec każdego produktu i stosuje akcje jeśli reguła pasuje.
- Każde zastosowanie reguły jest zapisywane w logu audytu (kto, co, kiedy, dry run czy na żywo).
- 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)
Konfiguracja
Dział zatytułowany „Konfiguracja”Przejdź do WooCommerce > Reguły podatkowe i kliknij Dodaj regułę.
Pola reguły
Dział zatytułowany „Pola reguły”| Pole | Opis |
|---|---|
| Nazwa | Opisowa nazwa dla zespołu (np. “Książki -> GTU_12”) |
| Włączona | Możesz tymczasowo wyłączyć regułę bez usuwania |
| Tryb dopasowańia | all - wszystkie warunki muszą pasować, any - wystarczy jeden |
| Wyzwalacze | Kiedy reguła działa (zapis / cron / ręcznie) |
| Priorytet | Kolejność uruchamiania, rosnąco (10 to wartość domyślna) |
Warunki
Dział zatytułowany „Warunki”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_brandOperatory: 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 | ksiazkaprice | gte | 100category | in | 42,56,78meta_field | equals | tak | _polski_tabletkaFormat: action_type | value.
| Akcja | Opis | Przykład |
|---|---|---|
set_gtu_code | Przypisuje kod GTU do produktu | set_gtu_code | GTU_06 |
remove_gtu_code | Usuwa kod GTU | remove_gtu_code | |
set_jpk_v7_code | Przypisuje kod JPK_V7 | set_jpk_v7_code | GTU_12 |
set_tax_class | Ustawia klasę podatkową WooCommerce | set_tax_class | reduced-rate |
add_category | Dodaje produkt do kategorii | add_category | 42 |
add_tag | Dodaje tag | add_tag | 77 |
set_meta_field | Ustawia pole meta | set_meta_field | _polski_custom:jakis-znacznik |
mark_receipt_with_nip | Oznacza produkt jako wymagający paragonu z NIP | mark_receipt_with_nip | 1 |
Dry run i Audit log
Dział zatytułowany „Dry run i Audit log”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.
Przykłady
Dział zatytułowany „Przykłady”Wszystkie ksiazki -> JPK_V7 GTU_12
Dział zatytułowany „Wszystkie ksiazki -> JPK_V7 GTU_12”- Tryb dopasowańia:
any - Warunek:
category | in | <ID kategorii Książki> - Warunek:
title | contains | ksiazka - Akcja:
set_jpk_v7_code | GTU_12
Leki -> obniżona stawka VAT 8%
Dział zatytułowany „Leki -> obniżona stawka VAT 8%”- Tryb dopasowańia:
all - Warunek:
category | equals | <ID kategorii Leki> - Akcja:
set_tax_class | reduced-rate - Akcja:
set_gtu_code | GTU_09
Usługi > 15 000 PLN -> paragon z NIP wymagany
Dział zatytułowany „Usługi > 15 000 PLN -> paragon z NIP wymagany”- Tryb dopasowańia:
all - Warunek:
type | equals | service - Warunek:
price | gte | 15000 - Akcja:
mark_receipt_with_nip | 1
Integracje
Dział zatytułowany „Integracje”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)
Smart Pickers (pomocnik w edytorze)
Dział zatytułowany „Smart Pickers (pomocnik w edytorze)”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” (dodajecategory | in | <ID>) i “Append as action” (dodajeadd_category | <ID>). - Tag - analogicznie dla
product_tag. - Klasa podatkowa - lista klas podatkowych WooCommerce (Standard + wszystkie dodatkowe). Pickery:
set_tax_class | <slug>itax_class | equals | <slug>. - Kod GTU - dropdown
GTU_01-GTU_13. Trzy przyciski: dodanie jakoset_gtu_code,set_jpk_v7_codelub warunkugtu_code | equals | <CODE>.
Textarea pozostaje źródłem prawdy - pickery tylko dopisują gotowe linie.
Grupy reguł
Dział zatytułowany „Grupy reguł”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”.
Wyszukiwanie i filtrowanie
Dział zatytułowany „Wyszukiwanie i filtrowanie”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)
Import / eksport reguł
Dział zatytułowany „Import / eksport reguł”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:
# Lista regułwp polski tax-rules listwp polski tax-rules list --format=json
# Uruchom regułę #3 w trybie dry-runwp 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 plikuwp polski tax-rules export --file=/tmp/rules.json
# Import z plikuwp polski tax-rules import /tmp/rules.jsonBulk action na liście produktów
Dział zatytułowany „Bulk action na liście produktów”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.
Limity i wydajność
Dział zatytułowany „Limity i wydajność”- 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.