Leitfaden: PDF Dokumente in Shopware Anpassen - Konkretes Beispiel: Lieferadresse auf der Rechnung

Leitfaden: PDF Dokumente in Shopware Anpassen - Konkretes Beispiel: Lieferadresse auf der Rechnung

Alexander Wolf 24. Februar 2018 6

In diesem Blogpost zeige ich dir wie du die Lieferadresse auf der generierten Rechnung von Shopware anzeigen lassen kannst.

Auf der PDF Rechnung die von Shopware generiert wird steht die Rechnungsadresse. Falls es eine abweichende Lieferadresse gab, sucht man diese vergeblich.

Zumindest im Standard PDF Template!

Genau diese Anpassung wollen wir in diesem Tutorial durchführen. Ich möchte dir in diesem Blogbeitrag zeigen wie du die Lieferadresse auf deine Rechnung bekommst. Nicht nur das! Ich werde dir damit auch zeigen wie du die Dokumente in Shopware über dein eigenes Theme anpassen kannst.

Dabei kannst du völlig kreativ alles austauschen oder anpassen. Fangen wir an!

(Lesedauer ~ 4 Minuten)

Vorbereitung

Es kann wirklich hilfreich sein die Lieferadresse auf der Rechnung anzeigen zu lassen. So kannst du die Bestellung im Nachhinein einfacher zurückverfolgen und siehst auf den ersten Blick wo die Ware geliefert wurde.

Ich habe eine Bestellung durchgeführt und mir eine Rechnung über das Shopware Backend generieren lassen:

shopware standard rechnung pdf

Oben links finden wir die Rechnungsadresse. Unter diesen Block wollen wir die Lieferadresse anzeigen lassen, jedoch nur dann, und nur dann, wenn sich diese abweicht.

Eigenes Theme erstellen

Da wir diese Anpassungen über ein eigenes Theme erledigen wollen, benötigst du erst einmal ein eigenes Theme. Wie das funktioniert erfährst du entweder in unserem Video Wie du dein erstes Shopware 5 Theme anlegst und anpasst – Teil 1 oder unserem Blogbeitrag Was du über die Shopware 5 Theme Struktur wissen musst und wie du ein eigenes Template erstellst 

Das arbeitest du jetzt durch und kommst dann wieder her. Solltest du schon ein eigenes Theme haben, kannst du direkt weiterlesen. 

Block erweitern

In diesem Beispiel möchte ich die PDF für die Rechnungen anpassen. Daher navigieren wir in unserem FTP Client in den Ordner 

/themes/Frontend/Bare/documents

Wir navigieren zuerst zum Bare Theme um uns den Aufbau des Themes anzuschauen, bevor wir anfangen Blöcke anzupassen oder zu erweitern. In der index.tpl finden wir alles was wir brauchen.

Die Zeilen 91 - 124 sind dabei am interessantesten für uns.


So wird die Rechnungsadresse angezeigt. Um jetzt an die Lieferadresse zu kommen müssen wir zunächst eine eigene Datei anlegen. Dazu begibst du dich in den Ordner

/themes/Frontend/DEINTHEME/documents

Hier legst du deine eigene index.tpl an und gibst erbst von der Original Datei:


Wichtig ist, dass du wirklich auf den Pfad achtest: parent:document/index.tpl

Bisher wirst du keinen Unterschied bemerken, da wir alles vom Original Theme erben, d.h. wir haben noch keine Anpassungen gemacht. Aber wenn du jetzt den ersten Smarty Block überschreibst, sollte sich etwas tun. 

Als erstes erweitere ich den Block mit der Rechnungsadresse, sodass ich einen beliebigen Text an die richtige Position bekomme. Danach ersetzen wir diesen beliebigen Text mit der Versandadresse. Um den Rechnungsblock zu erweitern ergänzen wir den Code in der index.tpl


Im Backend müssen wir den Cache leeren und das Theme kompilieren. Danach kannst du dir die Vorschau anzeigen lassen. Die Vorschau findest du unter

Einstellungen > Grundeinstellungen > Shopeinstellungen > PDF - Belegerstellung

Da einfach auf das Bearbeiten Icon klicken und auf den Vorschau Button.

Jetzt solltest du wie ich den neuen Text sehen:

Screenshot 2018 02 24 07.17.41

