Zum Inhalt

Technische Angaben

Diese Seite richtet sich an Administratoren und an Ihre IT — anders als die übrigen Seiten nennt sie bewusst technische Bezeichnungen. Für die tägliche Arbeit brauchen Sie sie nicht.

Eckdaten

Angabe Wert
Technische Bezeichnung gb_withdrawal
Version 19.0.1.0.7 (Odoo 19.0)
Kategorie Website
Abhängigkeiten mail, website
Lizenz OPL-1
Hersteller GlobalBases.com GmbH, info@globalbases.com

Das Modul ist ohne Verkauf und ohne Buchhaltung lauffähig. Zwei optionale Erweiterungen bauen darauf auf:

Erweiterung Zusätzliche Abhängigkeit Zweck
gb_withdrawal_sale sale Schaltflächen Bestellung widerrufen im Kundenkonto; Verkaufsbenutzer erhalten die Berechtigung Widerrufe Benutzer.
gb_withdrawal_account account Anknüpfungspunkt für den Widerruf-Hinweis in der Rechnungs-E-Mail. Automatisch eingefügt wird derzeit nichts.

Sprachen

Die Quellsprache des Moduls ist Englisch; eine vollständige deutsche Übersetzung wird in i18n/de.po mitgeliefert. Menü, Spalten, Feldbeschriftungen, Status, Abschnittsüberschriften, Schaltflächen, der Einstellungsblock, das Formular auf der Website und die beiden Bestätigungs-E-Mails erscheinen daher jeweils in der Sprache des Benutzers bzw. der Website. Weitere Sprachen lassen sich ohne Codeänderung ergänzen, weil alle Zeichenketten übersetzbar sind.

Installation und Update

  1. Aktivieren Sie den Entwicklermodus und aktualisieren Sie die App-Liste.
  2. Installieren Sie Widerrufsfunktion über Apps.
  3. Nach dem Einspielen einer neuen Modulfassung führen Sie ein Update des Moduls durch (-u gb_withdrawal), damit Textänderungen und Migrationsschritte greifen.

Beim Update von einer Fassung vor 19.0.1.0.4 setzt ein Migrationsschritt den Betreff beider E-Mail-Vorlagen einmalig auf die gemeinsame Betreffzeile.

Das Widerrufs-Objekt

Alle Widerrufe liegen im eigenen Objekt gb.withdrawal. Es hängt am Nachrichtenverlauf (mail.thread), wird absteigend nach Eingang sortiert und trägt als Bezeichnung die Referenz.

Die Referenz stammt aus der Nummernfolge gb.withdrawal: Präfix WID-, sechs Stellen, lückenlos (no_gap). Sie finden sie unter Einstellungen → Technisch → Sequenzen.

Feld Typ Inhalt
name Text Referenz WID-######, vergeben beim Anlegen
customer_name, customer_email Text Angaben des Verbrauchers, Pflicht
contract_ref Text Bestell- oder Vertragsnummer, Pflicht, ohne Prüfung
withdrawal_reason, remark Text freiwillige Angaben
confirmation_text Text Wortlaut der Pflichtcheckbox zum Zeitpunkt des Widerrufs
website_id, website_name, lang Verknüpfung / berechneter Text / Text Website und Sprache des Eingangs. Im Formular erscheint website_name — ein berechneter, nicht gespeicherter Name, nicht die Verknüpfung
state Auswahl new, in_progress, done, rejected
submitted_at, done_at, rejected_at Datum/Zeit Zeitpunkte des Eingangs und der Statuswechsel
deadline_passed, goods_received, goods_damaged, refund_instructed, rejected_checkbox Ja/Nein Bearbeitungsschritte, je mit Feld …_at für den Zeitpunkt
mail_customer_sent, mail_operator_sent Ja/Nein Ergebnis des Versands der beiden Eingangs-E-Mails
active Ja/Nein archiviert, wenn nicht gesetzt

Automatik beim Speichern

  • Beim Anlegen werden Referenz und Eingangszeitpunkt gesetzt und die beiden Eingangs-E-Mails sofort versendet.
  • Ware angekommen, Ware beschädigt oder Rücküberweisung angewiesen heben den Status von Neu auf In Bearbeitung. Frist verstrichen tut das nicht, und aus einem anderen Status als Neu heraus geschieht es ebenfalls nicht.
  • Widerruf abgelehnt setzt den Status auf Abgelehnt.
  • Das Datumsfeld eines Hakens wird beim Anhaken gesetzt und beim Abhaken geleert; die vollständige Historie bleibt im Nachrichtenverlauf.
  • Zwei Regeln werden hart geprüft: Ware beschädigt nur mit Ware angekommen, und Rücküberweisung angewiesen schließt Widerruf abgelehnt aus.

Die Formularadresse

Angabe Wert
Adresse /widerrufsfunktion (GET und POST, kein Redirect von /widerruf)
Zugang öffentlich, ohne Anmeldung; im Sitemap enthalten
Schutz CSRF-Token je Formular, verstecktes Spam-Feld company_url
Pflichtfelder Name, E-Mail, Bestell- oder Vertragsnummer
Schritte review (prüfen), back (zurück), submit (verbindlich absenden)
Vorbefüllung ?ref=<Nummer> füllt die Bestellnummer; bei angemeldeten Kunden zusätzlich Name und E-Mail aus dem Kontakt

