ich würde gerne die Dokumente wie z.B. Rechnung oder Lieferschein nach belieben anpassen. Also zum Beispiel einen Briefpapier hinzufügen und den Header und Footer abändern.
Ich habe im Backend nichts gefunden, bei Shopware 5 konnte man das früher im Backend anpassen.
Hallo zusammen. Wenn man z. B. etwas in der Rechnung ergänzen möchte (Zusatzfeld oder ähnliches) , dann kann man unter anderem in dieser Datei arbeiten.
/custom/plugins/MyTheme/src/Resources/views/documents/base.html.twig
Mir stellt sich nun die Frage wo man sich eine Rechnungsvorschau ansehen kann? Gibt es eine Dokumentvorschau, ohne dass eine Rechnung generiert werden muss?
Ich würde gerne soetwas wie folgendes hineinschreiben:
Zuvor habe ich ein Zusatzfeld für die Kategorie angelegt und bei aktiviertem Häkchen soll hier der Text in der Rechnung erscheinen. ein dump() funktioniert ja leider nicht.
Hallo Sebastian,
ich komme gerade beim Editieren der Dokumente nicht weiter, da ich nicht weiss welche Variablen in den Dokumenten-Templates zur Verfügung stehen. Leider kann ich in den Dokumenten keinen dump() ausführen. Das geht ja leider nur im Storefront… danke für deine Hilfe!
Grüße
alex
Die Dokumentvorschau kannst du dir anzeigen lassen indem du folgendes machst:
Bestellungen → Übersicht → eine Bestellungen ansehen über die 3 Punkte → runter scrollen bis zu den Belegen → „neues Dokument erstellen“-Button → Dokumenttyp auswählen → und den Button „Vorschau“ wählen.
Die Vorschau wird generiert.
Ich weiß nicht ob das für deinen Fall so auch funktioniert. Aber ganz generell kann man die so anzeigen lassen.
Das würde aber bedeuten, dass diese direkt generiert werden würde. Wenn ich dann wieder etwas an der Datei ändern möchte, dann verndert sich das Dokument leider auch nicht mehr. Ich weiß nicht, ob ich mich da evtl etwas zu ungenau ausdrücke. Aber ich würde diese Dokumentvorschau gerne quasi als Debugging-Vorschau verwenden, nur dass es sich dann eben tatsächlich um die Optik der PDF handelt.
Mittlerweile habe ich herausgefunden, dass man mittels
z.B. {% dump order %} debuggen kann, wenn zuvor in der .env auf den Developer-Modus umgestellt wurde.
{{ dump() }} gilt nur für normale Templates, die nicht als PDF generiert werden.
Hat noch jemand das Problem, dass sich Änderungen in der base.html.twig-Datei nicht auf das Layout der PDF-Dokumente auswirken?
Dies hier ist ja der korrekte Pfad (wird auch in allen Dokumentationen genannt): /custom/plugins/MyTheme/src/Resources/views/documents/base.html.twig
Ich habe bereits etliche Twig-Dateien angepasst und nie Probleme damit gehabt. Allerdings komme ich bei den PDF-Dokumenten nicht weiter. Hat jemand eine Idee, woran das liegen könnte? Mein Verdacht war, dass ein anderes Plugin/Theme ebenfalls die base.html.twig überschreibt (und damit auch meine base.html.twig), aber ich habe in dieser Hinsicht nichts gefunden.
edit:
die Datei invoice.html.twig im gleichen Verzeichnis kann ich seltsamerweise bearbeiten.
Ich vermute jetzt doch wieder, dass irgendein Plugin ebenfalls auf die base.html.twig zugreift und meine Änderungen überschreibt. Ich habe Plugins/Themes der Reihe nach deaktiviert, aber das hatte keine Auswirkungen.
Um sich in einem PDF die Daten einer Variable zum Debuggin auszugeben, kann man einfach folgenden Code verwenden:
{{ order|json_encode }}
Aber generell habe ich die Erfahrung gemacht, dass es viel einfacher ist einfach den Dokumenten Editor für Shopware 6 zu installieren und so seine Dokumente zu designen. Dann kann man einfach per Drag & Drop alle Texte und Styles anpassen und seine Bedingungen und schliefen setzen, wo man es braucht. Und falls man mal nicht weiterkommt hilft der Support super weiter.
Im Dokumenten Editor kann man dann auch einfach selbst z.B. eine variable wie folgt definieren und dann einfach in einem Textfeld ausgeben, wenn man debuggen möchte.
{% set debuggingData = order.customFields|json_encode %}
Klappt das bei jemanden sich an die Rechnungspositionen dran zu hängen?
Bei mir ändert sich da gar nichts. Nur wenn ich zb. „document_payment_shipping_inner“ nutze
Auch ich komme leider überhaupt keinen Schritt weiter. Dabei möchte ich nur, dass die Kundenanschrift anstatt links, rechts erscheint. Und zwar so, dass ich die Rechnung in eine Dokumententasche packen kann. Doch wie verschiebt man generell ein Element wie z.B. die Kundenadresse? In welcher Datei wird beschrieben , wo ein Element positioniert wird?
ich klinke mich mal hier ein, da hier schon einige Infos zusammengestellt sind.
Problem: ich möchte das Design im Template ändern, aber es passiert nichts.
Speuziell geht es um die Absenderadresse im Adressfeld der PDFs.
Die habe ich hier lokalisiert (im Basistemplate)
->shopware->vendor->core->Framework->Ressources->views->documents->includes->letter_header_html.twig
Hier habe ich die Codezeile geändert von
{{ config.companyAddress }} in
{{ config.companyName }} {{ config.companyAddress }}
Danach eine Bestellung getätigt, Rechnung erstellt, leider nicht geändert…
Also statt dem Basetemplate im Child angelegt.
shopware->custom->plugins->(SsikLibertyTheme)->src->Ressources->views->documents->includes
(ich habe den ganzen Ordner documents in views hineingelegt, der war dort noch nicht vorhanden).
Dann wieder die twig geändert, Rechnung generiert… Leider keine Änderung.
Muss ich da noch irgendwie einen Prozess anstupsen, Cache o-ä. oder habe ich den Ordner documents im Child falsch abgelegt?
Das „frei gestalten“ von PDF Dokumenten ist in SW6 leider eine sehr umständliche Methode und wurde vermutlich von Leuten programmiert, die selber noch nie PDF-Dokumente für echte Kunden angepasst haben. Sorry, aber anders kann ich das nicht sagen.
Allen viel Erfolg die keine Standard PDF Dokumente benutzen wollen.