Jump to content

Rabatt in order_conf E-Mail verstecken, wenn = 0


Dp.

Recommended Posts

Ich würde gerne in der order_conf.html Mail die Zeile mit dem totalen Rabatt nur anzeigen, wenn es einen Rabatt gibt. Da das gleiche schon mit der Zeile, die die Rabattcodes enthält, getan wird, dachte ich, ich könnte mich da dran hängen...

In classes/PaymentModule.php wird aus

$cart_rules_list_txt = '';
$cart_rules_list_html = '';
if (count($cart_rules_list) > 0) {
	$cart_rules_list_txt = $this->getEmailTemplateContent('order_conf_cart_rules.txt', Mail::TYPE_TEXT, $cart_rules_list);
	$cart_rules_list_html = $this->getEmailTemplateContent('order_conf_cart_rules.tpl', Mail::TYPE_HTML, $cart_rules_list);
}

dann 

$cart_rules_list_txt = '';
$cart_rules_list_html = '';
$discount_summary_txt = '';
$discount_summary_html = '';
if (count($cart_rules_list) > 0) {
	$cart_rules_list_txt = $this->getEmailTemplateContent('order_conf_cart_rules.txt', Mail::TYPE_TEXT, $cart_rules_list);
	$cart_rules_list_html = $this->getEmailTemplateContent('order_conf_cart_rules.tpl', Mail::TYPE_HTML, $cart_rules_list);
	$discount_summary_txt = $this->getEmailTemplateContent('order_conf_discount_summary.txt', Mail::TYPE_TEXT, $cart_rules_list);
	$discount_summary_html = $this->getEmailTemplateContent('order_conf_discount_summary.tpl', Mail::TYPE_HTML, $cart_rules_list);
}

Dabei ist der gewünschte Code/Text in die entsprechenden Dateien ausgelagert.

Anschließend noch aus

$data = array(
	[...]
	'{discounts}' => $cart_rules_list_html,
	'{discounts_txt}' => $cart_rules_list_txt,
	[...]
);

folgendes machen:

$data = array(
	[...]
	'{discounts}' => $cart_rules_list_html,
	'{discounts_txt}' => $cart_rules_list_txt,
	'{discount_summary}' => $discount_summary_html,
	'{discount_summary_txt}' => $discount_summary_txt,
	[...]
);

 

Klappt aber leider nicht wie erwartet. Bei Bestellung wirft www.domain.de/module/ps_wirepayment/validation einen Error 500 aus.

Gibt es hierbei irgendwelche offensichtlichen Fehler?

Link to comment
Share on other sites

2 hours ago, Wuschel said:

Was zeigt denn die Seite im Debug-Modus als Fehler an?

Vielleicht solltest du auch mal einen Blick in das Verzeichnis /mails/_partials riskieren. ;) Denn ich geh mal davon aus, du nutzt 1.7.

1.7, genau. Das Verzeichnis existiert bei mir aber gar nicht  Die zuvor erwähnten E-Mail-Partials liegen bei mir im gleichen Ordner wie der Rest (bzw. an drei Orten: mails/en/, themes/classic/mails/en/ und modules/ps_emailsmanager/imports/classic/en/; die eigentlichen Mails verschickt er dann aus themes/classic_child/mail/de... verstehe ich nicht, habe ich mich aber mit abgefunden).

Debug siehe Anhang.

 

24 minutes ago, Wuschel said:

Das ist nicht das Problem. Die Mail-Vorlagen sind halt in 1.7 völlig anders aufgebaut.

Bei jedem Problem komme ich wieder in Versuchung, das Ganze noch einmal mit 1.6 oder 30bees aufzubauen. Bestimmt nicht der heilige Gral, aber es scheint doch einiges einfacher zu sein.

2020-03-19 11_27_01-Clipboard.png

Link to comment
Share on other sites

19 minutes ago, Dp. said:

Das Verzeichnis existiert bei mir aber gar nicht 

Dann ist das wohl schon wieder geändert worden. In der aktuellen 1.7-Version ist es so: https://github.com/PrestaShop/PrestaShop/tree/develop/mails/_partials

Vielleicht solltest du dir probeweise die aktuelle Version der Klasse Currency.php von Github laden: https://github.com/PrestaShop/PrestaShop/blob/develop/classes/Currency.php

Da wird auch ständig dran gebastelt, aber eben nicht nur da. Deswegen ist 1.7 - egal was andere dazu sagen mögen - aus meiner Sicht nichts für Live-Shops.

Link to comment
Share on other sites

Mache ich heute Abend mal. Sobald ich die paar eingangs beschriebenen Änderungen Rückgängig mache, tritt der Fehler aber nicht auf. Auch seltsam, oder?

 

Bzgl. 1.7: was wäre denn aus deiner Sicht der aktuelle Königsweg? 1.6 (aus-entwickelt, aber immer mehr veraltet? Bedenken bzgl. Sicherheit?) oder thirtybees (zumindest ein wenig Entwicklung, dafür eingeschränkte Kompatibilität)?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...