Jump to content
xt:Commerce Community Forum

Rabatt oder Gutscheincodeverwendung in Bestätigungsmail anzeigen


axcomonline

Recommended Posts

Hallo,

gibt es eine Möglichkeit in der Bestätigungsmail anzuzeigen, dass der Kunde einen Rabatt bekommt oder einen Gutscheincode in Anspruchgenommen hat?

Hab das Gutscheinplugin und wenn der Kunde da nun einen Gutscheincode eingibt und z.B. 5% Rabatt bekommt, fänd ichs gut wenns auch in der Mail steht, aber da kenn ich die Variablen nicht für. Es reicht auch schon wenn da steht: "Gutscheincode in Anspruch genommen". Noch besser wäre natürlich "Rabatt= 5%"

Link to comment
Share on other sites

hi,

für die Gutscheine müsste man über php mit der Order-ID in der "xt_coupons_redeem" nachkucken, ansonsten steht in der Auftragsposition nur der gewährte Rabatt ( auch nicht immer, kann bei bestimmten Plugins in bestimmten Konstellationen auch mal nicht der Fall sein )

Grüsse

Link to comment
Share on other sites

und wie mach ich dass über php. Hab davon leider 0 Ahnung.

Und in der Bestätigung steht bei mir unter Einzelpreis dann nur noch der Preis mit dem abgezogenen Rabatt. Da ist es aber dann nicht ersichtlich für den Kunden das Rabatt abgezogen wurde. Besser wäre einmal der normale Preis und daneben dann nochmal -Rabatt. Es soll halt nur besser für den Kunden erkenntlich sein, dass er den Gutschein bzw Rabatt bekommt.

Link to comment
Share on other sites

hmmm ok ja schade haben auch das Gutscheinmodul gekauft auch wenn wir es wegen der Paypal Express Thematik leider noch nicht einsetzen können (Update wurde vom Support ja versprochen damit es auch mit Paypal Express geht).

Schade ist das schon das man wohl nicht daran gedacht hat den Rabatt auch in der Bestellung und in der Email zu integrieren... Ist doch eigentlich Stand der Dinge heute.

Hoffe mal das wird beim nächsten Gutscheinplugin Update berücksichtigt.

MfG

Link to comment
Share on other sites

für Dich, Amelie und all die anderen ...:

auf die Schnelle und ohne Gewähr

{assign var=id value=$order_data.orders_id}

{php}

$id = $this-> get_template_vars('id');

$rs = $db->Execute("SELECT * FROM xt_coupons_redeem WHERE order_id = '".$id."'");

if ( !$rs->EOF ) {

$redeem_amount = $rs->fields['redeem_amount'];

$this->assign('coupon_rabatt',$redeem_amount);

}

{/php}

Danach sollte unter {$coupon_rabatt} der gewährte Gutschein-Rabatt-Betrag zur Verfügung stehen

Link to comment
Share on other sites

und wo kopier ich das nun hin.

Meine send_order im Shopbackend sieht so aus:

<link href="{$_system_mail_css}" type="text/css" rel="stylesheet">

<table cellpadding="0" cellspacing="0" class="email_container">

<tr>

<td class="email_table_center_bg" valign="top">

<div class="email_content">

{if $order_data.delivery_gender eq "m"}Sehr geehrter Herr

{elseif $order_data.delivery_gender eq "f"}Sehr geehrte Frau

{else}Sehr geehrte®

{/if} {$order_data.delivery_firstname} {$order_data.delivery_lastname},<br /><br />

hiermit bestätigen wir den Eingang Ihrer Bestellung vom {$order_data.date_purchased}.<br /><br />

<b>Ihre Daten nochmals zur Kontrolle:<b><br /><br />

{if $order_data.customers_cid != ""}<b>Ihre Kundennummer:</b> {$order_data.customers_cid}{/if}<br />

<b>Shop-Bestellnummer:</b> {$order_data.orders_id}<br />

<b>{txt key=TEXT_ORDER_DATE}:</b> {$order_data.date_purchased}<br /><br />

<table width="100%" border="0px" cellpadding="4" class="email_container">

