Know-How-Sammlung für die Anpassung des Layoutes und der inhaltlichen Ausgaben von Rechnungen nach eigenen Bedürfnissen in Virtuemart 3.x.

Die Templates

Sämtliche Templates/Vorlagen für die Erstellung der Rechnungen liegen im Ordner components/com_virtuemart/views/invoice/tmpl/. Von hieraus können Scripte hergenommen und als Overrides in das eigene Template-Verzeichnis abgelegt werden, um nicht die Virtuemart-Core-Scripte modifizieren zu müssen, denn hier bestünde bekanntlich immer die Gefahr, dass dort vorgenommene Anpassungen bei nächsten Updates überschrieben werden würden.

Im o.g. Ordner befinden sich 3 Datei-Hauptgruppen von Vorlagen, die jeweils einen unterschiedlichen Präfix haben:

  • ohne Präfix sind die Templates die für die PDF-Erzeugungen relevant sind
  • der Präfix mail_html erzeugt die html-Mails
  • der Präfix raw_html erzeugt die RAW-Texte-Inhalte in der Mail, die man in der Regel kaum zu Gesicht bekommt und deshalb bei Anpassungen gern vergessen werden.

Dann gibt es jeweils diverse Sub-Template wie z.B. order, items, vendor etc. Diese Sub-Templates können jeweils durch Unteraufrufen eingebunden werden. Wenn man sich z.B. im PDF-invoice-Template befindet (invoice.php) kann mit $this->loadTemplate('items') das Templatescript invoice_items.php eingebunden werden. Auf gleiche Weise kann man sich seine eigenen Schnippsel erstellen und inkludieren.

Ab und zu muss man bei der Templatebezeichnung aufpassen, denn diese sind zwischen den o.g. Templategruppen nicht immer identisch. Während z.B. die Produktzeilen beim PDF invoice_items.php heißt, wird bei den HTML-Mails der Dateiname mail_html_pricelist.php verwendet. Nicht ganz konsequent.

 

 

 

Elegantes Testen von Anpassungen in den PDF-Vorlagen

Wenn man testen möchte, wie eine PDF-Mail z.B. nach erfolgten Anpassungen ausschaut, muss man nicht jedes mal eine neue Bestellungen erzeugen und auf die PDF in der New-Order-Mail warten. Einfacher und eleganter geht es, wenn man in den Rechnungsablageordner geht, wie er für das Projekt in der Virtuemart-Konfiguration abgelegt ist (i.d.R. voreingestellt: /vmfiles/) und die PDF der letzten Testbestellung löscht. Dann geht man ins Backend in die Orderliste und klickt einfach auf den Button invoice für diese Bestellung. Dadurch wird die PDF erneut über das aktualisierte Template erzeugt und man kann seine Änderungen begutachten.



 

Elegantes Testen von Bestellmails nach Anpassungen

Auch für das Testen von Änderungen in den Bestellmailsvorlagen gibt es eine schnelle Möglichkeit, ohne jeweils eine neue Bestellung auslösen zu müssen. Dazu geht man wieder ins Joomla-Backend in die Bestellungen-Verwaltungsliste von Virtuemart. Jeder Listeneintrag hat ein Statusfeld in dem der aktuelle Status der Bestellung angezeigt wird und ein neuer Status gesetzt werden kann. In der Zeile der Testbestellung ändert man einfach den Status z.B. von "Vom Kunden bestätigt" in "in Bearbeitung". Dadurch wird auch von in der Listenzeile das Checkbox-Häkchen gesetzt. Nun klickt man ganz oben links auf den Button "Status aktualisieren". Dadurch werden dann die Mails erzeugt und versendet und man kann die Änderungen begutachten.