Zum Inhalt springen

Steuerregeln

Das Modul Steuerregeln ermoeglicht die Automatisierung der Zuweisung von GTU-Codes, JPK_V7-Codes, Steuerklassen sowie Kategorien/Tags zu WooCommerce-Produkten auf Basis von Bedingungs-/Aktionsregeln. Es funktioniert beim Speichern eines Produkts, im taeglichen Cron und manuell (Dry Run + Run Now).

  1. Du erstellst eine Regel: Name, Abgleichsmodus (all/any), Bedingungen, Aktionen, Trigger und Prioritaet.
  2. Die Engine prueft die Bedingungen gegen jedes Produkt und wendet die Aktionen an, wenn die Regel passt.
  3. Jede Anwendung einer Regel wird im Audit-Log gespeichert (wer, was, wann, Dry Run oder live).
  4. Trigger:
    • Beim Speichern des Produkts - die Regel wird nach dem Erstellen oder Bearbeiten eines Produkts ausgefuehrt
    • Taeglich - die Regel laeuft im naechtlichen Cron auf dem gesamten Katalog
    • Woechentlich - die Regel laeuft einmal pro Woche (WP-Cron)
    • Monatlich - die Regel laeuft einmal alle 30 Tage (WP-Cron)
    • Manuell - die Regel wird nur aus dem Panel ausgeloest (Dry Run / Run Now)

Gehe zu WooCommerce > Steuerregeln und klicke auf Regel hinzufuegen.

FeldBeschreibung
NameBeschreibender Name fuer das Team (z. B. “Buecher -> GTU_12”)
AktiviertDu kannst eine Regel voruebergehend deaktivieren, ohne sie zu loeschen
Abgleichsmodusall - alle Bedingungen muessen passen, any - eine genuegt
TriggerWann die Regel laeuft (Speichern / Cron / manuell)
PrioritaetReihenfolge der Ausfuehrung, aufsteigend (10 ist der Standardwert)

Format: field | operator | value | key (das letzte Feld ist optional).

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

Das Feld taxonomy unterstuetzt jede benutzerdefinierte Taxonomie (z. B. product_brand, pwb-brand). Trage im Feld key den Slug der Taxonomie ein, in value die Liste der Term-IDs:

taxonomy | in | 12,34,56 | product_brand

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

Beispiele:

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

Format: action_type | value.

AktionBeschreibungBeispiel
set_gtu_codeWeist dem Produkt einen GTU-Code zuset_gtu_code | GTU_06
remove_gtu_codeEntfernt den GTU-Coderemove_gtu_code |
set_jpk_v7_codeWeist einen JPK_V7-Code zuset_jpk_v7_code | GTU_12
set_tax_classSetzt die WooCommerce-Steuerklasseset_tax_class | reduced-rate
add_categoryFuegt das Produkt einer Kategorie hinzuadd_category | 42
add_tagFuegt einen Tag hinzuadd_tag | 77
set_meta_fieldSetzt ein Meta-Feldset_meta_field | _polski_custom:jakis-znacznik
mark_receipt_with_nipMarkiert das Produkt als beleg-mit-NIP-pflichtigmark_receipt_with_nip | 1

Jede Regel hat im Panel Schaltflaechen:

  • Dry Run - durchlaeuft alle Produkte und speichert im Log, was geaendert wuerde, ohne Aenderungen in der Datenbank.
  • Run Now - wendet die Regel auf den gesamten Katalog an und speichert die Aenderungen.

Der Reiter Audit-Log zeigt die letzten 200 Regelanwendungen: Datum, Regel, Produkt, ob abgeglichen, ob Dry Run, sowie die angewendeten Aktionen.

  • Abgleichsmodus: any
  • Bedingung: category | in | <ID der Kategorie Buecher>
  • Bedingung: title | contains | ksiazka
  • Aktion: set_jpk_v7_code | GTU_12
  • Abgleichsmodus: all
  • Bedingung: category | equals | <ID der Kategorie Medikamente>
  • Aktion: set_tax_class | reduced-rate
  • Aktion: set_gtu_code | GTU_09

Dienstleistungen > 15 000 PLN -> Beleg mit NIP erforderlich