<tr>

<td width="30%" valign="top">

<b>{txt key=TEXT_SHIPPING_ADDRESS}</b><br />

Versandart: {$order_data.shipping_code}<br /><br />

{if $order_data.delivery_company}

{$order_data.delivery_company}<br />

{/if} {$order_data.delivery_firstname} {$order_data.delivery_lastname}<br />

{$order_data.delivery_street_address}<br />

{if $order_data.delivery_suburb} {$order_data.delivery_suburb}<br />

{/if} {$order_data.delivery_postcode} {$order_data.delivery_city}<br />

{if $order_data.delivery_state}{$order_data.delivery_state}

{/if}{$order_data.delivery_country}<br />

</td>

<td valign="top">

<b>{txt key=TEXT_PAYMENT_ADDRESS}</b><br /><br /><br />

{if $order_data.billing_company} {$order_data.billing_company}<br />

{/if} {$order_data.billing_firstname} {$order_data.billing_lastname}<br />

{$order_data.billing_street_address}<br />

{if $order_data.billing_suburb} {$order_data.billing_suburb}<br />

{/if} {$order_data.billing_postcode} {$order_data.billing_city}<br />

{if $order_data.billing_state}{$order_data.billing_state}

{/if}{$order_data.billing_country}<br />

</td>

</tr>

</table><br /><br />

{if $payment_info}<b>{txt key=TEXT_PAYMENT_INFOS}</b><br /><br />

{$payment_info}<br /><br />{/if}

<table class="tabledetails" width="100%" border="0" cellspacing="0" cellpadding="4">

<tr class="headerrow">

<td class="left">{txt key=TEXT_QTY}</td>

<td class="left">{txt key=TEXT_PRODUCTS_MODEL}</td>

<td class="left">{txt key=TEXT_ARTICLE}</td>

<td class="right">{txt key=TEXT_SINGLE_PRICE}</td>

<td class="right">{txt key=TEXT_TOTAL_PRICE}</td>

</tr>

{foreach name=aussen item=order_values from=$order_products}

<tr class="{cycle values="contentrow1,contentrow2"}">

<td class="left">{$order_values.products_quantity} x</td>

<td class="left">{$order_values.products_model}</td>

<td class="left">{$order_values.products_name}</strong></td>

<td class="right">{$order_values.products_price.formated}</td>

<td class="right">{$order_values.products_final_price.formated}</td>

</tr>

{$order_values.products_information.html_content}

{/foreach}

<tr>

<td colspan="5" align="right" class="subtotal">

<div align="right">

<b>{txt key=TEXT_SUB_TOTAL}: {$total.product_total.formated}</b><br/>

{foreach name=aussen item=order_total_values from=$order_total_data}

{$order_total_values.orders_total_name}:

{$order_total_values.orders_total_price.formated}<br/>

{/foreach} {foreach name=aussen item=tax_data from=$total.total_tax}

{txt key=TEXT_TAX} {$tax_data.tax_key}%:

{$tax_data.tax_value.formated}<br/>

{/foreach}

<b>{txt key=TEXT_TOTAL}: {$total.total.formated}</b>

</div>

</tr>

</table>

<br/>

<br/>

<b>Bemerkungen (Zusatzinfos zu Ihrer Bestellung):</b><br/><br/>

{$order_data.comments}<br/><br/>

</div>

<div class="email_footer">{$_system_footer_html}</div>

</td>

</tr>

</table>

Link to comment
Share on other sites

ok, sagte doch, ohne Gewähr:

es muss noch was rein:

{assign var=id value=$order_data.orders_id}

{php}

global $db;

$id = $this-> get_template_vars('id');

$rs = $db->Execute("SELECT * FROM xt_coupons_redeem WHERE order_id = '".$id."'");

.......

Grüsse

Link to comment
Share on other sites

Perfekt!!! Klappt alles super mit dem anzeigen!!!

Das einzige was mich jetzt noch wundert ist, dass bei eingelöster Gutscheinwert irgendwie ein viel zu hoher Betrag steht. Aber das umgeh ich jetzt einfach mal so, dass bei der verwendung eines Codes lediglich steht "Abgezogener Gutschein-Rabatt: 5%"

