Automatische Standard-Steuerregel bei Produkterstellung
Die automatische Zuweisung der Steuerregelgruppe bei jeder Produkterstellung in PrestaShop installieren und konfigurieren.
Wozu dieses Modul dient
Seit PrestaShop 1.7 hat ein neu angelegtes Produkt keine Steuerregel: Das Feld Steuerregel im Reiter Preise bleibt auf „Keine Steuer“, bis Sie es von Hand ändern. In einem aktiven Katalog passiert dieses Versäumnis schnell — und ein ohne Mehrwertsteuer veröffentlichtes Produkt verfälscht sowohl den im Shop angezeigten Bruttopreis als auch Ihre Buchhaltung.
Dieses Modul weist jedem erstellten Produkt automatisch die von Ihnen gewählte Steuerregelgruppe zu, ganz ohne Zutun. Ein Modus „nur füllen, wenn leer“ sorgt dafür, dass eine bereits gewählte Regel nie überschrieben wird.
Voraussetzungen
- PrestaShop 8.0 bis 9.x
- PHP 7.4 bis 8.3
- Mindestens eine aktive Steuerregelgruppe, konfiguriert unter International > Steuern > Steuerregeln
Das Modul erstellt keine Steuerregel. Es wendet lediglich eine Regel an, die bereits in Ihrem Shop existiert. Ist Ihre Liste der Steuerregeln leer, legen Sie zuerst eine an, bevor Sie das Modul installieren.
Installation
- Laden Sie das ZIP-Archiv aus Ihrem DataFirefly-Kundenkonto herunter.
- Gehen Sie im PrestaShop-Backoffice zu Module > Modul-Manager.
- Klicken Sie oben rechts auf Modul hochladen und legen Sie die ZIP-Datei ab.
- Klicken Sie nach abgeschlossener Installation auf Konfigurieren.
Wichtig: Solange Sie in der Konfiguration keine Steuerregelgruppe ausgewählt haben, bleibt das Modul bewusst inaktiv. Das ist eine Sicherheitsmaßnahme, damit es nicht direkt nach der Installation eine unerwünschte Regel anwendet.
Konfiguration
Die Konfigurationsseite umfasst zwei Einstellungen.
Anzuwendende Steuerregelgruppe
Ein Dropdown zeigt alle aktiven Steuerregelgruppen Ihres Shops (zum Beispiel „FR TVA 20%“). Wählen Sie diejenige aus, die neuen Produkten standardmäßig zugewiesen werden soll.
Der erste Eintrag der Liste lautet „Nichts tun (deaktiviert)“. Wählen Sie ihn, wenn Sie das Modul vorübergehend aussetzen möchten, ohne es zu deinstallieren.
Vorhandenen Wert überschreiben
Dieser Schalter bestimmt das Verhalten des Moduls, wenn ein Produkt zum Zeitpunkt der Erstellung bereits eine Steuerregel besitzt.
- Ja (Standard): Die konfigurierte Gruppe wird stets angewendet, unabhängig vom vorhandenen Wert.
- Nein: Die Gruppe wird nur angewendet, wenn das Produkt noch keine Steuerregel hat. Ein bereits gesetzter Wert wird nie verändert.
Stellen Sie diese Option auf Nein, wenn Sie regelmäßig bereits korrekt konfigurierte Produkte duplizieren: Die Kopien behalten dann die Steuerregel des Ursprungsprodukts.
Klicken Sie auf Speichern, um zu bestätigen. Das Modul ist sofort aktiv.
Funktionsweise
Das Modul klinkt sich in den Hook actionObjectProductAddAfter ein, der von PrestaShop unmittelbar nach dem Einfügen eines neuen Produktdatensatzes ausgelöst wird. Es schreibt dann das Feld id_tax_rules_group in die Tabellen product und product_shop.
Kompatibilität mit der Produktseite v2
Die neue Produktseite von PrestaShop 8 arbeitet anders als die alte: Sobald Sie auf Neues Produkt klicken, erstellt PrestaShop sofort ein temporäres Produkt (mitunter „Geisterprodukt“ genannt), noch bevor Sie überhaupt etwas eingegeben haben. Dieses Produkt erscheint erst nach dem ersten Speichern im Katalog.
Genau in diesem Moment greift das Modul ein. Die Steuerregel wird also in der Datenbank gesetzt, bevor das Formular überhaupt angezeigt wird, und der Reiter Preise zeigt direkt die richtige Gruppe an.
Technischer Hinweis. Der Hook actionProductAdd wird trotz seines Namens bei einer normalen Produkterstellung nicht ausgelöst: Der PrestaShop-Core ruft ihn nur beim Duplizieren eines Produkts auf. Aus diesem Grund verwendet dieses Modul den generischen Hook actionObjectProductAddAfter, der alle Erstellungswege zuverlässig abdeckt.
Gezieltes Schreiben in die Datenbank
Das Modul aktualisiert ausschließlich die Spalte id_tax_rules_group über eine direkte SQL-Abfrage. Es ruft Product::update() nicht auf, wodurch vermieden wird, dass Update-Hooks unnötig auf einem noch leeren Produkt ausgelöst werden. Kein anderes Produktfeld wird berührt, und es wird kein Core-Override hinzugefügt.
Abgedeckte Erstellungswege
| Erstellungsart | Regel angewendet |
|---|---|
| Manuelle Erstellung im Backoffice (Produktseite v2) | Ja |
| Duplizieren eines vorhandenen Produkts | Ja (über die Überschreiboption deaktivierbar) |
| CSV-Import | Ja |
| Erstellung über den Webservice / die API | Ja |
| Vor der Installation bereits vorhandene Produkte | Nein — das Modul greift nur bei der Erstellung |
Das Modul korrigiert bereits im Katalog vorhandene Produkte nicht rückwirkend. Nutzen Sie dafür die native Massenbearbeitung von PrestaShop oder ein Modul zur Stapelaktualisierung.
Multishop
Das Feld id_tax_rules_group ist shopspezifisch. Das Modul schreibt den Wert daher sowohl in die Tabelle product als auch in product_shop, und zwar auf dem Shop-Bereich, der dem Erstellungskontext des Produkts entspricht.
Die in der Konfiguration gewählte Steuerregelgruppe gilt hingegen für die gesamte Installation. Benötigen Ihre Shops unterschiedliche Steuerregeln, wenden Sie die häufigste an und passen Sie die Ausnahmen manuell an.
Fehlerbehebung
Die Steuerregel wird bei neuen Produkten nicht angewendet
Prüfen Sie der Reihe nach:
- Ist tatsächlich eine Gruppe ausgewählt? Öffnen Sie die Modulkonfiguration: Zeigt die Liste „Nichts tun (deaktiviert)“, ist das Modul konstruktionsbedingt inaktiv. Wählen Sie eine Gruppe und speichern Sie.
- Ist der Hook korrekt registriert? Wenn Sie das Modul von Version 1.0.0 aktualisiert haben, hat sich der verwendete Hook geändert. Ein bloßes Kopieren der Dateien genügt nicht: Deinstallieren Sie das Modul und installieren Sie es im Modul-Manager erneut, damit PrestaShop den neuen Hook registriert.
- Ist der Cache geleert? Gehen Sie zu Erweiterte Einstellungen > Leistung und leeren Sie den Cache.
- Existiert die Steuerregelgruppe noch? Wurde die ausgewählte Gruppe zwischenzeitlich gelöscht, tut das Modul sicherheitshalber nichts. Wählen Sie eine andere aus.
Ein dupliziertes Produkt verliert seine ursprüngliche Steuerregel
Das ist das erwartete Verhalten, wenn die Option Vorhandenen Wert überschreiben aktiv ist: Die Standardgruppe wird erneut auf die Kopie angewendet. Stellen Sie die Option auf Nein, damit Duplikate die Regel des Ursprungsprodukts behalten.
Der Bruttopreis aktualisiert sich im Formular nicht
Der Bruttopreis wird browserseitig aus der gewählten Steuerregel berechnet. Laden Sie die Produktseite neu: Da die Regel korrekt in der Datenbank gespeichert ist, zeigt der Reiter Preise die richtige Gruppe an und berechnet den Preis neu.
Deinstallation
Klicken Sie im Modul-Manager auf Deinstallieren. Das Modul löscht seine beiden Konfigurationsschlüssel und meldet sich von den Hooks ab. Dieses Modul legt keine Datenbanktabelle an, und bereits auf Ihre Produkte angewendete Steuerregeln bleiben unverändert erhalten.
Versionsverlauf
1.1.0
- Umstellung auf den Hook
actionObjectProductAddAfter, um die Erstellung über die Produktseite v2 (temporäres Produkt) abzudecken - Kompatibilität mit PrestaShop 8 und 9 bestätigt
1.0.0
- Erste Version: automatische Zuweisung der Steuerregelgruppe bei der Erstellung
- Konfigurierbare Standardgruppe und Überschreibmodus