Hallo,
auf Basis dieser Erweiterung
http://foren.myoos.de/index.php?showtopic=44
kann man im Kassenbereich abhängig zur Zahlungsart oder Versandart eine Bearbeitunggebühr erheben.
Oder auch einen Rabatt
Hier das Modul
http://www.oos-shop.de/service/ot_charges.txt
In das Verzeichnis
~/shop/includes/modules/order_total/
speichern
und die Sprachdatei nach
~/shop/includes/languages/*sprache/*modules/order_total/
ablegen.
über den Admin kann man das Modul normal aktivieren.
in der Konstanten
MODULE_CHARGES_SORT_ORDER ist die Anzeigenreihenfolge (wie bei den andren Modulen auch _SORT_ORDER)
und in MODULE_CHARGES_CHARGES speichern wir den Prozentsatz.
Wenn man nun eine Gebühr abhängig zu einem Payment Modul verwenden möchte, schaltet man den Shop in den Debug-Modus
~/shop/includes/oos_main.php
wählt im Kassenbereich die Zahlungsart aus und sieht sich den Wert von $_SESSION['payment] an
In die Zeile 52 trägt man nun das Payment modul ein
<!--c1--><div class='codetop'>QUELLTEXT[/align]<div class='codemain'><!--ec1--> if ($_SESSION['payment] == '_modul_') {<!--c2-->[/align]<!--ec2-->
Wenn man dies abhängig von einem Versandmodul verwenden möchte, so verwendet man in der If Anfrage
<!--c1--><div class='codetop'>QUELLTEXT[/align]<div class='codemain'><!--ec1-->
if ($_SESSION['shipping] == '_mein_modul_') {<!--c2-->[/align]<!--ec2-->
ind der Zeile darunter wird der Betrag berechnet
<!--c1--><div class='codetop'>QUELLTEXT[/align]<div class='codemain'><!--ec1-->$add_charges = round($amount*10)/10*$od_pc/100;<!--c2-->[/align]<!--ec2-->
hier kann man selbstverständlich auf feste Beträge verwerden z.b.
<!--c1--><div class='codetop'>QUELLTEXT[/align]<div class='codemain'><!--ec1-->$add_charges = MODULE_CHARGES_CHARGES;<!--c2-->[/align]<!--ec2-->
wenn man dies über den Admin pflegen möchte. oder einfach hinterlegen
<!--c1--><div class='codetop'>QUELLTEXT[/align]<div class='codemain'><!--ec1-->$add_charges = '2.56';<!--c2-->[/align]<!--ec2-->
Möchte man anstelle eine Gebühr einen Rabatt geben? Ändern wir
aus +
<!--c1--><div class='codetop'>QUELLTEXT[/align]<div class='codemain'><!--ec1--> if ($add_charges>0) {
$this->deduction = $add_charges;
$this->output[] = array('title' => '+ ' . $this->title . ' ('. number_format($charges, 2) .'%): ',
'text' => '' . $oCurrencies->format($add_charges) . '',
'value' => $add_charges);
$order->info['total] = $order->info['total] + $add_charges;
}<!--c2-->[/align]<!--ec2-->
wird -
<!--c1--><div class='codetop'>QUELLTEXT[/align]<div class='codemain'><!--ec1--> if ($add_charges>0) {
$this->deduction = $add_charges;
$this->output[] = array('title' => '- ' . $this->title . ' ('. number_format($charges, 2) .'%): ',
'text' => '' . $oCurrencies->format($add_charges) . '',
'value' => $add_charges);
$order->info['total] = $order->info['total] - $add_charges;
}<!--c2-->[/align]<!--ec2-->
und wenn man keine Prozente verwende muss man hier auch die Zeile ändern
aus
<!--c1--><div class='codetop'>QUELLTEXT[/align]<div class='codemain'><!--ec1--> $this->output[] = array('title' => '- ' . $this->title . ' ('. number_format($charges, 2) .'%): ',<!--c2-->[/align]<!--ec2-->
wird
<!--c1--><div class='codetop'>QUELLTEXT[/align]<div class='codemain'><!--ec1--> $this->output[] = array('title' => '- ' . $this->title . ' :',<!--c2-->[/align]<!--ec2-->
Auf Anregungen und Fragen freut sich
r23