So mach ichs:

{if $coupon_rabatt > ''}

<b>Abgezogener Gutschein-Rabatt: 5%</b>

<br/>

{/if}

Ist dann zwar nen fester Wert, aber hab eh nur einen Gutscheincode, den man eingeben kann

Link to comment
Share on other sites

hi,

das mit dem zu hohen Betrag könnte ein Formatierungsproblem sein, es wird ja nur ein reiner Php-Wert mit Punkt statt Komma ausgegeben, kann man aber leicht im Smarty abfangen, wie ich Dir per PM geschrieben habe, habe ich auch nicht kontrolliert, ob das ein Brutto- oder Nettowert ist

Aber wenns so auch passt, freuts mich :-)

Grüsse

Link to comment
Share on other sites

  • 4 weeks later...

Das funktioniert wirklich wunderbar! DANKE! Aber wenn ich nun auch noch den Gutschein-Code ausgeben will, also z.B. LAK-XKN-USW, dann muss ich doch auf dieselbe Weise die Tabelle "xt_coupon_tokens" abfragen.

Wenn ich dafür denselben Quellcode verwende, wie beim Wert des Gutscheins, zerschieße ich mir allerdings immer den Checkout-Prozess. Wahrscheinlich stimm etwas in meinem Quellcode nicht...wäre genial wenn jemand da mal drüber schauen könnten, denn das interessiert bestimmt mehrere Leute:

{assign var=id value=$order_data.orders_id}

{php}

global $db;

$id = $this-> get_template_vars('id');

$rs = $db->Execute("SELECT * FROM xt_coupons_redeem WHERE order_id = '".$id."'");

if ( !$rs->EOF ) {

$redeem_amount = $rs->fields['redeem_amount'];

$redeem_amount = number_format($redeem_amount, 2, ',', '');

$this->assign('coupon_rabatt',$redeem_amount);

}

global $db2;

$id2 = $this-> get_template_vars('id');

$code = $db2->Execute("SELECT * FROM xt_coupons_token WHERE order_id = '".$id2."'");

if ( !$code->EOF ) {

$redeem_code = $code->fields['coupon_token_code'];

$this->assign('coupon_code',$redeem_code);

}

{/php}

Ich wäre Euch sehr dankbar!

Grüße Chris

Link to comment
Share on other sites

hi,

$db2 gibts nicht !

also nur so ( wenn alles andere stimmt ):

$id2 = $this-> get_template_vars('id');

$code = $db->Execute("SELECT * FROM xt_coupons_token WHERE order_id = '".$id2."'");

Grüsse

wobei man sich das nochmalige Holen der Order-Id auch sparen könnte:

$code = $db->Execute("SELECT * FROM xt_coupons_token WHERE order_id = '".$id."'");

Link to comment
Share on other sites

1000 Dank :-).

Mit einer kleinen Modifikation geht es jetzt. Für alle zum Mitschreiben:

{assign var=id value=$order_data.orders_id}

{php}

global $db;

$id = $this-> get_template_vars('id');

$rs = $db->Execute("SELECT * FROM xt_coupons_redeem WHERE order_id = '".$id."'");

if ( !$rs->EOF ) {

$redeem_amount = $rs->fields['redeem_amount'];

$redeem_amount = number_format($redeem_amount, 2, ',', '');

$this->assign('coupon_rabatt',$redeem_amount);

}

$id = $this-> get_template_vars('id');

$code = $db->Execute("SELECT * FROM xt_coupons_token WHERE coupon_token_order_id = '".$id."'");

if ( !$code->EOF ) {

$redeem_code = $code->fields['coupon_token_code'];

$this->assign('coupon_code',$redeem_code);

}

{/php}

Jetzt muss ich nur noch igrendwie den Gutschein-Wert (25% oder z.B. 10 EUR ausgeben, dann isses ja quasi perfekt :-)

Aber das wird auch noch klappen. Nur ist dieser Wert in einer anderen Tabelle ohne das Feld "orders_id".

