====== 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//