Adressdaten werden bei Registrierung im E-Mail-Template nicht ausgegeben

Hallo,

für ein Kundenprojekt wollen wir folgendes Szenario umsetzen:

Sobald ein neuer Kunde sich im Shop registriert hat, soll der Admin (des Shops) eine E-Mail erhalten mit den Angegeben Daten des Nutzer (bei der Registrierung) um diese überprüfen zu können.

Flow & E-Mail-Template wurden angelegt und funktionieren soweit auch… bisauf die Adressdaten (Straße und Hausnummer, Stadt, Land etc.). Diese werden in der E-Mail nicht angezeigt/ausgegeben… Hat jemand eine Idee woran das liegen könnte?

Anbei unser aktuell verwendeter Code für das E-Mail-Template:

    
    <h2>Neue Kundenregistrierung im Shop</h2>
    <p>Ein neuer Kunde hat sich im Shop registriert. Hier sind die Details:</p>

    <table border="1">
        <tr>
            <th>Anrede</th>
            <td>{{ customer.salutation.translated.displayName }}</td>
        </tr>
        <tr>
            <th>Vorname</th>
            <td>{{ customer.firstName }}</td>
        </tr>
        <tr>
            <th>Nachname</th>
            <td>{{ customer.lastName }}</td>
        </tr>
        {% if customer.company %}
        <tr>
            <th>Firma</th>
            <td>{{ customer.company }}</td>
        </tr>
        {% endif %}
        {% if customer.department %}
        <tr>
            <th>Abteilung</th>
            <td>{{ customer.department }}</td>
        </tr>
        {% endif %}
        {% if customer.vatIds|length > 0 %}
        <tr>
            <th>Umsatzsteuer-ID</th>
            <td>{{ customer.vatIds[0] }}</td>
        </tr>
        {% endif %}
        <tr>
            <th>E-Mail-Adresse</th>
            <td>{{ customer.email }}</td>
        </tr>

        <!-- Rechnungsadresse -->
        {% if customer.defaultBillingAddress %}
        <tr>
            <th colspan="2">Rechnungsadresse</th>
        </tr>
        <tr>
            <th>Straße und Hausnummer</th>
            <td>{{ customer.defaultBillingAddress.street }}</td>
        </tr>
        <tr>
            <th>PLZ</th>
            <td>{{ customer.defaultBillingAddress.zipcode }}</td>
        </tr>
        <tr>
            <th>Ort</th>
            <td>{{ customer.defaultBillingAddress.city }}</td>
        </tr>
        <tr>
            <th>Land</th>
            <td>{{ customer.defaultBillingAddress.country.translated.name }}</td>
        </tr>
        {% if customer.defaultBillingAddress.countryState %}
        <tr>
            <th>Bundesland</th>
            <td>{{ customer.defaultBillingAddress.countryState.translated.name }}</td>
        </tr>
        {% endif %}
        {% if customer.defaultBillingAddress.phoneNumber %}
        <tr>
            <th>Telefonnummer</th>
            <td>{{ customer.defaultBillingAddress.phoneNumber }}</td>
        </tr>
        {% endif %}
        {% else %}
        <tr>
            <td colspan="2">Keine Rechnungsadresse vorhanden.</td>
        </tr>
        {% endif %}

        <!-- Lieferadresse -->
        {% if customer.defaultShippingAddress and customer.defaultShippingAddress != customer.defaultBillingAddress %}
        <tr>
            <th colspan="2">Abweichende Lieferadresse</th>
        </tr>
        <tr>
            <th>Anrede</th>
            <td>{{ customer.defaultShippingAddress.salutation.translated.displayName }}</td>
        </tr>
        <tr>
            <th>Vorname</th>
            <td>{{ customer.defaultShippingAddress.firstName }}</td>
        </tr>
        <tr>
            <th>Nachname</th>
            <td>{{ customer.defaultShippingAddress.lastName }}</td>
        </tr>
        {% if customer.defaultShippingAddress.company %}
        <tr>
            <th>Firma</th>
            <td>{{ customer.defaultShippingAddress.company }}</td>
        </tr>
        {% endif %}
        {% if customer.defaultShippingAddress.department %}
        <tr>
            <th>Abteilung</th>
            <td>{{ customer.defaultShippingAddress.department }}</td>
        </tr>
        {% endif %}
        <tr>
            <th>Straße und Hausnummer</th>
            <td>{{ customer.defaultShippingAddress.street }}</td>
        </tr>
        <tr>
            <th>PLZ</th>
            <td>{{ customer.defaultShippingAddress.zipcode }}</td>
        </tr>
        <tr>
            <th>Ort</th>
            <td>{{ customer.defaultShippingAddress.city }}</td>
        </tr>
        <tr>
            <th>Land</th>
            <td>{{ customer.defaultShippingAddress.country.translated.name }}</td>
        </tr>
        {% if customer.defaultShippingAddress.countryState %}
        <tr>
            <th>Bundesland</th>
            <td>{{ customer.defaultShippingAddress.countryState.translated.name }}</td>
        </tr>
        {% endif %}
        {% if customer.defaultShippingAddress.phoneNumber %}
        <tr>
            <th>Telefonnummer</th>
            <td>{{ customer.defaultShippingAddress.phoneNumber }}</td>
        </tr>
        {% endif %}
        {% else %}
        <tr>
            <td colspan="2">Keine abweichende Lieferadresse vorhanden.</td>
        </tr>
        {% endif %}
    </table>

    <p>Bitte prüfen Sie die Angaben im Shop-Backend.</p>
    