Da muss man dann ja wohl eventuell einen "JOIN" oder dergleichen machen...hast Du / Sie zufällig auch hierfür einen Rat? DANKE!

Link to comment
Share on other sites

Ist unter Garantie nicht gerade "Redundanzfrei", aber ich bin ja auch mehr Designer als Coder ;-).

Hier nun der Code damit man alles ausgeben kann:

1. Gutschein Wert / Prozent (10 EUR / 10%)

2. Gutschein-Code (XYZ-HKN-123)

3. Die rabattierte Summe (z.B. 23,60 EUR)

{assign var=id value=$order_data.orders_id}

{php}

global $db;

$id = $this-> get_template_vars('id');

$rs = $db->Execute("SELECT * FROM xt_coupons_redeem WHERE order_id = '".$id."'");

if ( !$rs->EOF ) {

$redeem_amount = $rs->fields['redeem_amount'];

$redeem_amount = number_format($redeem_amount, 2, ',', '');

$this->assign('coupon_rabatt',$redeem_amount);

}

$id = $this-> get_template_vars('id');

$code = $db->Execute("SELECT * FROM xt_coupons_token WHERE coupon_token_order_id = '".$id."'");

if ( !$code->EOF ) {

$redeem_code = $code->fields['coupon_token_code'];

$this->assign('coupon_code',$redeem_code);

}

$id = $this-> get_template_vars('id');

$coupon_data = $db->Execute("SELECT * FROM xt_coupons_token WHERE coupon_token_order_id = '".$id."'");

if ( !$code->EOF ) {

$coupon_id = $coupon_data->fields['coupon_id'];

}

$coupon_data2 = $db->Execute("SELECT * FROM xt_coupons WHERE coupon_id = '".$coupon_id."'");

if ( !$coupon_data2->EOF ) {

$coupon_percent = $coupon_data2->fields['coupon_percent'];

$coupon_amount = $coupon_data2->fields['coupon_amount'];

if ($coupon_percent > 0){

$this->assign('coupon_prozent',$coupon_percent);}

if ($coupon_amount > 0){

$this->assign('coupon_wert',$coupon_amount);}

}

{/php}

Damit stehen in der Bestell-E-Mail dann folgende Werte zur Verfügung:

{$coupon_prozent}

{$coupon_wert}

{$coupon_code}

{$coupon_rabatt}

Grüße Chris und nochmals Danke!!!

Link to comment
Share on other sites

  • 2 months later...

Steht doch alles im Thread ;-).

Der Quellcode kann direkt im E-Mail-Manager in die betreffende E-Mail Vorlage eingefügt werden. Also etwa so:

Man geht unter dem Tab "Inhalt" auf "E-Mail-Manager". Öffnet die E-Mail Vorlage "send_order" und fügt den Quellcode einfach vor dem eigenen HTML / Textinhalt ein.

In der selben Vorlage (immer noch "send_order"), muss man dann nur noch die Platzhalter

in den E-Mail-Inhalt einfügen. Also an den gewünschten Stellen in der E-Mail folgendes einfügen:

{$coupon_prozent}

{$coupon_wert}

{$coupon_code}

{$coupon_rabatt}

(So habe ich meine Variablen benannt. Das kann man dann natürlich selbst benennen wie man möchte...)

Wie definierst Du zusätzliche Rabatte? Da komme ich jetzt nicht ganz mit.

Im Normalfall kannst Du alles was im Checkout Prozess in der Session gespeichert wird auch in den E-Mails ausgeben. Du musst nur den Namen der Smarty-Variable wissen.

Grüße

Link to comment
Share on other sites

Ich meinte wo der komplette php Code hin soll?

{assign var=id value=$order_data.orders_id}

{php}

global $db;

$id = $this-> get_template_vars('id');

$rs = $db->Execute("SELECT * FROM xt_coupons_redeem WHERE order_id = '".$id."'");

if ( !$rs->EOF ) {

$redeem_amount = $rs->fields['redeem_amount'];

$redeem_amount = number_format($redeem_amount, 2, ',', '');

$this->assign('coupon_rabatt',$redeem_amount);

}


