Hallo modified eCommerce Shopsoftware-Gemeinde.
Für einen aktuellen Shop stand ich auch vor der Problematik mit den Download-Artikeln wie ihr sie beschrieben habt. In dem Shop werden physikalische wie auch virtuelle Produkte verkauft.
Nach ein bisschen durchforsten des Codes konnte ich das Problem lokalisieren und auch beheben(erste Tests waren erfolgreich, ausführlich wird noch gestestet. Deshalb auch der Post
)
Ich habe festgestellt, dass der Array $this->contents in der Shopping_Cart-Klasse nicht korrekt aufgebaut war wenn ich Artikel(physikalisch, virtuell) in einen leeren Warenkorb lege. Beispielsweise hatte ich einen Artikel im Warenkorb aber der Array bestand aus zwei Elementen.
Dadurch konnte der Content-Typ $this->content_type in der Shopping_Cart-Klasse nicht richtig bestimmt werden. Hier wurde mir "mixed" zurückgeliefert obwohl es "virtual" sein müsste.
Da der Array korrekt war wenn ich Produkte bereits im Warenkorb liegen hatte und mich ab- und wieder neuanmelde, habe ich die Order-Klasse ("/includes/classes/order.php") um folgende Zeile erweitert:
Datei "/includes/classes/order.php" Zeile 333:
function cart() {
global $currencies,$xtPrice;
// Diese Zeile ist neu:
$_SESSION['cart']->restore_contents();
$this->content_type = $_SESSION['cart']->get_content_type();
Durch den Aufruf der Funktion restore_contents() wird der Array der Warenkorb-Produkte wieder sauber aufgebaut und die Weiterleitung auf die Payment-Seite bei Download-Artikel funktioniert, wie ich nach meinen Tests feststellen konnte, problemlos.
Wäre super wenn jemand von euch das ebenfalls ausprobieren könnte. Im Falle eines Nicht-funktionierens bzw. auftretender Probleme die dadurch entstehen könnten wäre ich über Feedback sehr dankbar.
Beste Grüße
Marco