Kann mir bitte jemand die Variable für die Rechnungsnummer sagen, weil ich finde sie nicht?
Auf was bezieht sich denn deine Frage? Backend, Frontend, Dokumente, Mail-Vorlagen?
Für Rechnungen.
{{ config.custom.invoiceNumber }}
funktioniert dort anscheinend.
Für E-Mail-Vorlagen brauche ich sie auch. Da funktioniert {{ config.custom.invoiceNumber }}
nicht.
Wie heißt die Variable dort? @R4M oder @Max_Shop wisst ihr sie?
Bei der Bestellbestätigung wird es nicht gehen, wenn man die Rechnung nicht automatisch erstellen lässt.
Für eine E-Mail zur Zahlungserinnerung sollte es gehen.
@UX4U Probiere mal bitte {{ document.config.custom.invoiceNumber }}
@d.baumann das funktioniert leider nicht.
Damit wird die E-Mail versendet, aber die Variable zeigt keinen Wert an.
Der direkte Key, falls du keinen eigenen Zähler verwendest, lautet: {{ document.config.documentNumber }}
Wichtig: Die Variable document ist nur verfügbar, wenn die Mail direkt beim Dokument-Versand (Rechnung, Gutschrift etc.) verschickt wird. In den Standard-Bestellbestätigungen existiert diese Variable nicht.
@d.baumann das funktioniert leider auch nicht.
Die Variable wäre für die Zahlungserinnerungs-E-Mail.
Ich ändere den Zahlungsstatus auf “Erinnert” und hake die Checkbox zum Anhängen der Rechnung an. Nach dem Klick auf “Status aktualisieren” wird die Zahlungserinnerungs-E-Mail verschickt.
Du kannst ja im Controller gucken welche Daten übergeben werden und dann z.B. mit dd()
loggen. Ansonsten kannst du im Mail-Template einfach das ganze Objekt in JSON umwandeln und dann in einen Prettyfier geben und siehst genau was für Variablen du zur Verfügung hast und nach der Rechnungsnummer suchen. {{ config|json_encode }}
=> Gibt dir in der Email die ganzen Daten aus.
Hoffe das hilft,
VG
@bemy37 ich weiß leider nicht wie das geht. Wie sollte ich das deiner Meinung nach machen?
Da geht der {{ dump() }}
-Befehl im Frontend noch leichter.
Du brauchst es ja in der Email Frontend hat mit der Mail nichts zutun. Du kannst im Email Template jede Variable nehmen wie .z.B customer und dann mit {{ customer|json_encode }} das ganze Customer Objekt ausgeben. Dann siehst du genau was für Variablen es beinhaltet .z.B. firstname, lastname usw. und dann siehst du sowas in der Email: {
„id“: „f3c9a7d4b1d84c8bb4f6f1a6c29d1234“,
„customerNumber“: „10001“,
„firstName“: „Ali“,
„lastName“: „Demir“,
„email“: „``ali.demir@example.com``“,
„active“: true,
„group“: {
„id“: „cfbd5018d38d41d8adca10d94fc8da58“,
„name“: „Standard customer group“
},
„defaultBillingAddress“: {
„street“: „Hauptstr. 123“,
„zipcode“: „30173“,
„city“: „Düsseldorf“
}
}
Das ist das Customer Object wenn du jetzt den Kundengruppennamen ausgeben willst dann gehst du so vor: {{ customer.group.name }}
du siehst dann quasi alle Werte die das ausgegebene Objekt enthält.
Wenn ich im E-Mail-Template für die Zahlungserinnerung {{ customer|json_encode }}
einfüge und eine Test-E-Mail verschicke, gibt die Variable “null” als Wert zurück.
Die Variable verhindert aber, dass eine E-Mail verschickt wird, wenn ich den Zahlungstatus auf “Erinnert” ändere.
Die Customer Variable war nur ein Beispiel du kannst alle Variablen mit json_encode inspizieren wie z.B. die config probiere es damit, wenn das nicht geht dann weitere. Bei einer Test Mail ist vermutlich kein eingeloggter Benutzer hinterlegt deswegen ist es auch null wenn ein eingeloggter Kunde etwas bestellt dann hast du das Customer Objekt also den Kunden mit all seinen Daten (Name,Nachname etc.) im Mail Template zur Verfügung, wenn es keinen gibt dann ist es null.
Mit
{{ order | json_encode(constant('JSON_PRETTY_PRINT')) }}
werden mir hunderte Variablen angezeigt, aber die Rechnungsnummer ist nicht bei den Werten dabei.
Dann musst du dir diese per Subscriber (Plugin) selbst hinzufügen. Shopware lädt/speichert nicht in jedem Kontext alle Daten, weil das viel zu Ressourcen intensiv wäre. Und ja, “nur eine Rechnungsnummer”… das ist halt ganz ganze Objekt mit hunderten weiteren Daten.