Freitextfeld(attr4) in sOrder Mailvorlage ausgeben

Hallo zusammen,

 

habe folgende Einstellung in meiner sOrder Vorlage

 

{if $details.additional_details.attr4 == true}attr4 {$details.additional_details.attr4}
{/if}

{if $details.additional_details.attr5 == true}attr5 {$details.additional_details.attr5}
{/if}

{if $details.additional_details.attr6 == true}attr6 {$details.additional_details.attr6}
{/if}

{if $details.additional_details.attr7 == true}attr7 {$details.additional_details.attr7}
{/if}

 

In den Variablen Informationen steht dies:

 

{$sOrderDetails.3.additional_details.attr4}: 3.94

{$sOrderDetails.4.additional_details.attr6}: 9.40

{$sOrderDetails.0.additional_details.attr5}: 9.90

{$sOrderDetails.2.additional_details.attr7}: 23.20

 

Ausgegeben in der Mail wird aber nur:

 

Attr6 9.40

 

Die anderen sind doch auch befüllt, warum werden sie mir nicht in der Mail ausgegeben? Hätte mir da jemand eine Erklärung oder handelt es sich hier um ein Bug Halo?

Ein Bug wird das wohl eher nicht sein, da das auch nur einfaches Smarty ist. 

Hast du die passende Vorlage angepasst? (Plain oder HTML)?

Danach auch den Cache geleert?

Bis jetzt nur in der HTML Vorlage, wundert mich eben, warum er die eine nimmt, aber die anderen 3 nicht.

Cache hatte ich geleert ja…

Mail:

 

Und so geht es auch nicht?, denn der Preis wird doch von Artikel auch so ausgegeben “$details.price” und was bezweckst du mit denn “== true”, da steht doch aber ein Wert drin.

{if $details.attr4}attr4 {$details.attr4}
{/if}

{if $details.attr5}attr5 {$details.attr5}
{/if}

{if $details.attr6}attr6 {$details.attr6}
{/if}

{if $details.attr7}attr7 {$details.attr7}
{/if}

Du müsstest eine Abfrage einbauen, das es nicht angezeigt wird wenn es leer ist, weiß ja nicht was in der Datenbank steht wenn das Feld mal befüllt war und der Eintrag gelöscht wurde,aber vieleicht reicht es schon so aus.

Uwe

Uwe hat recht, true können die ja nicht sein, wenn ein Wert drin steht. 

Danke für die Rückmeldungen, aber es stellt sich wie folgt dar:

    {if $details.additional_details.attr4}attr4{$details.additional_details.attr4}
{/if}
    {if $details.additional_details.attr5}attr5{$details.additional_details.attr5}
{/if}
    {if $details.additional_details.attr6}attr6{$details.additional_details.attr6}
{/if}
    {if $details.additional_details.attr7}attr7{$details.additional_details.attr7}
{/if}
    

   
    
    {if $details.attr4}attr4 {$details.attr4}{/if}
    {if $details.attr5}attr5 {$details.attr5}{/if}
    {if $details.attr6}attr6 {$details.attr6}{/if}
    {if $details.attr7}attr7 {$details.attr7}{/if}

    
   

Mache ich eine Bestellung mit einem Artikel, der das Attribut 4 mit 3.94 hinterlegt hat, dann kommt in der Mail auch attr4 3.94

Sobald ich aber einen zweiten Artikel an dem Arttibut 5, 6 oder 7 auch gepflegt ist, in die Bestellung mit aufnehme, kommt immer nur ein Wert. 

Es werden mir also leider nie alle Attribute der verschiedenen Artikel angezeigt. Der Code in Kursiv gibt leider gar nichts aus. 

Noch irgendeine Idee?

 

Hast du das ganze nicht in der foreach-Schleife? dann könnte es ja auch nicht gehen, wenn du mehrere Artikel drin hast da weiß es ja nicht von welchem und nimmt immer den ersten Artikel und wenn der nur das ATTR4 hat wird das nur ausgegeben.

 {foreach item=details key=position from=$sOrderDetails}
    
      {if $details.image.src.0 && $details.modus != 2}{else} {/if}
      {$position+1|fill:4} 
      {$details.ordernumber|fill:20}
      {$details.quantity|fill:6}
      {$details.price|padding:8}{$sCurrency}
      {$details.amount|padding:8} {$sCurrency}
    
    
      {$details.articlename|wordwrap:80|indent:4}
    
    {/foreach}

Uwe

…genial danke! Werde das ausprobieren!