$id = $this-> get_template_vars('id');

$code = $db->Execute("SELECT * FROM xt_coupons_token WHERE coupon_token_order_id = '".$id."'");

if ( !$code->EOF ) {

$redeem_code = $code->fields['coupon_token_code'];

$this->assign('coupon_code',$redeem_code);

}


$id = $this-> get_template_vars('id');

$coupon_data = $db->Execute("SELECT * FROM xt_coupons_token WHERE coupon_token_order_id = '".$id."'");

if ( !$code->EOF ) {

$coupon_id = $coupon_data->fields['coupon_id'];

}


$coupon_data2 = $db->Execute("SELECT * FROM xt_coupons WHERE coupon_id = '".$coupon_id."'");

if ( !$coupon_data2->EOF ) {

$coupon_percent = $coupon_data2->fields['coupon_percent'];

$coupon_amount = $coupon_data2->fields['coupon_amount'];

if ($coupon_percent > 0){

$this->assign('coupon_prozent',$coupon_percent);}

if ($coupon_amount > 0){

$this->assign('coupon_wert',$coupon_amount);}

}

{/php}

Die Ausgabe mit den Variblen im Mailtemplate ist klar :-)

Wegen der anderen Rabatte: Woher bekomme ich die Variable?

Link to comment
Share on other sites

  • 1 month later...
  • 7 months later...
  • 4 weeks later...

sitz gerade mal wieder dran, die ausgabe vom Prozentwert und von dem Gutschein Name wird noch nicht ausgegeben.... wo liegt hier das Problem?

hier mein code:

{assign var=id value=$order_data.orders_id}

{php}

global $db;

$id = $this-> get_template_vars('id');

$rs = $db->Execute("SELECT * FROM xt_coupons_redeem WHERE order_id = '".$id."'");

if ( !$rs->EOF ) {

$redeem_amount = $rs->fields['redeem_amount'];

$redeem_amount = number_format($redeem_amount, 2, ',', '');

$this->assign('coupon_rabatt',$redeem_amount);

}

$id = $this-> get_template_vars('id');

$code = $db->Execute("SELECT * FROM xt_coupons_token WHERE coupon_token_order_id = '".$id."'");

if ( !$code->EOF ) {

$redeem_code = $code->fields['coupon_token_code'];

$this->assign('coupon_code',$redeem_code);

}

$id = $this-> get_template_vars('id');

$coupon_data = $db->Execute("SELECT * FROM xt_coupons_token WHERE coupon_token_order_id = '".$id."'");

if ( !$code->EOF ) {

$coupon_id = $coupon_data->fields['coupon_id'];

}

$coupon_data2 = $db->Execute("SELECT * FROM xt_coupons WHERE coupon_id = '".$coupon_id."'");

if ( !$coupon_data2->EOF ) {

$coupon_percent = $coupon_data2->fields['coupon_percent'];

$coupon_amount = $coupon_data2->fields['coupon_amount'];

if ($coupon_percent > 0){

$this->assign('coupon_prozent',$coupon_percent);}

if ($coupon_amount > 0){

$this->assign('coupon_wert',$coupon_amount);}

}

{/php}

und hier die Variablen für die ausgabe:

{$coupon_prozent}prozent<br>

{$coupon_wert}Wert<br>

{$coupon_code}Code<br>

{$coupon_rabatt}Rabatt<br>

Link to comment
Share on other sites

  • 4 years later...

Habs gebraucht damit der Gutscheincode mitgetrackt wird.

So gehts: 
(Beispiel für Gutscheincode)

 

{php}

global $db;

$rs = $db->Execute("SELECT `xt_coupons`.`coupon_code` FROM `xt_coupons_redeem` JOIN `xt_coupons` ON `xt_coupons`.`coupon_id` = `xt_coupons_redeem`.`coupon_id` WHERE `xt_coupons_redeem`.`order_id` =  ".$this->_tpl_vars['success_order']->oID);

if ( !$rs->EOF ) {

    $this->assign('coupon_code',$rs->fields['coupon_code']);

}

{/php}


Ausgabe:
{$coupon_code}

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...