Modify

Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#1099 closed Bug/Fehler (fixed)

2.0.1.0/Trunk: Fehler beim Bestellen eines kostenlosen Artikels

Reported by: Ronald Parcinski Owned by: somebody
Priority: hoch Milestone: modified-shop-2.0.2.0
Component: Shop Version: 2.0.1.0
Keywords: Cc:
Blocked By: Blocking:

Description

Versuchsanordnung:

Testartikel 43 auf 0.00 EUR stellen und danach in den Warenkorb legen

Die Versandkosten Module lassen wie sie sind (es müssen mehrere Versandmodule aktiv und Zahlarten aktiv sein)

Zur Kasse gehen und bei den Versandkosten Deutsche Post auswählen.

Bei den Zahlungsarten Vorkasse/Banküberweisung auswählen.

Wenn man jetzt weiter zu Schritt 3 anklickt gibt es die Fehlermeldung

"Bitte wählen Sie eine Zahlungsweise für Ihre Bestellung."

Wenn man jetzt wieder Vorkasse/Banküberweisung auswählt funktioniert es.

Ursache ist in der shipping_estimate.php diese Zeile:

$order_total_modules->pre_confirmation_check();

Dadurch wird bei einem Warenkorbwert von 0 EUR

$_SESSION['credit_covers']

auf true gesetzt.

(Versandkosten sind hier noch nicht vorhanden)

Das wiederrum bewirkt in der checkout_confirmation.php den redirect mit Fehlermeldung auf die ckeckout_payment.php

Codezeilen in checkout_confirmation.php

if (isset($_SESSION['credit_covers']) 
    || (isset($_SESSION['cot_gv']) && !isset($_SESSION['payment']))
    || (isset($_SESSION['cot_gv']) && isset($_POST['credit_order_total']) && $_SESSION['cot_gv'] > $_POST['credit_order_total'])
    ) 
{
  $_SESSION['payment'] = 'no_payment'; // GV Code Start/End ICW added for CREDIT CLASS
}

Durch

$_SESSION['credit_covers'])

wird

$_SESSION['payment']

auf 'no_payment' gesetzt.

Das hat zur Folge das hier der erste Bedingungsblock wahr wird und den Redirect auslöst

Wir haben mehrere Paymentmodule,

${$_SESSION['payment']}

ist kein Objekt, weil nur 'no_payment'

$_SESSION['credit_covers']

ist noch definiert (siehe shipping_estimate.php)

// GV Code line changed
if ((is_array($payment_modules->modules) 
     && (sizeof($payment_modules->modules) > 1) 
     && (!is_object(${$_SESSION['payment']})) 
     && (!isset($_SESSION['credit_covers']))) 
    || 
    (is_object(${$_SESSION['payment']}) 
     && (${$_SESSION['payment']}->enabled == false))
    ||
    (isset($_SESSION['cot_gv'])
     && $_SESSION['cot_gv'] > 0
     && $xtPrice->xtcFormat($order->info['total'], false) > $_SESSION['cot_gv']
     && $_SESSION['payment'] == 'no_payment')
  ) {
  xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(ERROR_NO_PAYMENT_MODULE_SELECTED), 'SSL'));
}

Attachments (0)

Change History (2)

comment:1 by Gerhard Waldemair, 9 years ago

Resolution: fixed
Status: newclosed

In 10504:

fix #1099

comment:2 by Torsten Riemer, 9 years ago

Milestone: modified-shop-2.0.1.0modified-shop-2.0.1.1

Modify Ticket

Action
as closed The owner will remain somebody.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.