Versandmitteilung mehrerer Dienstleister und Mehrpakete

Guten Tag,

wir versenden per DHL Paket sowie per DPD Paket und haben unsere HTML Mitteilung versucht anzupassen, damit entsprechend dem Dienstleister auch die URL und Anzahl der Pakete in der E-Mail ausgegeben wird.

Der Code sieht derzeitig wie folgt aus:

{include file="string:{config name=emailheaderhtml}"}

  
  Hallo {$sUser.billing_salutation|salutation} {$sUser.billing_firstname} {$sUser.billing_lastname},
  
  der Bestellstatus Ihrer Bestellung {$sOrder.ordernumber} hat sich geändert.
    Die Bestellung hat jetzt den Status: {$sOrder.status_description}.
    
Die Sendungsverfolgung per {$sDispatch.name} {$sDispatch.description} können Sie hier einsehen: 
{assign var='Paket' value=1}
{assign var='Tracking' value=','|explode:{$sOrder.trackingcode}}
{foreach $Tracking as $temp}
Link zu Paket {$Paket}: {$temp}
{assign var='Paket' value={$Paket+1}}
{/foreach}
{if $sDispatch.name == DHL Paket}
Sendungsverfolgung: https://nolp.dhl.de/nextt-online-public/de/search?piececode={$sOrder.trackingcode}
{else if $sDispatch.name == DPD Paket}
Sendungsverfolgung: https://tracking.dpd.de/parcelstatus?query={$sOrder.trackingcode}
{else}
Es ist keine Sendungsverfolgung möglich
{/if}


Den aktuellen Status Ihrer Bestellung können Sie auch jederzeit auf unserer Webseite im Bereich "Mein Konto" - "Meine Bestellungen" abrufen. 

Sollten Sie allerdings den Kauf ohne Registrierung, also ohne Anlage eines Kundenkontos, gewählt haben, steht Ihnen diese Möglichkeit leider nicht zur Verfügung.


{include file="string:{config name=emailfooterhtml}"}

Bei der Testemail erhalten wir folgenden Errorcode aus dem Log:
 

Die E-Mail konnte nicht versendet werden. Fehlermeldung: Syntax Error 68" on line 20 "{if $sDispatch.name == DHL Paket}" too many shorthand attributes

Wie können wir die Mail richtig formatieren und nutzen?

Gruß

Christian

Ohne jetzt den Rest angeschaut zu haben, aber das DHL Paket gehört auf jeden Fall in Anführungszeichen:

{if $sDispatch.name == "DHL Paket"}

 

Super vielen Dank, funktioniert soweit gut.

Wie kann ich es denn hin bekommen, dass die Zweite oder die weiteren Pakete bzw. die Tracking-ID nicht direkt an die URL vom ersten mit angehangen wird.

Derzeitig sieht das so aus:

Sendungsverfolgung: https://nolp.dhl.de/nextt-online-public/de/search?piececode=TRACKINGID1, TRACKINGID2, usw.

 

{assign var='Paket' value=1}
{assign var='Tracking' value=','|explode:{$sOrder.trackingcode}}
{foreach $Tracking as $temp}
Link zu Paket {$Paket}: 
{assign var='Paket' value={$Paket+1}}
{if $sDispatch.name == "DHL Paket"}
https://nolp.dhl.de/nextt-online-public/de/search?piececode={$temp}
{elseif $sDispatch.name == "DPD Paket"}
https://tracking.dpd.de/parcelstatus?query={$temp}
{/if}
{/foreach}
{if $sDispatch.name != "DHL Paket" && $sDispatch.name != "DPD Paket"}
Es ist keine Sendungsverfolgung möglich
{/if}
{/foreach}

Man müsste es mit in das Foreach packen. Beispiel siehe oben.

Gruß Heiner

 

@h_lohaus schrieb:

{assign var=‚Paket‘ value=1}
{assign var=‚Tracking‘ value=‚,‘|explode:{$sOrder.trackingcode}}
{foreach $Tracking as $temp}
Link zu Paket {$Paket}:
{assign var=‚Paket‘ value={$Paket+1}}
{if $sDispatch.name == „DHL Paket“}
https://nolp.dhl.de/nextt-online-public/de/search?piececode={$temp}
{elseif $sDispatch.name == „DPD Paket“}
Tracking
{/if}
{/foreach}
{if $sDispatch.name != „DHL Paket“ && $sDispatch.name != „DPD Paket“}
Es ist keine Sendungsverfolgung möglich
{/if}
{/foreach}

Man müsste es mit in das Foreach packen. Beispiel siehe oben.

Gruß Heiner

 

Servus Heiner,

Da erhalte ich folgende Meldung beim Speichern einer Bestellung wenn die Mail generiert werden soll:

Beim Speichern der Bestellung 19145 ist ein Fehler aufgetreten. Syntax Error af" on line 24 "{/foreach}" unexpected closing tag

Gruß

Christian

Hallo,

bitte mal die foreach anzeigen lassen und zählen. Ein öffnendes und zwei schließende Tags funktioniert halt unter keinen Umständen.

@drakon schrieb:

Hallo,

bitte mal die foreach anzeigen lassen und zählen. Ein öffnendes und zwei schließende Tags funktioniert halt unter keinen Umständen.

Habe die Vorlage so aufgebaut:

{include file="string:{config name=emailheaderhtml}"}

  
  Hallo {$sUser.billing_salutation|salutation} {$sUser.billing_firstname}
  {$sUser.billing_lastname},
  
  der Bestellstatus Ihrer Bestellung {$sOrder.ordernumber} hat sich
  geändert.
    Die Bestellung hat jetzt den Status: {$sOrder.status_description}.
    
Die Sendungsverfolgung per {$sDispatch.name} können Sie hier einsehen: 
{assign var=';Paket'; value=1}
{assign var=';Tracking'; value=';,';|explode:{$sOrder.trackingcode}}
{foreach $Tracking as $temp}
Link zu Paket {$Paket}: 
{assign var=';Paket'; value={$Paket+1}}
{if $sDispatch.name == "DHL Paket"}
https://nolp.dhl.de/nextt-online-public/de/search?piececode=;{$temp}
{else if $sDispatch.name == "DPD Paket"}
https://tracking.dpd.de/parcelstatus?query=;{$temp}
{else if $sDispatch.name == "DPD Paket Österreich"}
Sendungsverfolgung:
https://tracking.dpd.de/parcelstatus?query={$sOrder.trackingcode}
{/if}
{if $sDispatch.name != "DHL Paket" && $sDispatch.name != "DPD Paket"}
Es ist keine Sendungsverfolgung möglich
{/if}
{/foreach}


Den aktuellen Status Ihrer Bestellung können Sie auch jederzeit auf unserer
Webseite im Bereich "Mein Konto" - "Meine Bestellungen"
abrufen. 

Sollten Sie allerdings den Kauf ohne Registrierung, also ohne Anlage eines
Kundenkontos, gewählt haben, steht Ihnen diese Möglichkeit leider nicht zur
Verfügung.


{include file="string:{config name=emailfooterhtml}"}

Erhalte dann folgende Meldung:

Beim Speichern der Bestellung 199432 ist ein Fehler aufgetreten. Syntax Error 52" on line 12 "{assign var=';Paket'; value=1}" - Unexpected ";", expected one of: "}" , " " , ATTR

 

Sorry, aber was machst du auch für Quatsch. Wenn du Smarty nutzen willst, hier ist die Dokumentation: Smarty 3 Manual | Smarty 

{assign var=’;Paket’; value={$Paket+1}} ist nämlich schon mal kein gültiges Smarty.

Vgl.: Variables | Smarty

@BestShopPossible schrieb:

Sorry, aber was machst du auch für Quatsch. Wenn du Smarty nutzen willst, hier ist die Dokumentation: https://www.smarty.net/docs/en/ 

{assign var=‚;Paket‘; value={$Paket+1}} ist nämlich schon mal kein gültiges Smarty.

Vgl.: https://www.smarty.net/docs/en/language.syntax.variables.tpl

Ok, also lauffähig ohne die Auflistung habe ich es jetzt so:

{include file="string:{config name=emailheaderhtml}"}

  
  Hallo {$sUser.billing_salutation|salutation} {$sUser.billing_firstname}
  {$sUser.billing_lastname},
  
  der Bestellstatus Ihrer Bestellung {$sOrder.ordernumber} hat sich
  geändert.
    Die Bestellung hat jetzt den Status: {$sOrder.status_description}.
    
Die Sendungsverfolgung per {$sDispatch.name} können Sie hier einsehen: 
{assign var='Paket' value=1}
{assign var='Tracking' value=','|explode:{$sOrder.trackingcode}}
{foreach $Tracking as $temp}
Link zu Paket {$Paket}: {$temp}

{assign var='Paket' value={$Paket+1}}
{/foreach}

{if $sDispatch.name == "DHL Paket"}
Sendungsverfolgung:
https://nolp.dhl.de/nextt-online-public/de/search?piececode={$sOrder.trackingcode}
{else if $sDispatch.name == "DPD Paket"}
Sendungsverfolgung:
https://tracking.dpd.de/parcelstatus?query={$sOrder.trackingcode}
{else if $sDispatch.name == "DPD Paket Österreich"}
Sendungsverfolgung:
https://tracking.dpd.de/parcelstatus?query={$sOrder.trackingcode}
{else}
Es ist keine Sendungsverfolgung möglich
{/if}


Den aktuellen Status Ihrer Bestellung können Sie auch jederzeit auf unserer
Webseite im Bereich "Mein Konto" - "Meine Bestellungen"
abrufen. 

Sollten Sie allerdings den Kauf ohne Registrierung, also ohne Anlage eines
Kundenkontos, gewählt haben, steht Ihnen diese Möglichkeit leider nicht zur
Verfügung.


{include file="string:{config name=emailfooterhtml}"}

Wie bekomme ich die IDs wenn es mehrere Sind untereinander gelistet?

Ist das HTML-Tag für einen Linebreak. 

@BestShopPossible schrieb:

Ist das HTML-Tag für einen Linebreak. 

Servus,

ok wie kann ich denn dem System sagen sobald mehrere IDs mit „,“ getrennd sind, sind es mehrere Pakete.

Eigentlich macht das System es ja schon, sobald ich beim Tracking Code z.B. „123456, 123457“ eingebe stellt der diese hinterinander da.
Das ist aber nicht mein Ziel, sondern dass dann Code 1 mit Link vom entsprechenden Dienleister davor gesezt wird.

Derzeitig:  

https://tracking.dpd.de/parcelstatus?query=123456,123457

Sollausgabe:
https://tracking.dpd.de/parcelstatus?query=123456
https://tracking.dpd.de/parcelstatus?query=123457

Siehe oben…

{assign var='Tracking' value=','|explode:{$sOrder.trackingcode}}
{foreach $Tracking as $temp}
https://tracking.dpd.de/parcelstatus?query=$temp
{/foreach}

ggf. noch ein newline anhängen. 

Oh, wussten gar nicht dass das geht, und haben das bisher immer händisch gemacht was bei mehreren Paketen doch sehr aufwendig ist.

Bei uns will es aber auch nicht funktionieren. Zeigt immer nur ein Paket an.  Frown

{assign var='Paket' value=1}
{assign var='Tracking' value=','|explode:{$sOrder.trackingcode}}
{foreach $Tracking as $temp}
Link zu Paket {$Paket}: https://tracking.dpd.de/parcelstatus?query={$temp}
{assign var='Paket' value={$Paket+1}}
{/foreach}
{if $sDispatch.name == "DHL Paket"}
Sendungsverfolgung:
https://nolp.dhl.de/nextt-online-public/de/search?piececode={$sOrder.trackingcode}
{else if $sDispatch.name == "DPD Paket"}
Sendungsverfolgung:
https://tracking.dpd.de/parcelstatus?query={$sOrder.trackingcode}
{else if $sDispatch.name == "DPD Paket"}
Sendungsverfolgung:
https://tracking.dpd.de/parcelstatus?query={$sOrder.trackingcode}
{else}
{/if}

 

 

Deins ist ja jetzt auch MischMasch  Wink
Was wäre denn Dein Trennzeichen? Obiges ist für ,