Ist Widerruf-Modul aktiv für die Website ausgeschaltet, antwortet die Adresse mit „nicht gefunden". Eine ausgefüllte Spam-Falle führt zur Bestätigungsseite, ohne dass ein Widerruf angelegt wird.

Die Schaltfläche Widerruf verbindlich absenden wird erst durch das Setzen der Pflichtcheckbox freigeschaltet; dafür sorgt eine kleine Skriptdatei des Moduls im Frontend.

E-Mails

Beim Eingang gehen zwei E-Mails hinaus, beide mit demselben Textbaustein und demselben Betreff.

Vorlage Empfänger
Widerruf: Bestätigung an Verbraucher Adresse aus dem Formular
Widerruf: Benachrichtigung an Betreiber Betreiber-E-Mail der Website, ersatzweise die E-Mail-Adresse der Firma

Sie finden beide unter Einstellungen → Technisch → E-Mail-Vorlagen.

  • Absender: E-Mail-Absender der Website, ersatzweise die E-Mail-Adresse der Firma, zuletzt die des ausführenden Benutzerkontos.
  • Betreff: „Widerruf <Referenz> vom <Datum> | Bestellung <Bestellnummer>", in der jeweiligen Sprache. Er steht in beiden Vorlagen als berechneter Ausdruck im Feld Betreff und lässt sich dort durch einen eigenen Text ersetzen; eine solche Änderung bleibt bei einem Modul-Update erhalten. Je Website unterscheiden lässt er sich nicht.
  • Sprache: Sprache des Widerrufs, ersatzweise die Fallback-Sprache der Website, ersatzweise die Sprache des Systems. Ist eine Sprache nicht installiert, wird auf die passende installierte Sprachfamilie und zuletzt auf Englisch ausgewichen.
  • Versand: sofort. Erfolg und Fehler stehen im Nachrichtenverlauf des Widerrufs; ein fehlgeschlagener Versand verhindert nicht das Anlegen des Vorgangs.

Der Mailtext steht nicht in der Vorlage

Beide Vorlagen enthalten im Textkörper keinen eigenen Text, sondern rufen einen gemeinsamen Textbaustein auf („Withdrawal Email Body" — der Name bleibt auch in einem deutschen Odoo englisch; zu finden unter Einstellungen → Technisch → Benutzeroberfläche → Ansichten). Dieser Baustein wird bei jedem Modul-Update neu eingespielt — Änderungen daran gehen dabei verloren. Erhalten bleiben dagegen die Vorlagen selbst: Betreff, Absender, Empfänger und auch ein Text, den Sie direkt im Textkörper der Vorlage anstelle des Aufrufs hinterlegen.

Einstellungen je Website

Die Einstellungen aus Konfiguration liegen am Website-Datensatz und gelten daher je Website. Übersetzbar sind Button-Text, Einleitungstext, Bestätigungsseitentext und Pflichtcheckbox-Text.

Rechte

Gruppe Lesen Anlegen Bearbeiten Löschen
Widerrufe Benutzer ja ja ja nein
Widerrufe Administrator ja ja ja ja

Beide Gruppen sehen alle Widerrufe, unabhängig von Website und Zuständigkeit. Eine Einschränkung je Website ist nicht vorgesehen. Die Erweiterung gb_withdrawal_sale verleiht Verkaufsbenutzern automatisch die Gruppe Widerrufe Benutzer.

Prüfen der Installation

Das Modul bringt automatisierte Tests mit: Prüfungen des Objekts (Referenzvergabe, Statuslogik, Regeln der Bearbeitungshaken, Betreff und Sprache der E-Mails), Prüfungen der Formularadresse (Pflichtfelder, Prüfschritt, Spam-Falle, abgeschaltetes Modul) und einen Oberflächentest für die Freischaltung der Absende-Schaltfläche.

odoo -d <datenbank> -i gb_withdrawal --test-enable --stop-after-init

Aufbewahrung und Datenschutz

Ein Widerruf enthält Name, E-Mail-Adresse und die Angaben des Verbrauchers im Klartext. Es gibt keine automatische Löschung und keine Aufbewahrungsfrist im Modul. Nicht mehr benötigte Vorgänge werden archiviert; das endgültige Löschen bleibt der Berechtigung Widerrufe Administrator vorbehalten. Der Nachrichtenverlauf enthält zusätzlich alle Statuswechsel und die versendeten E-Mails.

Bekannte Einschränkungen dieser Version

  • Der Schalter Honeypot aktiv hat keine Wirkung: die Spam-Falle ist immer aktiv.
  • Der Link zur Widerrufsbelehrung wird gespeichert, aber auf dem Formular nicht automatisch angezeigt.
  • Die Bestell- oder Vertragsnummer wird gegen keinen Auftrag und keine Rechnung geprüft.
  • Ein Widerruf-Hinweis wird nicht automatisch in die Auftragsbestätigungs- oder die Rechnungs-E-Mail eingefügt. Das Modul bringt dafür zwar einen Baustein mit, doch keine der beiden Erweiterungen ruft ihn in dieser Serie auf; der Hinweis wird je Projekt eingerichtet.