Die wichtigsten Funktionen und Vorteile des Moduls
🌍 EU-VAT-Validierung — Provider-Kette
- VIES REST API (Europäische Kommission) — offizieller EU-Dienst, kostenlos, ohne API-Schlüssel, gibt eine gesetzeskonforme Konsultationsnummer zurück
- VATcomply — kostenloser Proxy zu VIES, Limit 2 Anfragen/s/IP, ohne Authentifizierung
- VATLayer (APILayer) — kommerzielle API mit hoher Verfügbarkeit, erfordert einen API-Schlüssel, gibt vollständige Firmendaten zurück
- viesapi.eu — polnischer kommerzieller VIES-Proxy mit HTTP Basic Auth, schnelle Antwortzeiten
- Konfigurierbare Kette mit 3 Slots — wählen Sie Provider 1 (Hauptanbieter), Provider 2 (Backup), Provider 3 (letzte Rettung)
- Automatischer Fallback — wenn der erste Provider einen Fehler oder Timeout zurückgibt, versucht das Modul automatisch den nächsten
- Timeout und Retry pro Provider — konfigurieren Sie separate Zeitlimits für jeden Provider
- Cache-TTL pro Provider — unterschiedliche Cache-Gültigkeitsdauern für jede API
- Schutz vor Duplikaten — JavaScript blockiert die Auswahl desselben Providers in 2 Slots, serverseitige Validierung auf PHP-Seite
🇵🇱 Validierung der polnischen NIP — GUS-Register
- Integration mit GUS BIR1.1 API — offizielles staatliches REGON-Register, kostenloser Schlüssel von api.stat.gov.pl
- Einfache Prüfung der NIP-Prüfsumme — gewichteter Algorithmus gemäß der offiziellen Spezifikation des Finanzministeriums
- Ablehnung ungültiger Muster — nur Nullen, nur Einsen, identische Ziffern — automatisch blockiert
- Validierung checksum = 10 — gemäß der offiziellen NIP-Spezifikation ist der Wert 10 ungültig
- Abruf von Firmendaten — Name, Adresse, Postleitzahl, Ort aus dem REGON-Register
- Konfigurierbarer Timeout und Retry — Anpassung an die Leistung der GUS-Server
💰 Automatische VAT-Befreiung (0 % Reverse Charge)
- Automatische Anwendung von 0 % VAT für verifizierte B2B-Kunden aus EU-Ländern
- Konfigurierbares Ursprungsland — Ausschluss von 0 % für inländische Transaktionen (gemäß dem VAT-Gesetz)
- Länderliste für die VIES-Prüfung — wählen Sie konkrete Länder aus, die der Validierung unterliegen
- Option "erlauben, wenn die Validierung fehlschlägt" — Registrierung bei VIES-Ausfall nicht blockieren
- Integration mit der PrestaShop-Steuer-Engine über `TaxManagerInterface`
👥 Automatische Verwaltung von Kundengruppen
- Automatische Gruppenzuweisung nach der Validierung — z. B. automatisch zur Gruppe "B2B" oder "VAT-befreit" hinzufügen
- Beibehaltung bestehender Gruppen — der Kunde verliert keine seiner bisherigen Gruppen
- Idempotentes Hinzufügen — keine Duplikate auch bei mehrfacher Validierung
- Validierung Group::isLoadedObject — Sicherheit bei gelöschten Gruppen
📧 E-Mail-Benachrichtigungen
- E-Mail an den Admin bei neuer B2B-Validierung — sofortige Information über einen neuen Firmenkunden
- E-Mail bei fehlgeschlagener erneuter Validierung — Sicherheitsalarm, wenn die VAT nicht mehr gültig ist
- Mehrsprachige Vorlagen (Polnisch, Englisch) — im Standard-PS-Editor bearbeitbar
- Konfigurierbare Absenderadresse — standardmäßig die Shop-E-Mail aus den PS-Einstellungen
🔄 Erneute Validierung bei Änderung des Bestellstatus
- Automatische erneute VAT-Prüfung bei Änderung der Bestellung auf einen ausgewählten Status (z. B. "Zahlung akzeptiert")
- Schutz der Compliance — Erkennung von Situationen, in denen die VAT zwischen Bestellung und Versand abgelaufen ist
- Vollständiges Audit-Log — jede erneute Validierung wird mit der VIES-Konsultationsnummer gespeichert
- Multishop-aware — verwendet den Shop-Kontext aus der Bestellung, nicht den aktuellen Admin-Selektor
📊 Professionelles Administrator-Dashboard
- 5 Dashboard-Bereiche — Provider-Kette, Validierungsstatistiken, letzte Validierungen, Provider-Telemetrie, Schnellstart-Anleitung
- Visualisierung der Kette — 3 Slots mit Symbolen, Namen, Status (aktiv/deaktiviert/kein Schlüssel)
- 7 KPI-Karten — insgesamt, korrekt, inkorrekt, letzte 7 Tage, VIES, GUS, Cache-Einträge
- Tabelle der letzten 10 Validierungen — VAT-Nummer, Quelle, Ergebnis, Firma, Kunde, Datum
- Provider-Telemetrie — Erfolgsquote pro Provider, Anzahl der Prüfungen, letzter Aufruf
- Provider-Karten mit FREE/PAID-Badges — klare Information über die Kosten
- Automatische Farbgebung — grün (OK), orange (Warnung), rot (Fehler)
🏪 Vollständige Multistore-Unterstützung
- Cache-Isolierung pro Shop — Spalte `id_shop` in der Cache-Tabelle, zusammengesetzter UNIQUE-Key
- Log-Isolierung pro Shop — Audit pro juristischer Einheit
- Konfiguration pro Shop — unterschiedliche Provider, API-Schlüssel, Kundengruppen für jeden Shop
- Shop-aware erneute Validierung — Hook verwendet den Bestellkontext, nicht den Admin-Kontext
- Automatisches Setzen von Standardwerten für alle Shops bei der Installation
⚡ Leistung und Optimierung
- Zweistufiger Cache — statisch (in-memory) + persistent (Datenbank)
- Negative Cache — keine erneuten DB-Anfragen für nicht validierte Nummern
- TTL enforcement beim Lesen — alte Einträge werden automatisch ignoriert
- Lazy Render des Dashboards — Statistiken werden nur im Tab Dashboard berechnet
- Einzelne aggregierte SQL-Abfrage — 6 COUNT(*) → 1 SUM(CASE WHEN)
- Read Replica für alle Lesevorgänge (`_PS_USE_SQL_SLAVE_`)
- Dedizierte Indizes — idx_date, idx_source, idx_shop
- Log-Aufbewahrung per CRON — automatische Bereinigung nach einem konfigurierbaren Zeitraum (Standard 365 Tage)
🔒 Sicherheit
- CSRF-Tokens an allen Einstiegspunkten (Front, Admin, CRON)
- Timing-safe comparison (`hash_equals`) für die Token-Validierung
- Vollständige SQL-Bereinigung — `pSQL()`, `(int)`, `bqSQL()` überall
- Smarty-Escaping — `htmlall:UTF-8` für alle Variablen in den Templates
- SSL verification — `CURLOPT_SSL_VERIFYPEER=true` bei allen Provider-Aufrufen
- Provider-Whitelist — es ist unmöglich, einen ungültigen Provider in der Kette zu speichern
- _PS_VERSION_-Guard in jeder PHP-Datei
- AdminSecurity-Annotation im Symfony-Admin-Controller
🛠️ Kompatibilität und Abhängigkeiten
- PrestaShop 1.7.0 – 9.x — vollständige Kompatibilität, versionierte Guards
- PHP 7.0 – 8.5 — keine moderne Syntax ohne Guards
- MySQL 5.6+ / MariaDB 10.x+ — utf8mb4-Charset
- Zero Composer / vendor — eigener PSR-4-Autoloader (15 Zeilen Code)
- Dual translation system — trans() + l()-Fallback funktioniert auf allen PS-Versionen
- Vollständige polnische Übersetzungen — 200+ Einträge in pl.php und XLF-Dateien
- Dual theme support — Legacy-(Smarty)- und moderne (Symfony)-Admin-Themes
👨💼 Administrationspanel — 10 Tabs
- Dashboard — Dashboard mit 5 Bereichen, Standard-Tab
- Einstellungen — allgemeine Validierungsoptionen, ISO-Check, Auto-Gruppe, Cache-TTL, erneute Validierung
- EU-VAT-Einstellungen — VIES-Aktivierung, Länderliste, 0-%-Satz, allow on fail, Ursprungsland
- Provider-Kette — 3 Selects mit JavaScript, das Duplikate blockiert
- VIES REST — Timeout, Cache-TTL, Retry (ohne Schlüssel)
- VATcomply — Timeout, Cache-TTL, Retry (ohne Schlüssel)
- VATLayer — API-Key, Timeout, Cache-TTL, Retry
- viesapi.eu — Identifier, Access Key, Timeout, Cache-TTL, Retry
- GUS-Konfiguration — Aktivierung, Land, Benutzerschlüssel, allow on fail, Timeout, Cache-TTL, Retry
- Tools — CRON-URL zur Bereinigung von Cache und Logs
🎯 Für wen ist dieses Modul gedacht?
- PrestaShop-Shops, die an Unternehmen (B2B) in der Europäischen Union verkaufen
- Verkäufer, die Rechnungen mit Reverse Charge ausstellen
- Shops, die den polnischen Markt bedienen und eine NIP-Prüfung im GUS benötigen
- Multistore-Plattformen mit unterschiedlichen juristischen Gesellschaften pro Shop
- Verkäufer, die ein Audit der VAT-Validierung gemäß den Steuervorschriften benötigen
- Shops mit hohem B2B-Transaktionsvolumen, die Cache und hohe Verfügbarkeit benötigen