B2B checkout fields
Polski 1.13.0 fügt dem WooCommerce-Checkout einen optionalen Satz von B2B-Feldern hinzu: einen Umschalter “Kauf als Unternehmen” sowie NIP-, REGON- und IBAN-Felder. Die Felder erscheinen im klassischen WooCommerce-Checkout (Filter woocommerce_billing_fields), werden in Standard-Bestell-Metadaten gespeichert und ohne weitere Konfiguration vom KSeF-Modul und vom Rechnungsmodul in Pro gelesen.
Umschalter “Kauf als Unternehmen”
Section titled “Umschalter “Kauf als Unternehmen””Checkbox polski_buying_as_company am Anfang des Rechnungsbereichs. Standardmäßig nicht aktiviert - die Zeilen für NIP, REGON und IBAN bleiben ausgeblendet, bis der Kunde sie anhakt. Der Zustand des Umschalters wird in den Bestell-Metadaten _polski_buying_as_company (yes / no) gespeichert.
Die Ein-/Ausblendlogik ist als Inline-JavaScript umgesetzt - keine Build-Pipeline und keine zusätzliche Frontend-Abhängigkeit. Das Skript lauscht außerdem auf das jQuery-Ereignis updated_checkout, sodass es auch nach asynchronen Fragment-Aktualisierungen des Checkout-Blocks funktioniert.
Feld billing_nip, validiert gegen den polnischen NIP-Prüfsummenalgorithmus (10 Ziffern, Gewichte 6, 5, 7, 2, 3, 4, 5, 6, 7, Modulo 11). Akzeptierte Eingabeformate: 1234567890, 123-456-78-90, 123 456 78 90 und PL1234567890 (das Präfix wird vor der Validierung entfernt). Der Wert wird in normalisierter Form (10 Ziffern) unter den Bestell-Metadaten _billing_nip gespeichert.
Die Validierung in PHP nutzt die neue statische Hilfsklasse Polski\Util\NipValidator:
use Polski\Util\NipValidator;
NipValidator::isValid('5260250274'); // trueNipValidator::isValid('PL 526-025-02-74'); // trueNipValidator::normalize('PL 526-025-02-74'); // '5260250274'NipValidator::format('5260250274'); // '526-025-02-74'Wenn Polski\Pro\Validation\NipValidator aus polski-pro aktiv ist, überspringt FREE die eigene NIP-Registrierung, um ein doppeltes billing_nip-Feld zu vermeiden. REGON und IBAN werden von FREE immer hinzugefügt.
Optionales Feld billing_regon (standardmäßig deaktiviert). Akzeptiert 9 oder 14 Ziffern (kurzer / langer REGON). Regex-Prüfung: /^\d{9}$|^\d{14}$/. Gespeichert in den Bestell-Metadaten _billing_regon.
Optionales Feld billing_iban (standardmäßig deaktiviert). Strukturelle Plausibilitätsprüfung: 2-buchstabiges Länderpräfix + 2 Prüfziffern + 11-30 alphanumerische Zeichen im Rumpf, Gesamtlänge 15-34. Die strikte Mod-97-Prüfung wird bewusst den Integratoren überlassen (zum Beispiel einem Zahlungs-Gateway-Plugin). Gespeichert in den Bestell-Metadaten _billing_iban.
Einstellungen (polski_b2b)
Section titled “Einstellungen (polski_b2b)”| Schlüssel | Standard | Beschreibung |
|---|---|---|
enabled | true | Hauptschalter für das Modul |
show_company_toggle | true | Ob die Checkbox “Kauf als Unternehmen” angezeigt wird |
nip | true | Ob das NIP-Feld hinzugefügt wird (übersprungen, wenn polski-pro NipValidator aktiv ist) |
regon | false | Ob das REGON-Feld hinzugefügt wird |
iban | false | Ob das IBAN-Feld hinzugefügt wird |
REGON und IBAN über update_option aktivieren:
update_option('polski_b2b', array_merge( (array) get_option('polski_b2b', []), ['regon' => true, 'iban' => true]));Integration mit anderen Modulen
Section titled “Integration mit anderen Modulen”- KSeF-Modul (FREE) liest
_billing_nipaus der Bestellung und erkennt automatisch Bestellungen, die eine E-Rechnung erfordern. - Rechnungsmodul (PRO) liest
_billing_nipalsnipBuyerbei der Erstellung von Faktura VAT und Korrekturrechnungen. - AI Feed für Rechnungen (PRO) stellt Rechnungen als Markdown mit NIP-Feldern im Block “Parties” bereit.
Anzeige im Admin
Section titled “Anzeige im Admin”NIP, REGON und IBAN werden im Bestellbildschirm zum Block “Billing details” hinzugefügt (woocommerce_admin_billing_fields). Sie werden an derselben Stelle bearbeitet wie die Rechnungsadresse des Kunden.
Kompatibilität mit dem Block-Checkout
Section titled “Kompatibilität mit dem Block-Checkout”Ab Polski 1.14.0 werden NIP / REGON / IBAN über die WooCommerce-API woocommerce_register_additional_checkout_field (WC 8.6+) registriert. Eine einzige Registrierung deckt sowohl den klassischen Checkout als auch den Block-Checkout (Cart & Checkout Blocks) ab. Die Validierung läuft auf beiden Seiten.
Die WC-API speichert die Werte unter den Bestell-Metadaten _wc_billing/polski/nip, _wc_billing/polski/regon, _wc_billing/polski/iban. Polski spiegelt sie automatisch auf die Legacy-Schlüssel _billing_nip, _billing_regon, _billing_iban (Aktion woocommerce_set_additional_field_value), sodass die KSeF- und Pro-Rechnungsmodule die Daten ohne Änderungen lesen.
Shops mit einem WooCommerce älter als 8.6 nutzen weiterhin den nur klassischen Registrierungspfad (woocommerce_billing_fields) mit dem Umschalter “Kauf als Unternehmen” und Inline-JavaScript.