Paketverfolgung E-Mail Versand

Hi,
 

ich habe ja die Möglichkeit bei einer Bestellung eine Sendungsverfolgungsnummer anzugeben. Ich möchte nun in der Versandbestätigungsemail an den Kunden diese Nummer (inkl.) Link natürlich auch anzeigen. (Natürlich nur, wenn ich eine Tracking-Nummer eingetragen habe) Hat das schon jemand umgesetzt? 

In Shopware5 gab es hier in der Doku eine Schritt für Schritt Anleitung. In SW6 komme ich einfach nicht weiter.

Vielen Dank für eure Hilfe!

Meinst du den Link für die Sendungsnummer?

@SmartStylez schrieb:

Meinst du den Link für die Sendungsnummer?

Ja genau. Also Sendungsnummer als Link in der E-Mail.
Sorry, war etwas kompliziert ausgedrückt. Ist schon spät! ;)  

Ich hatte heute morgen etwas dazu gelesen, also schau’ dir mal diesen Link hier an, vielleicht hilft er dir ja weiter: https://forum.shopware.com/discussion/71912/tracking-urls-bei-dhl-und-hermes-ein#latest

Hej,
Danke. Leider nicht. Ich weiß nicht wie ich das E-Mail Template bearbeiten muss, mir fehlt quasi im E-Mail Template die Variable für Link und Sendungsnummer.

Und dann bräuchte ich noch eine if Abfrage, sodass diese Information nur eingetragen ist, wenn ich eine Sendungsnummer eingetragen habe.

Schau’ hier mal im unteren Teil: Shopware 6 - Trackingnummer bei Bestellungen angeben | KonVis – mehr Erfolg Online

1 Like

ja… wer googeln kann ;) 
Vielen vielen herzlichen Dank :slight_smile:

{% for delivery in order.deliveries %}
    {% for trackingCode in delivery.getTrackingCodes() %}
        {% if trackingCode is not empty %}
                    
            {% set urlTemplate = delivery.getShippingMethod().getTrackingUrl() %}
            {% set urlEncodedCode = trackingCode|escape('url')|raw %}                    
                        
            Mit Ihrer Sendungs-Nr. {{ trackingCode }} können Sie den Weg Ihres Paketes verfolgen. 
            
            
        {% endif %}
    {% endfor %}
{% endfor %}

 

Das Problem mit nicht versendeten E-Mails hatte ich auch sehr lange. Erstmal absolut sicher gehen, dass es wirklich an diesen Zeilen liegt, schaut nämlich erstmal nicht verkehrt aus finde ich. ;) 
Hab mir direkt noch die if-Abfrage eingebaut (ob die wirklich nötig ist weiß ich gar nicht - aber funktioniert)

Hierdurch wird die in der Versandart hinterlegt TrackingURL automatisch gewählt (falls man mehrer Versanddienstleister hat natürlich wichtig!)

In deiner URL fehlt noch ein {{ trackingCode }} dann funktioniert es. Damit das ganze mal entwirrt wird nochmal zusammengefasst wie es funktioniert:

Dieser Code kommt in die Mailvorlage:

{% for delivery in order.deliveries %}
                    {% for trackingCode in delivery.getTrackingCodes() %}
                    {% set urlTemplate = delivery.getShippingMethod().getTrackingUrl() %}
                        {% set urlEncodedCode = trackingCode|escape('url')|raw %}
                            Den Status ihrer Sendung können sie mit der Sendungsnummer {{ trackingCode }} verfolgen.
                    {% endfor %}
                {% endfor %}

und dieser Link kommt in die Versandart unter Tracking-URL:

https://www.dhl.de/de/privatkunden/pakete-empfangen/verfolgen.html?piececode=%s

So funktioniert es auf jedenfall für DHL Paket. Stand: Shopware 6.3.2.0

1 Like

ganz genau. Da ist wohl beim hier her kopieren ein Teil verloren gegangen… ;) 

@Plotec‍ in der Versandart unter Tracking-URL musst Du an den Link noch ein %s anhängen :wink:

