rechtstexte für onlineshop
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: Nach Abschluss des Bestellprozesses aus der Session Daten ziehen?

    PassionIT

    • Neu im Forum
    • Beiträge: 8
    modified eCommerce Shopsoftware v1.05.

    Hallo Zusammen,

    ich möchte gerne, nachdem eine Bestellung rechtsgültig angebahnt wurde /*Unwichtig^^ (--> abgeschlossen ja erst nach Lieferung und Ablauf der Widerrufsfrist) (--> und natürlich der automatischen Versendung der Bestätigungsmail)*/ aus der Bestellsession den Gesamtbetrag, die Bestellnummer und das Datum extrahieren und diese im Hintergrund der Dankesseite weiterverarbeiten.

    Könntet ihr mir bitte sagen wo ich mit dem weiterverarbeitenden Skript am geschicktesten ansetze?
    Durch drücken des Bestellbuttons im letzten Schritt wird in der checkout_confirmation die Verarbeitung der Bestellung abgeschlossen, richtig? Wäre da ein guter Ansatz das Script einzubauen?

    Und wie komm ich am geschicktesten an die genannten Daten ran? In der DB an die Gesamtsumme ran zu kommen, ist ja etwas umständlich. Die liegt ja in der "order_total" Tabelle. Nun müsste man die "orders_total_id" default=3 setzen und nach jedem Durchgang des Skripts um "3" inkrementieren. <-- nicht schön!
    Das nicht genug, jetzt müsst ich noch in der Spalte Text der jeweiligen ID das html Tag beim auslesen ignoriert bekommen. Und zu guter letzt, möchte ich aus Sicherheits-/Performance Gründen auf unnötige Datenbankzugriffe verzichten.

    Für jegliche konstruktive Hilfe bin ich dankbar.

    Gruß



    Linkback: https://www.modified-shop.org/forum/index.php?topic=12577.0

    hendrik

    • Experte
    • Beiträge: 2.038
    Einfacher wäre es du machst deine Verarbeitung in der "checkout_process.php". Dort wird die Bestellung datenbanktechnisch erzeugt. Und dort stehen noch alle Daten leicht zugänglich in Speicher und Sessiondaten. Am Ende von "checkout_confirmation" wird gelöscht und die Daten müssen über 'ne DB Abfrage aus der DB geholt werden.

    "checkout_process.php", Zeile 355 ungefähr, hinter "include send_order" beginnt die Löscherei. Davor kannst du noch deine Verarbeitungsprozesse einfügen.
    Den Bestellwert und ggf. UST findest du in Arrayvariable "$order_totals". Datum und Zeit werden von der DB erzeugt. Kannst du dir selbst holen mit php-funktion "date()".

    Gruß
    Hen

    PassionIT

    • Neu im Forum
    • Beiträge: 8
    Vielen Dank für deine schnelle Antwort.

    [...]
    Den Bestellwert und ggf. UST findest du in Arrayvariable "$order_totals". Datum und Zeit werden von der DB erzeugt. Kannst du dir selbst holen mit php-funktion "date()".
    [...]

    Das mit "date();" is klar. Da fehlt jetzt nur noch die variable in der sich die Bestellnummer befindet. Doch ich ahne schon böses, die wird erst nach der Bestellabwicklung beim eintragen in die DB generiert? Gegenteiliges höre ich gern.^^

    Eine weitere Überlegung, im Use-Case Szenario dass ein Kunde im letzten Schritt (-->sprich mein Skript ist schon ausgeführt) die Bestellung abbricht. Die Daten werden nämlich später noch an einen anderen Server geschickt. So müsste ich das Skript, dass vorher den Datensatz in der "checkout_process.php" erzeugt hat, an ein weiteres skript schicken das checkt ob die Bestellung überhaupt abgeschlossen wurde... oder so ähnlich, und anschließend erst versendet.

    Eine Idee, dieses clever zu umgehen? Also Bestellnummer bekommen und erst nach Bestellabschluss bspw. mit cURL senden.

    hendrik

    • Experte
    • Beiträge: 2.038
    Nee, die "checkout_process" wird abgearbeitet wenn der Kunde "Bestellen" geklickt hat. Also hinter dem "point of no return".

    Die Bestellnummer ("orders_id") findest du in Variable "$insert_id".

    Gruß
    Hen

    PassionIT

    • Neu im Forum
    • Beiträge: 8
    *freu* Vielen Dank! Vorüberlegung abgeschlossen.

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.306
    • Geschlecht:
    du kannst das auch in der "checkout_success.php" machen:

    Code: PHP  [Auswählen]
    $orders_query = xtc_db_query("select orders_id from ".TABLE_ORDERS." where customers_id = '".$_SESSION['customer_id']."' order by orders_id desc limit 1");
    $orders = xtc_db_fetch_array($orders_query);

    require (DIR_WS_CLASSES . 'order.php');
    $order = new order($orders['orders_id']);

    damit hast du nun alle Daten aus der Bestellung vorhanden.

    Kundenname:

    Code: PHP  [Auswählen]
    $order->customer['name']

    Bestelldatum:

    Code: PHP  [Auswählen]
    $order->info['date_purchased']

    Gruss Gerhard
    2 Antworten
    1674 Aufrufe
    16. März 2018, 18:48:27 von Tomcraft
    2 Antworten
    2199 Aufrufe
    05. August 2011, 20:39:33 von Carry
    6 Antworten
    5031 Aufrufe
    16. August 2011, 15:39:42 von Golfer
               
    anything