[1.6.12] Gebühren

In diesem Board könnt Ihr alle "allgemeinen" Fragen zum Thema MyOOS stellen.
Antworten
r23
Beiträge: 2622
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

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
Antworten