Jump to content
Dp.

Rabatt in order_conf E-Mail verstecken, wenn = 0

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?

Share this post


Link to post
Share on other sites
Posted (edited)

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.

Edited by Wuschel (see edit history)

Share this post


Link to post
Share on other sites

Kann es sein, daß es sich bei der rules_list um eine Liste mehrerer Einträge (Array) handelt, bei der summary jedoch um einen einzelnen Wert?

Share this post


Link to post
Share on other sites
21 minutes ago, rictools said:

Kann es sein, daß es sich bei der rules_list um eine Liste mehrerer Einträge

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

Share this post


Link to post
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

Share this post


Link to post
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.

Share this post


Link to post
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)?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More