﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking
1099	2.0.1.0/Trunk: Fehler beim Bestellen eines kostenlosen Artikels	Ronald Parcinski	somebody	"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'));
}

}}}
"	Bug/Fehler	closed	hoch	modified-shop-2.0.2.0	Shop	2.0.1.0	fixed				