Troubleshooting: Änderungen werden nicht übernommen

Hinweis: Sollte das nicht funktioniert haben, musst du als erstes die Shopeinstellungen prüfen. Jeder Shop kann verschiedene Templates verwenden. Diese Einstellung findest du im Backend unter

Einstellungen > Grundeinstellungen > Shopeinstellungen > Shops

Dann auf das Bearbeiten Icon deines Shops und rechts in der Sidebar das Dokumenten-Template DEINTHEME auswählen (bei dir heißt das Theme vermutlich anders).

Speichern, nochmal Cache leeren, Theme kompilieren und die Vorschau öffnen. Jetzt solltest du den neuen beliebigen Text auch sehen!

Lieferadresse anzeigen

Da der Text jetzt angezeigt wird, ist es an der Zeit den beliebigen Text mit der korrekten Lieferadresse zu ersetzen. Dazu packst du den folgenden Code in die index.tpl. Wir gehen diesen gleich Zeile für Zeile durch und besprechen alles im Detail.


Speichern, Datei hochladen, Cache leeren, Theme kompilieren und wieder in die Vorschau gucken.

Das Ergebnis sieht so aus:

Screenshot 2018 02 24 07.55.54

Bevor wir das Ganze mit einer richtigen Testbestellung testen, schauen wir uns den Code an. 

In Zeile 6 erstellen wir eine neue Variable mit dem Namen shippingAddress, welche den Inhalt von shipping bekommt. Da stecken die ganzen Informationen zur Versandadresse drin.

Zeile 8 ist wichtig, da die Lieferadresse sonst direkt an der Rechnungsadresse klebt. So fügen wir eine leere Zeile für etwas Abstand hinzu.

Die Zeilen 9 - 30 sind von der Rechnungsadresse kopiert, da habe ich lediglich die Variable ausgetauscht, damit die Lieferadresse verwendet wird.

Der große Test

Fertig! Jetzt kommt der erste Test mit einer richtigen Testbestellung. Natürlich musst du am besten eine abweichende Lieferadresse verwenden, damit du auch sehen kannst, dass die Lieferadresse verwendet wurde.

Ich gönne mir Zartbitter mit Birne und Mandeln und trage eine abweichende Lieferadresse ein. AGB akzeptieren nicht vergessen und Bestellung abschicken.

Im Backend unter Kunden > Bestellungen findest du jetzt die neue Bestellung. In den Details der Bestellung unter Dokumente kannst du die Rechnung generieren und runterladen.

abweichende lieferadresse

Bei mir hat alles super funktioniert und ich bin zufrieden! Und jetzt lasse ich mir die bestellte Zartbitter Schokolade schmecken.

zartbitter

Abschluss

In diesem Beitrag habe ich bisher nur eine Möglichkeit beschrieben. Du kannst die abweichende Adresse auch nur anzeigen lassen, wenn diese tatsächlich abweicht. Dazu habe ich dir ein paar interessante Links zusammengestellt mit denen du dein Dokument weiter optimieren kannst.

Die anderen Dokumente sind entsprechend gleich aufgebaut, da diese von der index.tpl erben und somit entsprechend alle den selben Dokumenten Kopf besitzen.

Interessante Links

Hol dir unseren kostenlosen Shopware E-Mail-Kurs:

Lerne wie du deinen eigenen Shopware 5 
Shop erstellst und verwaltest

