Wir bieten bei uns im Shop Downloadartikel an und haben ein schwerwiegendes Problem entdeckt. Wenn ein Aktionscoupon den Warenwert auf 0 Euro reduziert und der Kunde PayPal als Zahlungsart eingestellt hat, dann funktioniert das nicht. Kunden aus Deutschland können als Notlösung Vokasse wählen. Für alle anderen Kunden bieten wir nur PayPal an. Wie ist das zu lösen?
Ankündigung
Einklappen
Keine Ankündigung bisher.
Aktionscoupon und PayPal
Einklappen
X
-
Zitat von mkuhse Beitrag anzeigenWenn ein Aktionscoupon den Warenwert auf 0 Euro reduziert und der Kunde PayPal als Zahlungsart eingestellt hat, dann funktioniert das nicht.
Normales Zen Cart Verhalten wäre, dass wenn der Gesamtbetrag durch einen Aktionskupon auf Null geht, die vom Kunden gewählte Zahlungsart ignoriert und automatisch durch die Zahlungsart Gift Certificate/Coupon ersetzt wird. Es macht ja keinen Sinn, für Nullbeträge eine normale Zahlungsart anzubieten. In einer normalen Standardinstallation auch wenn vorher PayPal Express gewählt wurde, wird die Bestellung sofort durchgeführt und erscheint dann mit Zahlungsart GV/DC
-
Ich habe die Datei als Textfile angehängt.
In der Datei classes/payment.php wird festgelegt, welche Payment-Module geladen werden sollen. Hier die entsprechenden Zeilen aus der Datei:
if (zen_get_configuration_key_value('MODULE_PAYMENT_F REECHARGER_STATUS') and ($_SESSION['cart']->show_total()==0 and $_SESSION['shipping']['cost']== 0)) {
$this->selected_module = $module;
if (file_exists(DIR_FS_CATALOG . DIR_WS_MODULES . '/payment/' . 'freecharger.php')) {
$include_modules[] = array('class'=> 'freecharger', 'file' => 'freecharger.php');
}
} else {
...
Bei einem Testeinkauf habe ich mir die Variable $_SESSION['cart']->show_total() per echo ausgeben lassen. Es wurde der Einkaufswert ohne Abzug des Aktionscoupons angezeigt also ungleich 0.Angehängte Dateien
Kommentar
-
Der Check, ob die Zahlungsarten deaktiviert werden sollen, wenn das Aktionskuponguthaben größer als der Bestellwert ist, ist in der includes/classes/order_total.php ab Zeile 168. Die ist bei Dir ok, ich kann das nicht nachstellen.
Hast Du das Zahlungsmodul freecharger aktiv? Falls nicht ändert es was wenn Du das aktivierst?
Anscheinend wird bei Dir nicht erkannt, dass der Wert überhaupt Null ist, welche Erweiterungen hast Du installiert?
Kommentar
-
Ich habe einen Testkauf durchgeführt mit Warenwert 2 Euro, der durch einen Aktionsgutschein (2 Euro) auf 0 Euro reduziert wird, nachdem ich die classes/order_total.php so bearbeitet habe, dass die Variablenwerte von class, order-total, deduction innerhalb der while-Schleife (Zeile 186-188 ) und danach orderTotal und TotalDeductions ausgegeben werden.
Das Ergebnis sieht so aus:
class = ot_coupon
order-total =
deduction = 2
class = ot_group_pricing
order-total = 0
deduction = 0
class =ot_gv
order-total = 0
deduction = 0
class = ot_sc
order-total = 0
deduction = 0
--------------------
orderTotal = 2
TotalDeductions = 2
Hilft das irgendwie weiter?
Kommentar
-
Ich habe jetzt folgendes herausgefunden:
Mit dem Umzug auf einen neuen Server wurde auch das Modul Store Credit and Rewards Points von Numinix in den Shop integriert. Und dieses Modul scheint das Problem zu verursachen.
In includes/modules/pages/checkout_confirmation/header_php.php wurde folgender Code, wie in der Installationsanweisung zum Modul beschrieben, eingefügt:
Code:if (!isset($credit_covers)) $credit_covers = FALSE; // BEGIN REWARDS POINTS // if credit does not cover order total or isn't selected if ($_SESSION['credit_covers'] != true) { // check that a gift voucher isn't being used that is larger than the order if ($_SESSION['cot_gv'] < $order->info['total']) { $credit_covers = false; } } // END REWARDS POINTS if ($credit_covers) { unset($_SESSION['payment']); $_SESSION['payment'] = ''; }
Ich habe oben genannten Testkauf erneut ausgeführt mit Ausgabe dieser Variablen:
$_SESSION['cot_gv'] = 0
$order->info['total'] = 2
Das Modul soll bleiben. Hat jemand eine Idee, wie das Problem behoben werden kann?Zuletzt geändert von mkuhse; 31.07.2013, 08:39.
Kommentar
Kommentar