Und gleich noch eine Frage - ich wollte mich gerade durch die Änderungen Schritt für Schritt jeweils mit einer Testbestellung durcharbeiten.
An erster Stelle stand das verschieben der Position von Rechnungs- und Lieferadresse nach oben.
Ich habe dazu die Shopware-Originalvorlage verwendet, und einfach die Position wie folgt verschoben:
<div style="font-family:arial; font-size:12px;">
{% set currencyIsoCode = order.currency.isoCode %}
{% set billingAddress = order.addresses.get(order.billingAddressId) %}
<strong>Rechnungsadresse:</strong><br>
{{ billingAddress.company }}<br>
{{ billingAddress.firstName }} {{ billingAddress.lastName }}<br>
{{ billingAddress.street }} <br>
{{ billingAddress.zipcode }} {{ billingAddress.city }}<br>
{{ billingAddress.country.translated.name }}<br>
<br>
{% if delivery %}
<strong>Lieferadresse:</strong><br>
{{ delivery.shippingOrderAddress.company }}<br>
{{ delivery.shippingOrderAddress.firstName }} {{ delivery.shippingOrderAddress.lastName }}<br>
{{ delivery.shippingOrderAddress.street }} <br>
{{ delivery.shippingOrderAddress.zipcode}} {{ delivery.shippingOrderAddress.city }}<br>
{{ delivery.shippingOrderAddress.country.translated.name }}<br>
<br>
{% endif %}
Hallo {% if order.orderCustomer.salutation %}{{ order.orderCustomer.salutation.translated.letterName ~ ' ' }}{% endif %}{{ order.orderCustomer.firstName }} {{ order.orderCustomer.lastName }},<br>
<br>
Ihre Bestellung ist am {{ order.orderDateTime|format_datetime('medium', 'short', locale='de-DE') }} bei uns eingegangen.<br>
<br>
Bestellnummer: {{ order.orderNumber }}<br>
<br>
Sobald ein Zahlungseingang erfolgt ist, erhalten Sie eine separate Benachrichtigung und Ihre Bestellung wird verarbeitet.<br>
<br>
Den aktuellen Status Ihrer Bestellung können Sie jederzeit über diesen Link abrufen: {{ rawUrl('frontend.account.order.single.page', { 'deepLinkCode': order.deepLinkCode }, salesChannel.domains|first.url) }}<br>
Über diesen Link können Sie auch die Bestellung bearbeiten, die Zahlungsart wechseln oder nachträglich eine Zahlung durchführen.<br>
<br>
<strong>Informationen zu Ihrer Bestellung:</strong><br>
<br>
<table border="0" style="font-family:Arial, Helvetica, sans-serif; font-size:12px;">
<tr>
<td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Produkt-Nr.</strong></td>
<td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Produktbild</strong></td>
<td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Bezeichnung</strong></td>
<td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Menge</strong></td>
<td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Preis</strong></td>
<td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Summe</strong></td>
</tr>
{% for lineItem in order.nestedLineItems %}
{% set nestingLevel = 0 %}
{% set nestedItem = lineItem %}
{% block lineItem %}
<tr>
<td>{% if nestedItem.payload.productNumber is defined %}{{ nestedItem.payload.productNumber|u.wordwrap(80) }}{% endif %}</td>
<td>{% if nestedItem.cover is defined and nestedItem.cover is not null %}<img src="{{ nestedItem.cover.url }}" width="75" height="auto"/>{% endif %}</td>
<td>
{% if nestingLevel > 0 %}
{% for i in 1..nestingLevel %}
<span style="position: relative;">
<span style="display: inline-block;
position: absolute;
width: 6px;
height: 20px;
top: 0;
border-left: 2px solid rgba(0, 0, 0, 0.15);
margin-left: {{ i * 10 }}px;"></span>
</span>
{% endfor %}
{% endif %}
<div{% if nestingLevel > 0 %} style="padding-left: {{ (nestingLevel + 1) * 10 }}px"{% endif %}>
{{ nestedItem.label|u.wordwrap(80) }}
</div>
{% if nestedItem.payload.options is defined and nestedItem.payload.options|length >= 1 %}
<div>
{% for option in nestedItem.payload.options %}
{{ option.group }}: {{ option.option }}
{% if nestedItem.payload.options|last != option %}
{{ " | " }}
{% endif %}
{% endfor %}
</div>
{% endif %}
{% if nestedItem.payload.features is defined and nestedItem.payload.features|length >= 1 %}
{% set referencePriceFeatures = nestedItem.payload.features|filter(feature => feature.type == 'referencePrice') %}
{% if referencePriceFeatures|length >= 1 %}
{% set referencePriceFeature = referencePriceFeatures|first %}
<div>
{{ referencePriceFeature.value.purchaseUnit }} {{ referencePriceFeature.value.unitName }}
({{ referencePriceFeature.value.price|currency(currencyIsoCode) }}* / {{ referencePriceFeature.value.referenceUnit }} {{ referencePriceFeature.value.unitName }})
</div>
{% endif %}
{% endif %}
</td>
<td style="text-align: center">{{ nestedItem.quantity }}</td>
<td>{{ nestedItem.unitPrice|currency(currencyIsoCode) }}</td>
<td>{{ nestedItem.totalPrice|currency(currencyIsoCode) }}</td>
</tr>
{% if nestedItem.children.count > 0 %}
{% set nestingLevel = nestingLevel + 1 %}
{% for lineItem in nestedItem.children %}
{% set nestedItem = lineItem %}
{{ block('lineItem') }}
{% endfor %}
{% endif %}
{% endblock %}
{% endfor %}
</table>
{% set delivery = order.deliveries.first %}
{% set displayRounded = order.totalRounding.interval != 0.01 or order.totalRounding.decimals != order.itemRounding.decimals %}
{% set decimals = order.totalRounding.decimals %}
{% set total = order.price.totalPrice %}
{% if displayRounded %}
{% set total = order.price.rawTotal %}
{% set decimals = order.itemRounding.decimals %}
{% endif %}
<p>
<br>
<br>
{% for shippingCost in order.deliveries %}
Versandkosten: {{ shippingCost.shippingCosts.totalPrice|currency(currencyIsoCode) }}<br>
{% endfor %}
Gesamtkosten Netto: {{ order.amountNet|currency(currencyIsoCode) }}<br>
{% for calculatedTax in order.price.calculatedTaxes %}
{% if order.taxStatus is same as('net') %}zzgl.{% else %}inkl.{% endif %} {{ calculatedTax.taxRate }}% MwSt. {{ calculatedTax.tax|currency(currencyIsoCode) }}<br>
{% endfor %}
{% if not displayRounded %}<strong>{% endif %}Gesamtkosten Brutto: {{ total|currency(currencyIsoCode,decimals=decimals) }}{% if not displayRounded %}</strong>{% endif %}<br>
{% if displayRounded %}
<strong>Gesamtkosten Brutto gerundet: {{ order.price.totalPrice|currency(currencyIsoCode,decimals=order.totalRounding.decimals) }}</strong><br>
{% endif %}
<br>
{% if delivery %}
<strong>Gewählte Versandart:</strong> {{ delivery.shippingMethod.translated.name }}<br>
{{ delivery.shippingMethod.translated.description }}<br>
<br>
{% endif %}
{% if order.orderCustomer.vatIds %}
Ihre Umsatzsteuer-ID: {{ order.orderCustomer.vatIds|first }}
Bei erfolgreicher Prüfung und sofern Sie aus dem EU-Ausland
bestellen, erhalten Sie Ihre Ware umsatzsteuerbefreit. <br>
{% endif %}
<br/>
Den aktuellen Status Ihrer Bestellung können Sie auch jederzeit auf unserer Webseite im Bereich "Mein Konto" - "Meine Bestellungen" abrufen: {{ rawUrl('frontend.account.order.single.page', { 'deepLinkCode': order.deepLinkCode }, salesChannel.domains|first.url) }}
</br>
Für Rückfragen stehen wir Ihnen jederzeit gerne zur Verfügung.
</p>
<br>
</div>
Statt unter „Gewählte Versandart“ sollte so die Rechnungs- und Lieferadresse am Anfang ausgegeben werden.
Aber! Klappt nicht! Es wird nix verschickt. Es geht erst wieder so:
<div style="font-family:arial; font-size:12px;">
{% set currencyIsoCode = order.currency.isoCode %}
{% set billingAddress = order.addresses.get(order.billingAddressId) %}
<strong>Rechnungsadresse:</strong><br>
{{ billingAddress.company }}<br>
{{ billingAddress.firstName }} {{ billingAddress.lastName }}<br>
{{ billingAddress.street }} <br>
{{ billingAddress.zipcode }} {{ billingAddress.city }}<br>
{{ billingAddress.country.translated.name }}<br>
<br>
Hallo {% if order.orderCustomer.salutation %}{{ order.orderCustomer.salutation.translated.letterName ~ ' ' }}{% endif %}{{ order.orderCustomer.firstName }} {{ order.orderCustomer.lastName }},<br>
<br>
Ihre Bestellung ist am {{ order.orderDateTime|format_datetime('medium', 'short', locale='de-DE') }} bei uns eingegangen.<br>
<br>
Bestellnummer: {{ order.orderNumber }}<br>
<br>
Sobald ein Zahlungseingang erfolgt ist, erhalten Sie eine separate Benachrichtigung und Ihre Bestellung wird verarbeitet.<br>
<br>
Den aktuellen Status Ihrer Bestellung können Sie jederzeit über diesen Link abrufen: {{ rawUrl('frontend.account.order.single.page', { 'deepLinkCode': order.deepLinkCode }, salesChannel.domains|first.url) }}<br>
Über diesen Link können Sie auch die Bestellung bearbeiten, die Zahlungsart wechseln oder nachträglich eine Zahlung durchführen.<br>
<br>
<strong>Informationen zu Ihrer Bestellung:</strong><br>
<br>
<table border="0" style="font-family:Arial, Helvetica, sans-serif; font-size:12px;">
<tr>
<td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Produkt-Nr.</strong></td>
<td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Produktbild</strong></td>
<td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Bezeichnung</strong></td>
<td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Menge</strong></td>
<td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Preis</strong></td>
<td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Summe</strong></td>
</tr>
{% for lineItem in order.nestedLineItems %}
{% set nestingLevel = 0 %}
{% set nestedItem = lineItem %}
{% block lineItem %}
<tr>
<td>{% if nestedItem.payload.productNumber is defined %}{{ nestedItem.payload.productNumber|u.wordwrap(80) }}{% endif %}</td>
<td>{% if nestedItem.cover is defined and nestedItem.cover is not null %}<img src="{{ nestedItem.cover.url }}" width="75" height="auto"/>{% endif %}</td>
<td>
{% if nestingLevel > 0 %}
{% for i in 1..nestingLevel %}
<span style="position: relative;">
<span style="display: inline-block;
position: absolute;
width: 6px;
height: 20px;
top: 0;
border-left: 2px solid rgba(0, 0, 0, 0.15);
margin-left: {{ i * 10 }}px;"></span>
</span>
{% endfor %}
{% endif %}
<div{% if nestingLevel > 0 %} style="padding-left: {{ (nestingLevel + 1) * 10 }}px"{% endif %}>
{{ nestedItem.label|u.wordwrap(80) }}
</div>
{% if nestedItem.payload.options is defined and nestedItem.payload.options|length >= 1 %}
<div>
{% for option in nestedItem.payload.options %}
{{ option.group }}: {{ option.option }}
{% if nestedItem.payload.options|last != option %}
{{ " | " }}
{% endif %}
{% endfor %}
</div>
{% endif %}
{% if nestedItem.payload.features is defined and nestedItem.payload.features|length >= 1 %}
{% set referencePriceFeatures = nestedItem.payload.features|filter(feature => feature.type == 'referencePrice') %}
{% if referencePriceFeatures|length >= 1 %}
{% set referencePriceFeature = referencePriceFeatures|first %}
<div>
{{ referencePriceFeature.value.purchaseUnit }} {{ referencePriceFeature.value.unitName }}
({{ referencePriceFeature.value.price|currency(currencyIsoCode) }}* / {{ referencePriceFeature.value.referenceUnit }} {{ referencePriceFeature.value.unitName }})
</div>
{% endif %}
{% endif %}
</td>
<td style="text-align: center">{{ nestedItem.quantity }}</td>
<td>{{ nestedItem.unitPrice|currency(currencyIsoCode) }}</td>
<td>{{ nestedItem.totalPrice|currency(currencyIsoCode) }}</td>
</tr>
{% if nestedItem.children.count > 0 %}
{% set nestingLevel = nestingLevel + 1 %}
{% for lineItem in nestedItem.children %}
{% set nestedItem = lineItem %}
{{ block('lineItem') }}
{% endfor %}
{% endif %}
{% endblock %}
{% endfor %}
</table>
{% set delivery = order.deliveries.first %}
{% set displayRounded = order.totalRounding.interval != 0.01 or order.totalRounding.decimals != order.itemRounding.decimals %}
{% set decimals = order.totalRounding.decimals %}
{% set total = order.price.totalPrice %}
{% if displayRounded %}
{% set total = order.price.rawTotal %}
{% set decimals = order.itemRounding.decimals %}
{% endif %}
<p>
<br>
<br>
{% for shippingCost in order.deliveries %}
Versandkosten: {{ shippingCost.shippingCosts.totalPrice|currency(currencyIsoCode) }}<br>
{% endfor %}
Gesamtkosten Netto: {{ order.amountNet|currency(currencyIsoCode) }}<br>
{% for calculatedTax in order.price.calculatedTaxes %}
{% if order.taxStatus is same as('net') %}zzgl.{% else %}inkl.{% endif %} {{ calculatedTax.taxRate }}% MwSt. {{ calculatedTax.tax|currency(currencyIsoCode) }}<br>
{% endfor %}
{% if not displayRounded %}<strong>{% endif %}Gesamtkosten Brutto: {{ total|currency(currencyIsoCode,decimals=decimals) }}{% if not displayRounded %}</strong>{% endif %}<br>
{% if displayRounded %}
<strong>Gesamtkosten Brutto gerundet: {{ order.price.totalPrice|currency(currencyIsoCode,decimals=order.totalRounding.decimals) }}</strong><br>
{% endif %}
<br>
{% if delivery %}
<strong>Gewählte Versandart:</strong> {{ delivery.shippingMethod.translated.name }}<br>
{{ delivery.shippingMethod.translated.description }}<br>
<br>
{% endif %}
{% if delivery %}
<strong>Lieferadresse:</strong><br>
{{ delivery.shippingOrderAddress.company }}<br>
{{ delivery.shippingOrderAddress.firstName }} {{ delivery.shippingOrderAddress.lastName }}<br>
{{ delivery.shippingOrderAddress.street }} <br>
{{ delivery.shippingOrderAddress.zipcode}} {{ delivery.shippingOrderAddress.city }}<br>
{{ delivery.shippingOrderAddress.country.translated.name }}<br>
<br>
{% endif %}
{% if order.orderCustomer.vatIds %}
Ihre Umsatzsteuer-ID: {{ order.orderCustomer.vatIds|first }}
Bei erfolgreicher Prüfung und sofern Sie aus dem EU-Ausland
bestellen, erhalten Sie Ihre Ware umsatzsteuerbefreit. <br>
{% endif %}
<br/>
Den aktuellen Status Ihrer Bestellung können Sie auch jederzeit auf unserer Webseite im Bereich "Mein Konto" - "Meine Bestellungen" abrufen: {{ rawUrl('frontend.account.order.single.page', { 'deepLinkCode': order.deepLinkCode }, salesChannel.domains|first.url) }}
</br>
Für Rückfragen stehen wir Ihnen jederzeit gerne zur Verfügung.
</p>
<br>
</div>
So gehts, so bekomme ich eine Mail - dann ist nur die Rechnungsadresse oben und die Lieferadresse weiterhin unter „gewählte Versandart“ - aber weshalb wieso warum wird keine Mail verschickt, wenn ich die Position der Lieferadresse an den Anfang der Mail oberhab der Tabelle verschiebe?
Es handelt sich, wie gesagt, um das Original-Template der Bestellbestätigung, ich habe keine neue Variable hinzugefügt, sondern nur die Position von Rechnungs- und Lieferadresse verschoben.