6 Kommentare

  • Hallo,
    wäre einfach schön, wenn oben im Beispiel der Fehler auch korrigiert wird.
    also im Code:
    {extends file="parent:documents/index.tpl"}

    {block name="document_index_address"}
    {$smarty.parent.block}
    Lieferadresse hier rein
    {/block}

    {$smarty.block.parent} statt {$smarty.parent.block}
  • Jetzt habe ich ziemlich viel Zeit damit verbraten, herauszufinden, was nicht stimmt, weil es bei mir nicht funktionierte:

    1. Fehler:
    "Wichtig ist, dass du wirklich auf den Pfad achtest: parent:document/index.tpl"

    Das stimmt definitiv (wichtig ist, dass du auf den Pfad achtest). Nur dass der Pad richtig documents heißt und nicht document

    Wichtig ist also, dass du wirklich auf den Pfad achtest: parent:documents/index.tpl

    2. Fehler:
    {block name="document_index_address"}
    {$smarty.parent.block}
    Lieferadresse hier rein
    {/block}

    führt zum Syntax-Fehler.

    {block name="document_index_address"}
    {$smarty.block.parent}



  • Hi Alexander
    Danke für Deine Antwort. Nei funzt so nicht. Im Moment habe ich mit meiner Config.
    Bei abweichender Rechnung/Lieferadresse nur eine Adresse auf Lieferschein und die andere auf der Rechnung. Macht doch so auch mehr sinn? Lieferschein =Lieferadresse und Rechnung=Rechnungsadresse. Bei dieser konfiguration sind immer beide drauf? Und auch das mit dem Herr/ Frau auf der ersten Linie geht so nicht. Sehe da nicht durch wirklich.
  • Hey Chrigi,

    das kann durchaus Sinn machen! Ich denke das entscheidet am besten jeder Shopbetreiber fuer seinen Shop individuell.

    Vielleicht kannst du mir deinen Code an support@8mylez.com schicken, sodass ich einen Eindruck bekomme was falsch gelaufen sein koennte.

    Gruß
    Alexander
  • Besten Dank
    Geniale Anleitung.
    Genau das sollte ich noch erledigen. ich habe eine kleine Änderung gemacht im Index.tpl nur das die Anrede auf eine Neue Zeile kommt. Original ist es ja Herr Muster und ich wollte:
    Herr
    Muster Andreas.

    Nur leider nicht Updatesicher das ganze. Kann ich nicht die ganze Index.tpl vom bare Theme in mein Eigenes kopieren.
    Natürlich denn Text davor:
    {extends file="parent:documents/index.tpl"} Dann übernimmt er ja alles oder?
    Sonst müsste ich die Anrede auch noch irgendwie einpacken in Deinen Code.
    Danke vielmals für Deine Anleitungen

    Gruss Chrigi
  • Hey Chrigi,

    vielen Dank!

    Ich wuerde davon abraten den ganzen Code zu kopieren, da du dann Code mit gleichem Code überschreibst. So bekommst du auch evtl. Änderungen bei einem Update nicht mit, da alles überschrieben wird von dir.

    Lieber in der ersten Zeile ableiten und dann nur den entsprechenden Block überschreiben. Für dein Vorhaben müsste es reichen den Block "document_index_address_base" zu überschreiben und da dann entsprechend den Zeilenumbruch einzufügen.

    Ungefähr so:

    {block name="document_index_address_base"}
    {$User.$address.company}

    {$User.$address.salutation|salutation}

    {if {config name="displayprofiletitle"}}
    {$User.$address.title}

    {/if}
    {$User.$address.firstname} {$User.$address.lastname}

    {$User.$address.street}

    {/block}

    Ich habe es nicht getestet, aber sollte funktionieren. Falls nicht, meld dich gerne nochmal!

    Gruß
    Alexander

Was denkst du?

Shopware SEO
Guide 2018

shopware seo guide

Genug von schlechten Rankings?

mehr erfahren

Tools, die wir

verwenden

seobility

Das Shopware eBook für Einsteiger!

shopware tutorial ebook mockup
Ausführliche Schritt für Schritt Anleitungen, Tipps & Tricks für alle, die gerne am eigenen Shopware Shop basteln.
Jetzt kaufen

Hol dir 

wertvolle Tipps 
für deinen
Shopware Shop

Wir zeigen dir, wie du deinen
Shopware 5 Shop optimieren
kannst.


Trage einfach deine
E-Mail Adresse ein:

Beliebt

Was du über die Shopware 5 Theme Struktur wissen musst und wie du ein eigenes Template erstellst
Theme: Eigenes Listing Layout erstellen
Die größten Fehler bei der Entwicklung eines Shopware 5 Themes
Logo Größe anpassen mit Less für Shopware 5
Staging Umgebung – Was ist das und warum brauchst du eine?
Vorsicht Shopware Update! Was du beim Updaten beachten musst
Plugin Theme anpassen
Wie du jedes Icon in Shopware 5 anpassen kannst
Theme Entwicklung: Hugo Boss Header zum Selbermachen
Shopware 5 - Wie du deine Shop Geschwindigkeit optimierst
© 2017 by 8mylez. Powered by Goltfisch GmbH.