Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: BETA MODUL: order_mail.txt formatiert | Bestellbestätigung formatiert als Text-Mail

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.868
    • Geschlecht:
    Hallo zusammen.
    Ich hätte da mal was...

    Mich nervt schon seit längerem, daß man in der Bestellbestätigung
    - sendet man sie aus Gründen gewisser Spam-Filter nur als *.txt und nicht als *.html -
    formatierte Artikelübersicht und Preise nicht verwirklichen kann.
    Das steht ja alles im Zick-Zack weil keine Tabellen möglich sind.

    Das habe ich mal ändern wollen und etwas testweise implementiert.

    Für die die's interessiert, bitte mal testen.

    Weiß nicht genau ob das Ergebnis auch vom Mail-Client abhängt,
    im Thunderbird jedenfalls habe ich perfekte Ergebnisse.

    Der Code für die /includes/classes/order.php kann noch gestrafft und besser implementiert werden,
    zu Testzwecken reichts so erstmal.

    Die Anleitung ist simpel gehalten.
    Wenn Interesse besteht und positive Tests gemacht wurden (außer bei mir), werde ich eine bessere Anleitung zur Verfügung stellen.

    Viel Freude beim Benutzen und Testen.

    Gruß,
    noRiddle

    *NACHTRAG*
    Achja, so sieht's aus:

    Ihre bestellten Produkte zur Kontrolle
    --------------------------------------------------------------------------------
      5 x Thickbox animiert advanced                                     179,00 EUR
          Das ist eine einfache Beschreibung.
          Lieferzeit: 3-4 Tage
          Farbe:rot

      1 x Testartikel mit Zollangabe, 18"                                 35,00 EUR
          Lieferzeit: 3-4 Tage

      1 x Testartikel mit Zollangabe, 20"                                 35,00 EUR
          Lieferzeit: 1 Woche

    ________________________________________________________________________________
    Zwischensumme:                                                       249,00 EUR
    Deutsche Post (Versand nach DE:  (1 x 1.75 kg)):                       6,90 EUR
    inkl. 19%:                                                            40,86 EUR
    Summe:                                                               255,90 EUR


    [EDIT Tomcraft 19.12.2013: Modul aktualisiert.]

    Linkback: https://www.modified-shop.org/forum/index.php?topic=28469.0
    Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware

    Matt

    • Experte
    • Beiträge: 4.241
    Guter Punkt.

    Ich weiß, das sieht vom Source her nicht so hübsch aus, aber wir nutzen das hier seit sechs Jahren:

    Code: PHP  [Auswählen]
    Ihre Bestelldaten lauten:
    --------------------------------------------------------------------------
    {"Anz."|str_pad:5:" ":$smarty.const.STR_PAD_RIGHT}{"Produkt"|str_pad:51:" ":$smarty.const.STR_PAD_RIGHT}{"Preis"|str_pad:15:" ":$smarty.const.STR_PAD_LEFT}
    {foreach name=aussen item=order_values from=$order_data}
    {$order_values.PRODUCTS_QTY|str_pad:5:" ":$smarty.const.STR_PAD_RIGHT}{if $order_values.PRODUCTS_NAME|truncate:51!=$order_values.PRODUCTS_NAME}{$order_values.PRODUCTS_NAME|truncate:51:"..":true:true} {else}{$order_values.PRODUCTS_NAME|str_pad:51:" ":$smarty.const.STR_PAD_RIGHT}{/if} {$order_values.PRODUCTS_PRICE|str_pad:15:" ":$smarty.const.STR_PAD_LEFT}
         Art.Nr.: {$order_values.PRODUCTS_MODEL}
    {if $order_values.PRODUCTS_ATTRIBUTES !=''}     {$order_values.PRODUCTS_ATTRIBUTES}{/if}
    {/foreach}

    {foreach name=aussen item=order_total_values from=$order_total}
    {$order_total_values.TITLE|str_pad:56:" ":$smarty.const.STR_PAD_LEFT}{$order_total_values.TEXT|str_pad:15:" ":$smarty.const.STR_PAD_LEFT}
    {/foreach}
     

    Kommt ohne zusätzliche Dateien aus und sieht im Ergebnis dann so aus:

    Ihre Bestelldaten lauten:
    ----------------------------------------------------------------------
    Anz. Produkt                                                      Preis

    1    3D - Doppelschwibbogen  ..otiv  -  72 x 40 x 5,5cm      EUR 127,90
         Art.Nr.: 08-20-31

                                              Zwischensumme:     EUR 127,90
                                   Versand nach Deutschland:       EUR 0,00
                                            Rechnungsgebühr:       EUR 1,95
                                                      Summe:     EUR 129,85
                                            inkl. MwSt. 19%:      EUR 20,73
                                                Nettobetrag:     EUR 109,12

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.868
    • Geschlecht:
    Wow, das gefällt mir.
    Darauf das im Template selbst zu machen bin ich gar nicht gekommen.
    Da str_pad eine sog. build-in-Funktion von Smarty ist, geht das wirklich ohne zusätzliche Dateien und große Code-Änderungen.
    Ist 'ne klasse Lösung.

    Wo sind die Konstanten definiert ?

    Gruß,
    noRiddle

    *NACHTRAG*
    Vielleicht noch der Unterschied zu meinem "Gefrickel":
    Wenn eine zwei- oder dreistellige Anzahl vorhanden ist, wird auch das genau stellen-bereinigt untereinander geschrieben.

    TeeBlume

    • Fördermitglied
    • Beiträge: 71
    • Geschlecht:
    Man Leute!

    Klasse!

    Sowas hätte mir früher Tage/Wochen an Gefummel erspart.
    Herzlichen Dank an euch beide.

    Grüße
    TeeBlume

    web28

    • modified Team
    • Beiträge: 9.404
    Zitat
    Mich nervt schon seit längerem, daß man in der Bestellbestätigung
    - sendet man sie aus Gründen gewisser Spam-Filter nur als *.txt und nicht als *.html -
    formatierte Artikelübersicht und Preise nicht verwirklichen kann.
    Das steht ja alles im Zick-Zack weil keine Tabellen möglich sind.

    Der Shop sendet Email grundsätzlich als Content-Type: multipart/alternative;

    D. h. es gibt immer einen reinen Textteil (Content-Type: text/plain;) und einen Htmlteil (Content-Type: text/html;)
    Die Einstellungen im benutzten Emailprogramm zeigen dann den entsprechenden Code an.
    Bei Thunderbird - änhliche Einstellungen gibt es in jedem Emailprogramm:
    Original Html -> es wird nur der HTML Teil angezeigt
    Vereinfachtes -> HTML Teil vom Thunderbird verändert
    Reiner Text -> es wird nur der Text Teil angezeigt

    Deshalb ist es wichtig, Änderungen immer an den html und den txt Vorlagen durchzuführen.

    Gruss Web28

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.868
    • Geschlecht:
    Was du nicht sagst ;-).
    Das ist schon alles klar.
    • Ging es hier nur um die *.txt-Mails,
      die *.html-Mails haben ja das hier besprochene Problem nicht da man dort mit HTML alles fomatiert hat/formatieren kann
      und
    • gibt es (neben meiner Wenigkeit) sicher noch eine Reihe anderer Leute die grundsätzlich keine HTML-Mails versenden, eben wegen der Gefahr als Spam deklariert zu werden.

    Ich finde das Ergebnis kann sich in beiden Implementationen sehen lassen.

    Gruß,
    noRiddle

    *NACHTRAG*
    Nochmals:
    Veränderungen die in beiden Vorlagen gemacht werden müssten sind hier nicht relevant da es nur um die Formatierung der Text-Mail ging.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.868
    • Geschlecht:
    Ich hatte in meiner Implementation noch ein kleines Fehlerchen.
    In der /includes/classes/order.php
    muß an dieser Stelle
    Code: PHP  [Auswählen]
    'PRODUCTS_SHIPPING_TIME_LABEL' => add_always_empty_spaces(Lieferzeit:),

    das stehen
    Code: PHP  [Auswählen]
    'PRODUCTS_SHIPPING_TIME_LABEL' => add_always_empty_spaces(SHIPPING_TIME_TXT),

    Noch eine Zusatzinformation:
    Da Teile des Arrays $order_total, und somit auch des neuen $order_total_txt in der DB mit HTML-tags versehen sind (z.B.: <b>Summe:</b>), werden diese HTML-tags vor Auffüllen des Wertes mit Leerzeichen entfernt (siehe Code).

    Gruß,
    noRiddle

    Matt

    • Experte
    • Beiträge: 4.241
    Wo sind die Konstanten definiert ?

    Das sind die in php standardmäßig für str_pad definierten Konstanten:
    http://de.php.net/str_pad

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.868
    • Geschlecht:
    Achso, das heißt Smarty greift da auf die Original-PHP-Funktion zurück.
    Gut zu wissen.

    Danke für die Info.

    Für die die meine Implementation einbauen möchten, hier eine gefixte Version mit gestrafftem Code.
    In den beiden beigelegten order_mail.txt-Templates sollte man innerhalb der foreach-Schleifen nichts an der Formatierung verändern.
    Wer z.B. die Lieferzeit nicht in der Mail haben möchte kann einfach diese Zeile löschen:

    Code: PHP  [Auswählen]
    {if $order_values.PRODUCTS_SHIPPING_TIME neq ''}{$order_values.PRODUCTS_SHIPPING_TIME_LABEL} {$order_values.PRODUCTS_SHIPPING_TIME}{/if}

    Gruß,
    noRiddle

    [EDIT Tomcraft 19.12.2013: Modul in Beitrag 1 aktualisiert.]

    Matt

    • Experte
    • Beiträge: 4.241
    Ja, man kann ja php-Funktionen durch Smarty durchschleifen, siehe hier:
    http://www.smarty.net/forums/viewtopic.php?p=10468&sid=126098377f1d8ffcd9c344b9c8f44bd0

    TeeBlume

    • Fördermitglied
    • Beiträge: 71
    • Geschlecht:
    @Matt

    Ich hab das mal eingebaut. Leider bekomme ich die Gesamtsumme nicht rechtsbündig angezeigt.
    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Der entsprechende Code aus der oder_mail.txt
    Code: PHP  [Auswählen]
    {foreach name=aussen item=order_total_values from=$order_total}
    {$order_total_values.TITLE|str_pad:59:" ":$smarty.const.STR_PAD_LEFT}{$order_total_values.TEXT|str_pad:13:" ":$smarty.const.STR_PAD_LEFT}
    {/foreach}

    Erst dachte ich, es liegt an der Länge des Wortes 'Summe'. Hab's dann in der ot_total.php in
    'Gesamtsumme' geändert. Aber daran scheint es nicht zu liegen.

    Hast du eine Idee?

    Gruß
    TeeBlume

    Matt

    • Experte
    • Beiträge: 4.241
    Evtl sind da noch Leerzeichen hinter dem EUR, die man aber nicht sieht. Nimm doch mal testweise ein anderes Ersetzungszeichen, z.B. '.' und poste das Ergebnis noch mal.

    TeeBlume

    • Fördermitglied
    • Beiträge: 71
    • Geschlecht:
    Die Idee hatte ich auch schon
    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Leider das gleiche Ergebnis.

    Gruß
    TeeBlume

    Matt

    • Experte
    • Beiträge: 4.241
    Das ist irgendwie komisch. Ich hab leider keinen modified Shop zur Hand mit dem ich das mal testen könnte.

    Mach doch mal
    Code: PHP  [Auswählen]
    {foreach name=aussen item=order_total_values from=$order_total}
    {$order_total_values.TITLE|str_pad:59:" ":$smarty.const.STR_PAD_LEFT}{$order_total_values.TEXT|str_pad:13:" ":$smarty.const.STR_PAD_LEFT}**
    {/foreach}
     
    Das würde Leerzeichen hinter dem EUR 'verraten'.

    TeeBlume

    • Fördermitglied
    • Beiträge: 71
    • Geschlecht:
    Das ist es auch nicht
    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Wo wird denn
    Code: PHP  [Auswählen]
    $order_total_values.TEXT
    definiert? 
    Wird die Gesamtsumme anders formatiert?

    Gruß
    TeeBlume
    3 Antworten
    2679 Aufrufe
    29. Dezember 2016, 12:40:58 von baustelle
    0 Antworten
    1397 Aufrufe
    18. Mai 2017, 00:53:53 von lonesomewalker
    5 Antworten
    2812 Aufrufe
    04. Juni 2013, 22:21:25 von jannemann
               
    anything