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.

🗺️ Stufe 1 | 📚 Aktuell | 📟 2026 06 15 | 📍 Datenbank - Kaufabwicklung & Bestellungen

  • 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_TIMESTAMP

Purchase_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_TIMESTAMP

Evaluation_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_TIMESTAMP

Evaluation_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_TIMESTAMP

Conversation

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_TIMESTAMP

Ticket (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 NULL

Support (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