Funktioniert bei mir auch ohne aber es sollte trotzdem korrekt sein. Ist notiert.

ohne %s funktioniert der Link zur Sendungsverfolgung im Kundenmenü nicht. 

Hallo zusammen,

wir würden gerne in der Email den Sendungslink auf basis der Trackingnummer aussuchen. Für Sw5 verwenden wir folgende Lösung:

​       {if $trackingCode|substr:0:4 eq „0125“}
    https://tracking.dpd.de/status/de_DE/parcel/{trackingCode}
{else}
    https://www.dhl.de/de/privatkunden/dhl-sendungsverfolgung.html?piececode={trackingCode}
{/if} 

Kennt jemand eine vergleichbare Lösung für SW6? 

Dies hier sollte klappen, sofern die Tracking URL hinterlegt ist:

    Track your shipments using this/these link(s):
    
    {% for delivery in order.deliveries %}
        {% for trackingCode in delivery.getTrackingCodes() %}
            {% set urlTemplate = delivery.getShippingMethod().getTrackingUrl() %}
            {% set urlEncodedCode = trackingCode|escape('url')|raw %}

            
                {{ urlTemplate|format(trackingCode) }}
            
        {% endfor %}
    {% endfor %}

 

Hallo zusammen,

ich habe ein ähnliches Problem wie oohlen.

Ich würde gerne auf Basis der Trackingnummer zwischen drei Versanddienstleistern unterscheiden. Dies ist mein Code, der aber nicht funktioniert.
Er soll sagen: Wenn der TrackingCode mit XXXX anfängt, dann soll er die URL des ersten Dienstleisters verwenden, wenn YYYY dann DL2 und wenn ZZZZ, dann URL von DL3.
Wo ist der Fehler?

{% for delivery in order.deliveries %}
	{% for trackingCode in delivery.getTrackingCodes() %}
		{% if trackingCode is not empty %}	
{% if trackingCode in delivery.getTrackingCodes() starts with 'XXXX' %}
	<a href="https:/dienstleister.1.de/{{ trackingCode }}">Sendungsverfolgung: {{ trackingCode }}</a>
{%- elseif trackingCode in delivery.getTrackingCodes() starts with 'YYYY' %}
	<a href="https://www.dienstleister.2.de/{{ trackingCode }}">Sendungsverfolgung: {{ trackingCode }}</a>
{%- elseif trackingCode in delivery.getTrackingCodes() starts with 'ZZZZ' %}
	<a href="https://dienstleister.3.de/{{ trackingCode }}">Sendungsverfolgung: {{ trackingCode }}</a>
{%- endif -%}
{% endfor %}
{% endfor %}

Danke und LG

Hallo, gibt es hier mittlerweile einen Code, der funktioniert? Ich würde auch gerne auf Basis der Trackingnnummer zwischen zwei Versanddienstleistern unterscheiden und wäre über eine Lösung sehr dankbar.

Hallo Anna38,
wir haben es so gelöst:

{% for delivery in order.deliveries %}
                            {% for trackingCode in delivery.getTrackingCodes() %}
                                {% if trackingCode|trim|u.truncate(4) == 'XXXX' %}
                                    <a href="https://versand1.de/{{ trackingCode }}">Sendungsverfolgung: {{ trackingCode }}</a>
                                {% elseif trackingCode|trim|u.truncate(8) == 'YYYYYYYY' %}
                                  <a href="versand2.de/{{ trackingCode }}">Sendungsverfolgung: {{ trackingCode }}</a>
                                {% elseif trackingCode|trim|u.truncate(8) == 'ZZZZZZZZ' %}
                                  <a href="versand3.de/{{ trackingCode }}">Sendungsverfolgung: {{ trackingCode }}</a>
                                {% endif %}
                            {% endfor %}
                        {% endfor %}`

Du musst beachten, dass du mit truncate(8) eine 8-stellige Nummer überprüfst - bei dir also ggf. anpassen.
Hoffe es hilft!

Herzlichen Dank, das funktioniert nun und erspart uns viel Aufwand!

1 Like