====== Produkt kaufen ======
^ Aufgabe ^ Aktion ^ Ziel ^ Text ^ Extra ^
| Erstellen | add | db:ms_orders | | |
| | add | db:ms_order_products | Nach Daten aus Cart (ms_cart_products) | |
| | add | db:ms_order_adjustments | Zumindest MwSt, evtl. Rabatte | |
| | send | ex:paypal | Produkt bezahlen | Rückmeldung an url=paypal/backend :?:1 |
| | :?:2 task | | Produkt freigeben :!:3 | |
| | :?:2 task | | Provisionen buchen :!:3 | |
| :!:4 Abgebrochen | task | | Aufräumen :?:5 | |
:?:1: FIXME was wenn keine Rückmeldung von Paypal \\
:?:2: Zahlung erfolgt \\
:!:3: siehe Seite 'Bezahlt' \\
:!:4: auch andere Arten von 'Zahlung nicht erfolgt' \\
:?:5: FIXME sind Aufräumarbeiten nötig (ms_orders, ms_order_products, ms_order_adjustments), gibt es das, funktioniert es? \\
----
(ms_core.module) **//function ms_core_checkout_form_submit()//**
* Order erstellen aus Cart: ms_core_cart_to_order()
* New Order: ms_core_order_new(), DB - ergibt oid
* Produkte aus Cart: ms_core_add_order_product(), (-recurring)
* Korrekturen: ms_core_add_order_adjustment() - mind. MwSt
* Zusatzdaten: ms_core_add_data() - etwa register_form \\ User wird ggf. nach Bezahlung angelegt
* Chart leeren
* $_SESSION['ms_oid'] = $order->oid;
* Order ist gespeichert: {ms_orders}
* Umleitung zu Paypal-Aufruf; ms/checkout/paypal_wps, \\ function ms_paypal_wps_initiate_payment()
* Zahlungsbetrag: vermindert um Korrekturen (adjustments)
* Seitenaufbau mit Weiterleitung zu Paypal: ms_paypal_wps_get_button() \\ //in ms_paypal_wps.module//
* Daten für Paypal aufbereiten, (-recurring) \\ Order, return, cancel_return, notify_url, ...
* Seitenaufbau mit Weiterleitung nach 5 Sekunden
* Aufruf der Paypal-Seite aus dem Formular heraus mit allen Daten in hidden Feldern \\ //siehe class ms_paypal_wps_class, function submit//