Emails an den Kunden anpassen

  • Hallo,
    zu dem Thema habe ich nur ältere Beiträge gefunden bisher und es ist wohl so, dass man da wirklich am eingemachten rumbasteln muss.


    Einen kleinen Teilerfolg habe ich bereits, aber ein paar Punkte finde ich selbst nicht.


    Ich habe den Ordner invoice unter templates angelegt und dort die Originaldateien hinkopiert (alle).


    Verändert habe ich bisher die
    mail_html_shopper.php wie folgt:


    Passwort und Link zur Bestellung entfernt.


    Einen eigenen Text, der direkt unter der Anrede stehen soll eingefügt. (Der müsste wohl in eine andere Datei, aber so funktioniert es auch und ist für mich übersichtlicher)


    Tabellenbreite auf 80% geändert.


    Die Tabellenbreite bei ....shopperadres habe ich ebenfalls angepasst.



    Nun möchte ich noch folgendes ändern:
    In der Tabelle mit der Bestellung den Produktstatus und Preisnachlass raus und Tabellenbreite auf 80% (findet bestimmt alles in einer Datei statt, aber ich weiß nicht in welcher.)


    Die Grußformel möchte ich frei formulieren, denn der Standard schreibt mir 2x den Shopnamen untereinander und gefällt mir auch sonst nicht.


    Das Feld mit der Anredefeld soll auf 80%


    Zu guter letzt hätte gerne eine andere Schriftart und vor allem kleine Größe. (Für einen Artikel werden 2 Seiten gedruckt).
    Ließen sich die Rahmen entfernen, wäre das auch super. Es steht zwar alles auf 0, aber dennoch werden in der Email dünne Linien angezeigt.


    Wenn mir jemand sagen könnte, was ich davon in welcher Datei suchen muss, käme ich schon weiter.


    Ich nehme an, wenn ich Emails im html-Format versende, kann ich die mail_raw-Dateien außen vor lassen?


    Der nächste Schritt wäre, die Versandemail als Fließtext/Brief zu formatieren, ganz ohne Artikelauflistung.


    Bin - wie immer - für ein paar Tipps dankbar :)

  • Hi Emily,


    die invoice_items.php enthält die Tabelle für die Rechnung und die E-Mail.


    Dort müssen bevorzugt die TDs herausgenommen werden und die Variable für colspan angepasst werden. Man kann auch einfach die Überschriften herausnehmen und die Zellen auf eine geringe Breite setzen, aber das ist weniger schön.


    _raw brauchst Du nicht, richtig. Im mail_footer waren glaub ich die doppelt und dreifachen "MFGs".


    So short
    Stefan

  • Hallo Stefan,


    damit bin ich nun schon viel weiter gekommen. Bei der Tabelle hab ich jetzt aber noch an 3 Stellen zahlen, die ich nicht rausbekomme.


    Siehe roter Rahmen. Sie stamme wohl aus der urpsrünglichen Spalte Preisnachlass.
    Bei Artikelbezeichnung und Menge habe ich colspan um 1 erhöht so passt es. Bei der Überschrift ist auch alles sehr leicht zuzuordnen, nur bei den Feldern mit den Beträgen, finde ich die Stellen im code nicht. Die Statusangabe fand ich noch, aber die drei Zahlen hier leider nicht.




    Kannst du mir sagen, nach welchem Codeschnipsel oder welcher Feldbezeichnung ist suchen soll? Ich sehe hier gefühlte 1000x ...tax :(


    Lg

  • Ich nehme den Teilerfolg wieder zurück :(
    In der mail_html_shopper hatte ich einen Text zwischen Anrede und Tabelle eingefügt. Der erscheint nun aber auch in der Versandmail. Dort soll natürlich ein anderer hin.


    Ich habe jetzt in der Sprachdatei zwei Felder mit den jeweiligen Texten eingfügt. Nun müsst ich natürlich wissen, in welche Datei ich die einpflegen muss. Es müsste ja dann wohl für jeden Status eine eigene Email geben.

  • Hi,


    bei der Tabelle musst Du darauf achten, dass jedes TR gleich viele TDs enthält, colspan kann einem TD die Breite von mehreren TDs geben.
    <td colspan="3"> braucht in der nächsten TR drei TDs, wenn diese kein colspan haben, usw.


    Bei der Berechnung gehst Du am besten vom Header aus, und siehst zu, dass alle weiteren Reihen die gleiche Anzahl TD haben. Da ist ein colspan=2 im Header, Achtung.


    In der _shopper kannst Du eine Abfrage einfügen, welcher Status aktiv ist, und dementsprechend die Nachrichten setzen. Das hab ich irgendwann einmal für VM2 gemacht, im Prinzip kann man den Statusnamen oder -buchstaben abfragen und dann if-Abfragen setzen.


    $statusname = $this->orderDetails['details']['BT']->order_status_name


    könnte klappen, damit findet man den Namen raus, für den Buchstaben gibt es sicher auch etwas, vielleicht order_status_code oder so, dann
    if $statusname irgendwas schreib diesunddas.



    Auf die Schnelle
    Stefan

  • Hallo Stefan,


    das mit dem colspan hab ich soweit verstanden, klappt auch. Aber die Beträge mit den roten Rahmen verschwinden dadurch nicht.
    Habe jetzt weiter experimentiert.


    Durch löschen von:


    Zeile 142 verschwindet 0,00 in der Produktzeile und der Betrag rückt ein Feld nach links.
    <td align="right" class="priceCol" >
    <?php echo $this->currency->priceDisplay( $item->product_subtotal_discount, $this->currency ); //No quantity is already stored with it ?>
    </td>


    Zeile 170 löschen und es verschwindet der 2. rote Rahmen
    <td align="right"><?php echo "<span class='priceColor2'>".$this->currency->priceDisplay($this->orderDetails['details']['BT']->order_discountAmount, $this->currency)."</span>" ?></td>



    Die leeren Felder bei Versand und Zahlung lösche ich in Zeilen 212 und 222:
    <td align="right"></td>


    Zeile 232 ist der 3. rote Rahmen.
    <td align="right"><span class='priceColor2'><?php echo $this->currency->priceDisplay($this->orderDetails['details']['BT']->order_billDiscountAmount, $this->currency); ?></span></td>


    Ich hoffe nur, dass die Zeilen nicht noch für was anderes gebraucht werden :-)
    Optisch ist es jetzt fast perfekt. Muss nur noch die Tabelle verbreitern.


    Wegen des individuellen Textes bei "vom Käufer bestätigt" und "versendet":


    Ich dachte auch, dass man was einfügen müsste wie:


    Ist Status "vom Verkäufer bestätigt", dann schreibe den Text aus Feld COM_VIRTUEMART_MAIL_SHOPPER_BESTELLEINGANG aus der virtuemart.ini


    Ist Status "versendet", dann schreibe den Text aus Feld COM_VIRTUEMART_MAIL_SHOPPER_VERSAND aus der virtuemart.ini


    Ich weiß auch, dass das der Code it if ist - kommt ja öfter vor. Nur der genaue Aufbau ist mir nicht klar.


    In der Virtuemart.ini habe ich die beiden o.o. Felder angelegt und dahinter den Text eingegeben.


    Meine bisher erprobten Varianten:



    <?php


    $statusname = $this->orderDetails['details']['BT']->order_status_name


    if ($statusname == "COM_VIRTUEMART_ORDER_STATUS_SHIPPED")
    { echo vmText::_('COM_VIRTUEMART_MAIL_SHOPPER_VERSAND');
    }


    ?>


    und


    <?php


    $statusname = $this->orderDetails['details']['BT']->order_status_name


    if ($statusname == "COM_VIRTUEMART_ORDER_STATUS_SHIPPED")
    { echo $this->orderDetails['details']['BT']->COM_VIRTUEMART_MAIL_SHOPPER_VERSAND


    }
    ?>


    führen zum Absturz in BE :-D