Anrede in Rechnungsdokument

Im Rechnungsdokument wird die Anrede nicht ausgegeben bzw. die Variable ist leer. Jemand das Problem schon mal gehabt, weiß leider nicht wo ich noch schauen könnte!

billingAddress.salutation.letterName

Auf der rechten Seite kannst du alle verfügbaren Variablen ansehen, wenn du in den E-Mail-Template-Einstellungen bist.

Ohne nachgesehen zu haben, ist es nicht firstName und lastName oder surname oder ähnlich?

Es geht um das Rechnungsdokument (PDF), in den E-Mails funktioniert es die Anrede auszugeben:
{{ order.orderCustomer.salutation.translated.displayName }}

Ich meinte damit, dass du dort nach billingAddress suchst und dann entsprechende Variable gekürzt auf billingAddress, in das PDF überträgst. Scheinbar ist in dem PDF ja nur die billingAddress vorhandenen und nicht order.

Auf den ersten Blick scheint es ggf. billingAddress.firstName und billingAddress.lastName zu sein. Hast du diese mal getestet?

Ich glaube wir reden aneinander vorbei. Vor- und Nachname funktionieren. Ich will die Anrede ausgeben, also Frau oder Herr. Sollte ja in „salutation“ drin stehen, tut es aber nicht

Hast du da die Lösung gefunden? Ich habe grad das selbe Problem.

Leider nein, keine Lösung bisher gefunden.

Vielleicht {{order.orderCustomer.salutation.translated.letterName}}

Leider nein. Ich habe mir mal „order.orderCustomer“ per Dump ausgeben lassen.
Komisch ist, dass die salutationId in der Datenbank auf „mr“ zeigt, also korrekt ist. Aber die geladenene SalutationEntity dann „undefined“ sagt. Kann eigentlich nur ein Bug sein.

Shopware\Core\Checkout\Order\Aggregate\OrderCustomer\OrderCustomerEntity Object
(
 [email:protected] => xxx
 [orderId:protected] => ca5b65c08ee74969a5924b7d39cbc4a1
 [salutationId:protected] => 6a628d91d5c84452a8bbcbdb92bd4aed
 ...
 [customer:protected] => Shopware\Core\Checkout\Customer\CustomerEntity Object
 (
    ...
    [salutationId:protected] => 6a628d91d5c84452a8bbcbdb92bd4aed
    ...
    [salutation:protected] => Shopware\Core\System\Salutation\SalutationEntity Object
    (
    [salutationKey:protected] => undefined
    [displayName:protected] =>
    [letterName:protected] =>
    [translations:protected] =>
    [customers:protected] =>
    [customerAddresses:protected] =>
    [orderCustomers:protected] =>
    [orderAddresses:protected] =>
    [newsletterRecipients:protected] =>
    [_uniqueIdentifier:protected] => ed643807c9f84cc8b50132ea3ccb1c3b
    [versionId:protected] =>
    [translated:protected] => Array
    (
    [displayName] =>
    [letterName] =>
    [customFields] => Array
    (
    )
    )
    [createdAt:protected] => DateTimeImmutable Object
    (
    [date] => 2022-07-07 14:39:37.303000
    [timezone_type] => 3
    [timezone] => UTC
    )
    [updatedAt:protected] =>
    [_entityName:Shopware\Core\Framework\DataAbstractionLayer\Entity:private] =>  [_fieldVisibility:Shopware\Core\Framework\DataAbstractionLayer\Entity:private (
    [internalProperties:Shopware\Core\Framework\DataAbstractionLayer\Fiel (
    )
    )
    [extensions:protected] => Array
    (
    [foreignKeys] => Shopware\Core\Framework\Struct\ArrayStruct Object
    (
    [data:protected] => Array
    (
    )
    [apiAlias:protected] =>
    [extensions:protected] => Array
    (
    )
    )
    )
    [id:protected] => ed643807c9f84cc8b50132ea3ccb1c3b
    [customFields:protected] =>
    )

Noch ein Zusatz, gibt ein paar Einträge im Issue Tracker:

Laut dem hier, soll es in der 6.4.15.0 gelöst werden:

@AndreasBielmeier Blöde Frage, aber ist für den Kunden in der (Standard) Rechnungsadresse eine Anrede/Salutation eingestellt? Ich nehme an, dort kommt das „undefined“ her und nicht von orderCustomer.

Ja, Anrede ist sowohl bei der Rechnungsadresse als auch Lieferadresse erfassbar und gepflegt.

@AndreasBielmeier Ich hab mal bisschen in den Shopware-Dateien rumgestöbert, und das Problem scheint zu sein, dass in vendor/shopware/platform/src/Core/Checkout/Document/DocumentService.php in Funktion getOrderById keine Association auf eine Salutation gemacht wird.

Wenn man dort ->addAssociation('addresses.salutation') hinzufügt, dann kommt auch eine Anrede ins Dokument.

(Das Auslesen der Anrede wäre sogar im Template schon eingebaut: vendor/shopware/platform/src/Core/Framework/Resources/views/documents/includes/letter_header.html.twig. Nur sind eben keine Daten da, und es wird letterName statt displayName verwendet.)

Also ja, das ist offensichtlich ein Bug den Shopware beheben muss.

Schauen wir mal ob die nächste Shopware Version den Fehler final behebt.

Fehler wurde in 6.4.15.0 behoben, Anrede wird nun ausgeben.