Sendungsverfolgung:
{assign var='Paket' value=1}
{assign var='Tracking' value=','|explode:{$sOrder.trackingcode}}
{foreach $Tracking as $temp}
 {if $sDispatch.name == "DHL Paket"}
  Link zum DHL-Paket {$Paket}: https://nolp.dhl.de/nextt-online-public/de/search?piececode=$temp
 {else if $sDispatch.name == "DPD Paket"}
  Link zum DPD-Paket {$Paket}: https://tracking.dpd.de/parcelstatus?query=$temp
 {else}
  Es liegen keine Sendungsinformationen zu diesem Paket vor.
 {/if}
{assign var='Paket' value={$Paket+1}}
{/foreach}

Oder So:
 

Sendungsverfolgung:

{if $sDispatch.name == "DHL Paket"}
 {assign var='lnkBaseUrl' value='https://nolp.dhl.de/nextt-online-public/de/search?piececode='}
{else if $sDispatch.name == "DPD Paket"}
 {assign var='lnkBaseUrl' value='https://tracking.dpd.de/parcelstatus?query='}
{/if}

{assign var='Paket' value=0}
{if $lnkBaseUrl}
{assign var='Tracking' value=','|explode:{$sOrder.trackingcode}}
{foreach $Tracking as $temp}
{assign var='Paket' value={$Paket+1}}
 Link zu Paket {$Paket}: {$lnkBaseUrl}{$temp} 
{/foreach}
{/if}

{if $Paket==0}
Es liegen keine Sendungsinformationen zu Ihrer Bestellung vor
{/if}

 

@sonic‍ vielen Dank.  Smile Ja, verwenden das selbe Trennzeichen.

Irgendwie will es bei uns nicht, bei beiden Codes zeigt er nun gar keine Sendungsnummer mehr an. 

Hab es hingebracht, nun funktioniert es auch bei mir.  Smile

@Vitago GmbH schrieb:

Hab es hingebracht, nun funktioniert es auch bei mir.  Smile

Hallo,

wird in der Vorschau der Mail das Tag

$temp

bei dir als Sendungs-ID angezeigt oder nur als „$temp“ Text

Passend zu diesem Thema habe ich unter diesem Thread mal meine HTML Email Vorlage reingesetzt als Beispiel. Aber nur wenn man nicht wie in diesem Thread verschiedene Paketdienste nutzt, sondern nur DHL. Aber für mehrere Pakete bzw. Trackingnummern.

https://forum.shopware.com/discussion/51885/dhl-adapter-und-magnalister-fuer-ebay#latest

 

Viele Grüße

Matthias

 

1 „Gefällt mir“

@Str33tfight3r schrieb:

@Vitago GmbH schrieb:

Hab es hingebracht, nun funktioniert es auch bei mir.  Smile

Hallo,

wird in der Vorschau der Mail das Tag

$temp

bei dir als Sendungs-ID angezeigt oder nur als „$temp“ Text

Sorry, mir wurde nicht angezeigt dass es hier einen neuen Beitrag gibt.

Die Sendungs ID :wink:

Lg 

Hab hierzu eine Frage, wie bekomme ich es hin das bei mehreren Versanddienstleistern auch der Link bei der Sendungsnummer angezeigt wird?

So sieht es bei mir derzeit aus ( funktioniert aber halt ohne Link )

Die Sendungsverfolgung per {$sDispatch.name} können Sie hier einsehen: 
         {if $sDispatch.name == "Standard Versand, Standard Lieferung, Express, meineinkauf.ch"}
         Sendungsverfolgung: {$sOrder.trackingcode}
    	
         {elseif $sDispatch.name == "EURO I, EURO II, EURO III, EURO IV"}
         Sendungsverfolgung: {$sOrder.trackingcode}
    	{/if}
       
        {assign var='Paket' value=0}
        {assign var='Tracking' value=','|explode:{$sOrder.trackingcode}}
        {foreach $Tracking as $temp}
		
        {assign var='Paket' value={$Paket+1}}
    	Paket {$Paket}: {$temp}
        {/foreach}