Shop Projekt - Dokumentation
Shop LDM
Teil 06: Kaufabwicklung & Bestellungen
Dieses Modul bildet den Kernprozess von Käufen und Bestellungen im Shop ab.
Es umfasst Kaufabwicklung, Zahlungen, Rückerstattungen, Kommunikation zwischen Käufer und Verkäufer sowie Support-Tickets.
- Purchase: Zentrale Transaktionstabelle zwischen Käufer und Verkäufer.
- Refunded: Verwaltung von Rückerstattungen oder Nachzahlungen.
- Purchase_log: Protokoll aller Aktionen im Lebenszyklus einer Bestellung.
- Evaluation_buyer & Evaluation_seller: Gegenseitige Bewertungen.
- Conversation & Message: Kommunikationsstruktur für Chats.
- Ticket & Support: Supportsystem mit Eskalationsstufen.
Dieses Modul verbindet Transaktionslogik, Kommunikation und Support, um eine transparente und sichere Kaufabwicklung zu gewährleisten.
Purchase (Kauf/Bestellung)
Zweck: Enthält alle Käufe/Bestellungen zwischen Käufer und Verkäufer.
Felder:
- pur_ID (PK)
- u_ID_buy (FK → user) -- Käufer
- u_ID_sell (FK → user) -- Verkäufer
- pac_ID (FK → packaging) -- Verpackungseinheit
- sip_ID (FK → shipping_tariff) -- Versandart - aus Teil 07
- fes_ID (FK → fees) -- Gebührenmodell - aus Teil 07
- pur_adr_from TEXT -- Absenderadresse (String mit Separator)
- pur_adr_to TEXT -- Empfängeradresse (String mit Separator)
- pur_send_numb VARCHAR(100) -- Sendungsverfolgungsnummer
- pur_ref_numb VARCHAR(50) -- Verkäufer-Referenznummer
- pur_t_goods DECIMAL(10,2) -- Gesamtpreis der Ware
- pur_t_fees DECIMAL(10,2) -- Gebühren
- pur_t_shipping DECIMAL(10,2) -- Versandkosten
- pur_total DECIMAL(10,2) -- Gesamtsumme
- pur_status CHAR(1) -- O=open, P=paid, S=shipped, D=done, C=cancelled
Hinweis: Fremdschlüssel muss in art_manager aus 05 product gesetzt werden.
Hinweis: sip_ID und fes_ID werden im SQL-Ablauf in Teil 07 (Shipping) gesetzt.Refunded (Rückerstattungen/Nachzahlungen)
Felder:
- ref_ID (PK)
- u_ID (FK → user) -- Bestimmt Richtung der Buchung
- pur_ID (FK → purchase)
- ref_value DECIMAL(10,2) -- Betrag
- ref_reason TEXT -- Grund (optional)
- ref_timestamp DATETIME DEFAULT CURRENT_TIMESTAMPPurchase_log (Bestellprotokoll)
Zweck: Protokolliert alle Aktionen im Lebenszyklus einer Bestellung.
Felder:
- pog_ID (PK)
- pur_ID (FK → purchase)
- u_ID (FK → user) -- Wer hat es ausgelöst
- pog_action VARCHAR(100) -- Aktion (C=create, P=pay, S=ship, ...)
- pog_timestamp DATETIME DEFAULT CURRENT_TIMESTAMPEvaluation_buyer (Käuferbewertung)
Felder:
- evb_ID (PK)
- pur_ID (FK → purchase)
- evb_level_pack INT -- 1-10, Verpackung
- evb_level_goods INT -- 1-10, Ware
- evb_level INT -- 1-10, Gesamt
- evb_comment TEXT
- evb_timestamp DATETIME DEFAULT CURRENT_TIMESTAMPEvaluation_seller (Verkäuferbewertung)
Zweck: Enthält Bewertungen des Verkäufers zur Bestellung (damit sich Käufer nicht alles erlauben können).
Felder:
- evs_ID (PK)
- pur_ID (FK → purchase)
- evs_level INT -- 1-10, Gesamtbewertung
- evs_comment TEXT
- evs_timestamp DATETIME DEFAULT CURRENT_TIMESTAMPConversation
Zweck: Definiert Konversationen (Chats) im System.
Felder:
- con_ID (PK)
- con_type CHAR(1) -- Art: P=private, S=support, U=purchase
- con_timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
Hinweis: Kann aus 1, 2 oder mehreren Benutzern bestehen, definiert durch die angebundenen Nachrichten.Message
Zweck: Enthält die Nachrichten eines Benutzers innerhalb von Konversationen.
Felder:
- mes_ID (PK)
- u_ID (FK → user)
- con_ID (FK → conversation)
- mes_text TEXT
- mes_image VARCHAR(255) -- Bildanhang
- mes_timestamp DATETIME DEFAULT CURRENT_TIMESTAMPTicket (Support)
Felder:
- tic_ID (PK)
- u_ID_creator (FK → user) -- wer hat das Ticket erstellt
- con_ID (FK → conversation) -- Ticket-Chat
- tar_ID (FK → target) -- Bezug: Produkt, Kategorie, Bestellung
- tar_tb_ID INT -- ID eines Eintrags
- tic_level CHAR(1) -- A=auto, 1=support1, 2=support2, C=chief
- tic_priority CHAR(1) -- L=low, N=normal, H=high, U=urgent
- tic_status CHAR(1) -- O=open, P=pending, S=solved, C=closed
- tic_created DATETIME DEFAULT CURRENT_TIMESTAMP
- tic_closed DATETIME NULLSupport (Zuordnung)
Zweck: Enthält Support-Einträge für Tickets (Zuordnung von Support-Mitarbeitern).
Felder:
- sup_ID (PK)
- u_ID_support (FK → user) -- Support-Mitarbeiter
- tic_ID (FK → ticket)
- sup_start DATETIME -- Beginn der Bearbeitung
- sup_last_act DATETIME -- Letzte Aktivität
- sup_status CHAR(1) -- A=active, I=inactive, C=closed