Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Speichern des Warenkorbs und Weiterleitung zur Kasse

    prefy

    • Neu im Forum
    • Beiträge: 32
    • Geschlecht:
    Hallo liebe Community,

    ich sitze gerade an einem kleinen Problem, dass sich einfach nicht auflösen will.

    Folgendes Szenario:

    Kunde XY hat einen Account und legt Produkte für 2000 EUR in den Warenkorb. Er möchte allerdings nochmal eine Nacht darüber schlafen und meldet sich wieder ab. Den Warenkorb löscht er nicht, weil die Produkte aufwendig konfiguriert wurden und er sich diese Mühe beim nächsten Mal sparen will. Die Funktion
    Code: PHP  [Auswählen]
    $_SESSION['cart']->restore_contents();
    macht´s möglich.

    Aus beruflichen Gründen kommt der Kunde allerdings einige Zeit nicht mehr in den Shop. Mittlerweile hat er die Produkte, die er in den Warenkorb gelegt hatte vergessen, da er diese anderweitig gekauft hat.

    Nun sucht der Kunde auf die schnelle ein bestimmtes Produkt und hat wenig Zeit. Er loggt sich also nicht erst ein, sondern stöbert als Gast im Shop. Nachdem er das Produkt für 19,95 EUR gefunden hat, legt er es in den Warenkorb. Er klickt auf den Button (KASSE) und wird logischerweise zur login.php weitergeleitet.

    Er gibt nun seine Zugangsdaten ein und wird anschließend direkt auf die checkout_shipping.php weitergeleitet, da er ja im Warenkorb bereits auf den Button (KASSE) geklickt hatte.

    Er wählt nun Versandart und Zahlungsart und kommt zur checkout_confirmation.php bevor er die Bestellung verbindlich abschickt.

    Nun die große Überraschung!!!! Er soll plötzlich nicht nur den Artikel für 19,95 EUR bestellen, sondern auch die Artikel aus dem offenen Warenkorb für 2000EUR.

    Mein Problem:
    Wenn Kunden einen offenen Warenkorb haben und später als Gast bestellen dürfen sie nicht direkt zur checkout_shipping.php weitergeleitet werden, nachdem sie sich eingeloggt haben.

    Sprich:
    Weiterleitung von shopping_cart.php zu login.php zu checkout_shipping.php nur wenn keine offenen Warenkörbe existieren.
    Weiterleitung von shopping_cart.php zu login.php zu shopping_cart.php, wenn offene Warenkörbe existieren, damit der Kunde sich dessen bewusst werden kann.

    Ich tüftel nun schon seit Tagen, finde aber keinen Ansatz.

    Vielleicht kann ja einer von Euch helfen.

    Gruß
    Prefy

    Linkback: https://www.modified-shop.org/forum/index.php?topic=27413.0
    rechtstexte für onlineshop

    mooncrawler

    • Mitglied
    • Beiträge: 104
    Re: Speichern des Warenkorbs und Weiterleitung zur Kasse
    Antwort #1 am: 23. August 2013, 12:54:31
    Servus,

    schau dir mal die "/includes/classes/shoping_cart.php" an und zwar alles innerhalb dieser Funktion
    Code: PHP  [Auswählen]
    function restore_contents()

    1. Prüfe ob Artikel in der Session vorhanden sind, if(count($this->contents) > 0) { ... }
    2. Wenn ja => setze Flag und leite nach der $this->cleanup(); weiter auf die shopping_cart.php
    3. Wenn nein => fertig :)

    Der Kunde wird nach dem login erst zum Warenkorb geleitet, wenn er noch Artikel in der "Session" hatte.

    Grüße David

    prefy

    • Neu im Forum
    • Beiträge: 32
    • Geschlecht:
    Re: Speichern des Warenkorbs und Weiterleitung zur Kasse
    Antwort #2 am: 23. August 2013, 13:38:12
    Hallo mooncrawler,

    danke für die schnelle Antwort.

    Ich habe folgendes in die /includes/classes/shopping_cart.php eingebaut:
    Nach
    Code: PHP  [Auswählen]
    function restore_contents() {
        if (!isset ($_SESSION['customer_id'])) {
          return false;
        }
     
    Code: PHP  [Auswählen]
    // PRÜFE OB OFFENE WARENKÖRBE VORHANDEN SIND
        if (count($this->contents) > 0) {
          $opencart = 'true';
        } else {
          $opencart = 'false';
        }
     
    Weiter unten habe ich dann nach
    Code: PHP  [Auswählen]
    $this->cleanup();
     
    folgendes eingebaut:
    Code: PHP  [Auswählen]
    if ($opencart=='true') {
          xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART, '', 'SSL'));
        }
     
    Ergebnis:
    Ich werde auf jeden Fall nicht mehr zur checkout_shipping.php geleitet. Leider auch nicht, wenn der Warenkorb leer war!

    Wo liegt der Fehler?

    Gruß
    Prefy

    Marcus Kreusch

    • Fördermitglied
    • Beiträge: 312
    • Geschlecht:
    Re: Speichern des Warenkorbs und Weiterleitung zur Kasse
    Antwort #3 am: 23. August 2013, 13:53:26
    Hallo prefy,

    Der Fehler liegt hier:
    Code: PHP  [Auswählen]
    // PRÜFE OB OFFENE WARENKÖRBE VORHANDEN SIND
        if (count($this->contents) > 0) {
          $opencart = 'true';
        } else {
          $opencart = 'false';
        }

    $this->contents ist an der Stelle nicht der offene Warenkorb sondern der aktuelle des Gastes...
    Du müsstest also den Inhalt von $this->contents an dieser Stelle mit dem Inhalt von $this->contents nach $this->cleanup() vergleichen...
    Wenn es da einen Unterschied gibt > shopping_cart.php

    Viele Grüße
    Marcus

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Speichern des Warenkorbs und Weiterleitung zur Kasse
    Antwort #4 am: 28. August 2013, 17:34:57
    Ich habe das in Ticket #87 festgehalten.

    Grüße

    Torsten
    8 Antworten
    1805 Aufrufe
    28. Februar 2020, 13:00:51 von Donco
    2 Antworten
    1994 Aufrufe
    26. April 2010, 10:43:01 von sturmi
    12 Antworten
    5353 Aufrufe
    02. Mai 2010, 09:04:42 von ITW_1971