Abschnitt betitelt „Dienstleistungen > 15 000 PLN -> Beleg mit NIP erforderlich“
  • Abgleichsmodus: all
  • Bedingung: type | equals | service
  • Bedingung: price | gte | 15000
  • Aktion: mark_receipt_with_nip | 1

Zugewiesene GTU- und JPK_V7-Codes werden als Produkt-Meta gespeichert und koennen genutzt werden von:

  • dem Rechnungsmodul (Rechnung MwSt. PDF + KSeF)
  • dem JPK_VAT-Export
  • Buchhaltungsintegrationen (wFirma, Fakturownia, iFirma)

Oben im Regel-Editor ermoeglicht das Panel Insert helper, Bedingungs- und Aktionszeilen hinzuzufuegen, ohne IDs manuell einzugeben. Verfuegbare Picker:

  • Kategorie - Liste aller product_cat (Select2, Suche). Schaltflaechen: “Append as condition” (fuegt category | in | <ID> hinzu) und “Append as action” (fuegt add_category | <ID> hinzu).
  • Tag - analog fuer product_tag.
  • Steuerklasse - Liste der WooCommerce-Steuerklassen (Standard + alle zusaetzlichen). Picker: set_tax_class | <slug> und tax_class | equals | <slug>.
  • GTU-Code - Dropdown GTU_01 - GTU_13. Drei Schaltflaechen: Hinzufuegen als set_gtu_code, set_jpk_v7_code oder Bedingung gtu_code | equals | <CODE>.

Das Textarea bleibt die Quelle der Wahrheit - die Picker fuegen nur fertige Zeilen hinzu.

Jede Regel kann ein optionales Gruppen-Label haben (Feld group_label im Editor). Gruppen werden nur zur Organisation und Filterung im Panel verwendet - sie beeinflussen die Funktionsweise der Regeln nicht. Beispiele fuer Gruppen: “Buecher”, “Medikamente”, “Lebensmittel MwSt. 5%”, “Ausstattung - GTU_06”.

Die Regelliste im Panel unterstuetzt:

  • Suche nach dem Regelnamen (unabhaengig von Gross-/Kleinschreibung)
  • Statusfilter: enabled / disabled
  • Trigger-Filter: on_save / daily / manual
  • Gruppenfilter (nur sichtbar, wenn Labels zugewiesen sind)

Im Reiter Import / export:

  • Export - laedt alle Regeln als portable JSON-Datei herunter (Format polski.tax_rules, v1). Nutze es fuer Sicherungskopien oder die Migration zwischen Shops.
  • Import - laedt zuvor exportiertes JSON hoch. Regeln werden immer angehaengt (ueberschreiben nie bestehende nach ID), sodass Regeln aus mehreren Shops sicher zusammengefuehrt werden koennen.

Die JSON-Datei hat folgende Struktur:

{
"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" }
]
}
]
}

Fuer grosse Shops und Automatisierung:

Okno terminala
# Liste der Regeln
wp polski tax-rules list
wp polski tax-rules list --format=json
# Regel #3 im Dry-Run-Modus ausfuehren
wp polski tax-rules run 3 --dry-run
# Regel #3 live ausfuehren (Pakete zu je 100 Produkten)
wp polski tax-rules run 3 --batch-size=100
# Regeln in eine Datei exportieren
wp polski tax-rules export --file=/tmp/rules.json
# Aus einer Datei importieren
wp polski tax-rules import /tmp/rules.json

In der Standard-Produktliste von WooCommerce (wp-admin/edit.php?post_type=product) sind im Dropdown “Massenaktionen” zwei Eintraege verfuegbar:

  • Apply tax rules - fuehrt alle aktiven Regeln auf den markierten Produkten aus.
  • Dry-run tax rules - meldet, was sich aendern wuerde, ohne zu speichern.

Nach der Ausfuehrung zeigt das Panel einen Hinweis mit der Anzahl der verarbeiteten Produkte, Abgleiche und Aenderungen.

  • Der taegliche Cron verarbeitet den Katalog in Paketen zu je 50 Produkten.
  • Das Log ist auf 10 000 Zeilen begrenzt - aeltere werden automatisch geloescht.
  • Die Engine schuetzt sich vor Rekursion: Eine Regel wird waehrend des internen Speicherns eines Produkts nicht mehrfach ausgeloest.