Moin, ich frage mich gerade, ob es möglich ist, den Dateinamen der PDF-Datei beim Erstellen von Rechnungen anzupassen. Benannt wird das PDF ja immer mit der Rechnungsnummer. Das ist ja auch logisch und sinnvoll. Ich hätte jedoch gerne für die übersichtlichere Archivierung der Rechnungen den Namen des Kunden hinter der Rechnungsnummer. Also z.B. “20026-Max_Mustermann.pdf” Wie die Rechnungen intern bei Shopware abgelegt werden ist mir da egal, mir geht es nur um die lokal gespeicherten PDF’s. Ich speichere ja jede Rechnung lokal, um sie zu drucken, sonstwie zu versenden und eben zum digitalen Archivieren. Es ist einfach schön, wenn ich im Archiv der letzten X Jahre suche, da diret nach Kundennamen suchen zu können, ohne direkt die Bestellnummer zu wissen. Die optische Vernüpfung von Rn.Nr. und Name finde ich da sehr angenehm. Mir ist lar, dass ich beim lokalen speichern der erstellten PDF’s den Dateinamen manuell anpassen kann. Würde das nur gerne automatisieren. Hat da jemand eine Idee, wo ich das machen kann? Ich denke nicht, dass es über irgendeine Einstellung im Backend geht, ich muss wahrscheinlich also an irgendeiner Stelle im Code Anpassungen machen. Nur wo? Und wie?
Hallo, die gesuchte Stelle ist die openPdfAction im Backend-Order-Controller: Hier wird ein Dokument auf Basis des übergebenen Hashes gelesen und dann mit readfile in den Stream geschrieben. Der Dateiname dann mit setHeader(… filename=) gesetzt. Leider gibt es da kein schönes Event und auch keine Konfigurationsoption, so auf Anhieb wirst du da um einen Hook nicht umhin kommen, denke ich. Besten Gruß, Daniel
Danke! Das ist doch schonmal ein Anfang. Dann schau ich mal was ich da machen kann. Kann ja nicht die Welt sein den usernamen da abzugreifen und einzubauen.
Hallo, bist du hier schon weiter gekommen? Wir haben den Wunsch, die PDFs alle unter der Bestellnummer zu speichern, jedoch mit einem Prefix für Rechnung / Lieferschein / Eigene Dokumente / … Also Bestellung 0001 soll RE-0001 / LS-0001 / XX-0001 / … als Dokumentennamen erhalten. Hast du hier einen Tipp für mich wie das umzusetzen ist?