Str33tfight3rStr33tfight3r MemberComments: 85 Received thanks: 1 Member since: April 2016

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}"}
<br>
  <br>
  Hallo {$sUser.billing_salutation|salutation} {$sUser.billing_firstname} {$sUser.billing_lastname},<br>
  <br>
  der Bestellstatus Ihrer Bestellung {$sOrder.ordernumber} hat sich geändert.<br>
    Die Bestellung hat jetzt den Status: {$sOrder.status_description}.<br>
    <br>
Die Sendungsverfolgung per {$sDispatch.name} {$sDispatch.description} können Sie hier einsehen: <br>
{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}

<br>
Den aktuellen Status Ihrer Bestellung  können Sie  auch jederzeit auf unserer Webseite im  Bereich &quot;Mein Konto&quot; - &quot;Meine Bestellungen&quot; abrufen. <br>
<br>
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.
<br>
<br>
{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&quot;  on line 20 &quot;{if $sDispatch.name == DHL Paket}&quot; too many shorthand attributes

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

Gruß

Christian

1 Answer

  • puhaspuhas MemberComments: 142 Received thanks: 48 Member since: November 2011

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

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

     

    Quote
    Accepted Answer
  • Accepted Answer

Answers

  • puhaspuhas MemberComments: 142 Received thanks: 48 Member since: November 2011

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

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

     

    Quote
    Accepted Answer
  • Str33tfight3rStr33tfight3r MemberComments: 85 Received thanks: 1 Member since: April 2016

    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.

     

  • h_lohaush_lohaus MemberComments: 187 Received thanks: 48 edited December 2017 Member since: August 2017
    {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

     

  • Str33tfight3rStr33tfight3r MemberComments: 85 Received thanks: 1 edited December 2017 Member since: April 2016
    {assign var=&#39;Paket&#39; value=1}
    {assign var=&#39;Tracking&#39; value=&#39;,&#39;|explode:{$sOrder.trackingcode}}
    {foreach $Tracking as $temp}
    Link zu Paket {$Paket}: 
    {assign var=&#39;Paket&#39; value={$Paket+1}}
    {if $sDispatch.name == "DHL Paket"}
    <a href="https://nolp.dhl.de/nextt-online-public/de/search?piececode="; rel="nofollow" target="_blank">https://nolp.dhl.de/nextt-online-public/de/search?piececode=</a>;{$temp}
    {elseif $sDispatch.name == "DPD Paket"}
    <a href="https://tracking.dpd.de/parcelstatus?query="; rel="nofollow" target="_blank">https://tracking.dpd.de/parcelstatus?query=</a>;{$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

     

    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.<br> Syntax Error af&quot;  on line 24 &quot;{/foreach}&quot; unexpected closing tag

    Gruß

    Christian

  • drakondrakon MemberComments: 1132 Received thanks: 317 Member since: February 2014

    Hallo,

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

  • Str33tfight3rStr33tfight3r MemberComments: 85 Received thanks: 1 Member since: April 2016

    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}"}
    <br>
      <br>
      Hallo {$sUser.billing_salutation|salutation} {$sUser.billing_firstname}
      {$sUser.billing_lastname},<br>
      <br>
      der Bestellstatus Ihrer Bestellung {$sOrder.ordernumber} hat sich
      geändert.<br>
        Die Bestellung hat jetzt den Status: {$sOrder.status_description}.<br>
        <br>
    Die Sendungsverfolgung per {$sDispatch.name} können Sie hier einsehen: <br>
    {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"}
    <a href="https://nolp.dhl.de/nextt-online-public/de/search?piececode="; rel="nofollow" target="_blank">https://nolp.dhl.de/nextt-online-public/de/search?piececode=</a>;{$temp}
    {else if $sDispatch.name == "DPD Paket"}
    <a href="https://tracking.dpd.de/parcelstatus?query="; rel="nofollow" target="_blank">https://tracking.dpd.de/parcelstatus?query=</a>;{$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}
    <br>
    <br>
    Den aktuellen Status Ihrer Bestellung  können Sie  auch jederzeit auf unserer
    Webseite im  Bereich &quot;Mein Konto&quot; - &quot;Meine Bestellungen&quot;
    abrufen. <br>
    <br>
    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.
    <br>
    <br>
    {include file="string:{config name=emailfooterhtml}"}

    Erhalte dann folgende Meldung:

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

     

  • BestShopPossibleBestShopPossible MemberComments: 708 Received thanks: 118 Member since: November 2017

    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

  • Str33tfight3rStr33tfight3r MemberComments: 85 Received thanks: 1 Member since: April 2016

    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}"}
    <br>
      <br>
      Hallo {$sUser.billing_salutation|salutation} {$sUser.billing_firstname}
      {$sUser.billing_lastname},<br>
      <br>
      der Bestellstatus Ihrer Bestellung {$sOrder.ordernumber} hat sich
      geändert.<br>
        Die Bestellung hat jetzt den Status: {$sOrder.status_description}.<br>
        <br>
    Die Sendungsverfolgung per {$sDispatch.name} können Sie hier einsehen: <br>
    {assign var='Paket' value=1}
    {assign var='Tracking' value=','|explode:{$sOrder.trackingcode}}
    {foreach $Tracking as $temp}
    Link zu Paket {$Paket}: {$temp}
    <br>
    {assign var='Paket' value={$Paket+1}}
    {/foreach}
    <br>
    {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}
    <br>
    <br>
    Den aktuellen Status Ihrer Bestellung  können Sie  auch jederzeit auf unserer
    Webseite im  Bereich &quot;Mein Konto&quot; - &quot;Meine Bestellungen&quot;
    abrufen. <br>
    <br>
    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.
    <br>
    <br>
    {include file="string:{config name=emailfooterhtml}"}

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

  • BestShopPossibleBestShopPossible MemberComments: 708 Received thanks: 118 Member since: November 2017
    <br>

    Ist das HTML-Tag für einen Linebreak. 

  • Str33tfight3rStr33tfight3r MemberComments: 85 Received thanks: 1 Member since: April 2016
    <br>

    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

  • sonicsonic MemberComments: 2311 Received thanks: 681 edited January 2018 Member since: January 2014

    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. 

  • Vitago GmbHVitago GmbH MemberComments: 1125 Received thanks: 120 Member since: September 2015

    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}

     

     

  • sonicsonic MemberComments: 2311 Received thanks: 681 edited January 2018 Member since: January 2014

    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}

     

  • Vitago GmbHVitago GmbH MemberComments: 1125 Received thanks: 120 Member since: September 2015

    @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. 

  • Vitago GmbHVitago GmbH MemberComments: 1125 Received thanks: 120 Member since: September 2015

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

  • Str33tfight3rStr33tfight3r MemberComments: 85 Received thanks: 1 Member since: April 2016

    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

  • malzfonsmalzfons MemberComments: 1683 Received thanks: 309 Member since: October 2015

    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

     

    Thanked by 1medeo
  • Vitago GmbHVitago GmbH MemberComments: 1125 Received thanks: 120 edited February 2018 Member since: September 2015

    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 ;)

    Lg 

  • hdshds MemberComments: 334 Received thanks: 82 Member since: December 2012

    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 <strong>{$sDispatch.name}</strong> können Sie hier einsehen: <br/><br/>
             {if $sDispatch.name == "Standard Versand, Standard Lieferung, Express, meineinkauf.ch"}
             Sendungsverfolgung: <a href="https://nolp.dhl.de/nextt-online-public/de/search?piececode={$temp}" target="_blank">{$sOrder.trackingcode}</a>
        	
             {elseif $sDispatch.name == "EURO I, EURO II, EURO III, EURO IV"}
             Sendungsverfolgung: <a href="https://gls-group.eu/DE/de/paketverfolgung?match={$temp}" target="_blank">{$sOrder.trackingcode}</a>
        	{/if}
           
            {assign var='Paket' value=0}
            {assign var='Tracking' value=','|explode:{$sOrder.trackingcode}}
            {foreach $Tracking as $temp}
    		
            {assign var='Paket' value={$Paket+1}}
        	<strong>Paket {$Paket}:</strong> {$temp}<br/>
            {/foreach}

     

  • puhaspuhas MemberComments: 142 Received thanks: 48 Member since: November 2011
    {if $sDispatch.name == "Standard Versand" OR $sDispatch.name == "Standard Lieferung" OR $sDispatch.name == "Express" OR $sDispatch.name == "meineinkauf.ch"}

    Die andere Zeile mit "Euro I - IV" auch entsprechend anpassen.

    Thanked by 1hds
  • hdshds MemberComments: 334 Received thanks: 82 Member since: December 2012

    Hallo puhas

    vielen Dank aber funktioniert nicht, das Ergebniss ist das gleiche, das Problem liegt irgendwo bei bei elseif, wenn ich nur else eingebe dann wird ein Link erzeugt bei dem letztem Versanddienstleister.

    Vielleicht hast du noch eine Idee.

  • hdshds MemberComments: 334 Received thanks: 82 Member since: December 2012

    Bei mir funktioniert das immer noch nicht, wie habt Ihr das gelöst oder haben die meisten nur einen Versanddienstleister?

  • puhaspuhas MemberComments: 142 Received thanks: 48 edited January 14 Member since: November 2011

    Naja, "funktioniert nicht" ist jetzt nicht sonderlich hilfreich...

    Was hast du seitdem geändert? Hast du nur die If-Zeile von mir übernommen oder auch die Elseif-Zeile entsprechend angepasst? Sonstige Änderungen?

    Bist du sicher, dass die Versandarten GENAU so heißen? Der Vergleich wird von einer Maschine durchgeführt. Sobald da ein Zeichen anders ist, gibt es keinen Treffer mehr!

  • hdshds MemberComments: 334 Received thanks: 82 Member since: December 2012

    Hallo puhas

    stimmt, ist nicht sonderlich hilfreich. Funktioniert nicht ist das, die Paketnummer angezeigt wird aber halt kein link. Versandarten wurden geprüft und sind so weit korrekt. Jetzt wird aktuell wenn es DHL ist die Paketnummer anzeigt und darunter die Paketnummer als Link. Wurde Ware mit GLS versendet wird die Paketnummernummer anzeigt aber ohne Link zur Sendungverfolgung.

Sign In or Register to comment.