</div>

Das funktioniert so leider nicht. Da bin ich früher auch auf die Fresse geflogen. So gehts:

Strasse/Nr   : {{ customer.addresses.at(0).street }} 
Adresszusatz : {{ customer.addresses.at(0).additionalAddressLine1 }}     
Postleitzahl : {{ customer.addresses.at(0).zipcode }} 
Ort          : {{ customer.addresses.at(0).city }}
Land         : {{ customer.addresses.at(0).country }} 

Danke erstmal für die Rückmeldung!

Wir haben es soeben ausprobiert, scheint aber weiterhin nicht zu funktionieren.
Haben das Mail-Template auch nochmal komplett „Plain“ gelassen & nur den von dir vorgeschlagenen Code eingefügt. Testmail geht raus, werte bleiben jedoch alle leer… Bei einer „richtigen“ Registrierung im Shop geht die Email gar nicht erst raus.

Haben mit folgendem Code nochmal geprüft, ob das „addresses-Aray“ überhaupt Einträge enthält:

{% if customer.addresses|length > 0 %}
    <p>Strasse/Nr: {{ customer.addresses.at(0).street }}</p>
    <p>Postleitzahl: {{ customer.addresses.at(0).zipcode }}</p>
    <p>Ort: {{ customer.addresses.at(0).city }}</p>
    <p>Land: {{ customer.addresses.at(0).country.translated.name }}</p>
{% else %}
    <p>Keine Adresse vorhanden.</p>
{% endif %}

Als Output erhalten wir leider „Keine Adresse vorhanden.“

Hat evtl. jemand noch eine andere Idee, woran es liegen könnte?

Ihr solltet das auf alle Fälle live testen, nicht per Testmail. Leider gibt es bei Shopware gravierende Unterschiede zwischen Testmail und einer realen Mail.

1 „Gefällt mir“

Ihr solltet diese komische Abfrage rausnehmen. customer.addresses ist ein Array und kein String, daher geht dieses Abfrage nicht. Braucht man auch nicht.

Bei einer „richtigen“ Registrierung im Shop geht die Email gar nicht erst raus.

Haben es auch live getestet. Da geht die Mail halt gar nicht raus…

Siehe meine vorletzte Antwort.