🛒
Verkauf & Kundenaufträge
sales
sales_billing
🛡️ RLS Protected
Handelsorientierte Verkaufsaufträge: Angebot übernehmen, bestätigen, liefern, fakturieren - ohne Außendienst-/Werkstatt-Kopplung.
Fachliche Bestimmung: Verkaufsmodul für Handels- und Handelsnahe Mandanten. Technisch auf der gemeinsamen Auftragsentität implementiert (order_type='sale'), bewusst entkoppelt vom Außendienst-Kontext: keine Einsätze, keine Monteurszuordnung, kein Ausführungsort. Stattdessen die Odoo-Sales-Pipeline Entwurf -> Bestätigt -> In Lieferung -> Geliefert -> Fakturiert mit Kundenreferenz, Zahlungsbedingungen, Skonto, Liefertermin und Abrechnungsregel (nach Bestellung / nach Lieferung). Mutationen laufen über journaled Engine-Facades (sales_order_confirm, sales_order_delivery, sales_order_from_quote, sales_order_cancel, sales_order_invoice) mit Kontext-Bundle-Evidence und Idempotenz über WorkflowRun.
⚡ Workflows & Lebenszyklen (1)
🗄️ Datenmodelle & Felder (2)
🔌 Einstiegspunkte (UI & APIs) (24)
🛡️ Regulatorik & Compliance
⚡ Workflows & Lebenszyklen
Verkaufs-Pipeline (Quote-to-Cash)
sales_order_pipeline
Vom Angebot oder der Direktanlage über Bestätigung und Lieferung zur Rechnung.
stateDiagram-v2
[*] --> DRAFT: Anlegen / aus Angebot
DRAFT --> CONFIRMED: Bestätigen
CONFIRMED --> IN_DELIVERY: Lieferung starten
IN_DELIVERY --> DELIVERED: Als geliefert markieren
DELIVERED --> INVOICED: Rechnung erstellen
DRAFT --> CANCELLED: Stornieren
1. DRAFT
Entwurf
Auftrag wird angelegt oder aus einem Angebot übernommen (idempotent).
Aktionen: Positionen pflegen, Zahlungsbedingungen setzen
2. CONFIRMED
Bestätigt
Auftrag bestätigt (scheduled), Liefertermin verbindlich.
Aktionen: Lieferung starten
3. IN_DELIVERY
In Lieferung
Ware wird kommissioniert/ausgeliefert (Lager-Integration).
Aktionen: Als geliefert markieren
4. DELIVERED
Geliefert
Liefermengen gebucht; bei Abrechnungsregel 'delivered' Fakturierungsbasis.
Aktionen: Rechnung erstellen
5. INVOICED
Fakturiert
Rechnungsentwurf aus Auftrag (regulär, Anzahlung, Sammelrechnung).
🗄️ Datenmodelle & Felder
🔌 Einstiegspunkte (UI & APIs)
| Art | Methode | Endpunkt / Pfad | Titel & Zweck | Berechtigung |
|---|---|---|---|---|
| ⚡ REST API | DELETE | /api/v1/sales/orders/{order_id}/items/{item_id} |
delete_item
Semantic binding: not_evaluated; mutation=True
|
sales
|
| ⚡ REST API | GET | /api/v1/sales/orders |
list_sales_orders
Semantic binding: not_evaluated; mutation=False
|
sales
|
| ⚡ REST API | GET | /api/v1/sales/orders/{order_id} |
get_sales_order
Semantic binding: not_evaluated; mutation=False
|
sales
|
| ⚡ REST API | GET | /api/v1/sales/summary |
sales_summary
Semantic binding: not_evaluated; mutation=False
|
sales
|
| ⚡ REST API | GET | /portal/{slug}/bestellung |
order_form
Semantic binding: not_evaluated; mutation=False
|
sales
|
| ⚡ REST API | GET | /verkauf |
sales_page
Semantic binding: not_evaluated; mutation=False
|
sales
|
| ⚡ REST API | GET | /verkauf/{order_id} |
sales_order_page
Semantic binding: not_evaluated; mutation=False
|
sales
|
| ⚡ REST API | PATCH | /api/v1/sales/orders/{order_id} |
update_sales_order
Semantic binding: not_evaluated; mutation=True
|
sales
|
| ⚡ REST API | PATCH | /api/v1/sales/orders/{order_id}/items/{item_id} |
update_item
Semantic binding: not_evaluated; mutation=True
|
sales
|
| ⚡ REST API | POST | /api/v1/sales/orders |
create_sales_order
Semantic binding: not_evaluated; mutation=True
|
sales
|
| ⚡ REST API | POST | /api/v1/sales/orders/from-quote/{quote_id} |
create_from_quote
Semantic binding: not_evaluated; mutation=True
|
sales
|
| ⚡ REST API | POST | /api/v1/sales/orders/{order_id}/cancel |
cancel_sales_order
Semantic binding: not_evaluated; mutation=True
|
sales
|
| ⚡ REST API | POST | /api/v1/sales/orders/{order_id}/confirm |
confirm_sales_order
Semantic binding: not_evaluated; mutation=True
|
sales
|
| ⚡ REST API | POST | /api/v1/sales/orders/{order_id}/invoice |
invoice_sales_order
Semantic binding: not_evaluated; mutation=True
|
sales
|
| ⚡ REST API | POST | /api/v1/sales/orders/{order_id}/items |
add_item
Semantic binding: not_evaluated; mutation=True
|
sales
|
| ⚡ REST API | POST | /api/v1/sales/orders/{order_id}/mark-delivered |
mark_delivered
Semantic binding: not_evaluated; mutation=True
|
sales
|
| ⚡ REST API | POST | /api/v1/sales/orders/{order_id}/start-delivery |
start_delivery
Semantic binding: not_evaluated; mutation=True
|
sales
|
| ⚡ REST API | POST | /portal/{slug}/bestellung |
order_submit
Semantic binding: not_evaluated; mutation=True
|
sales
|
| 🖥️ WEB-UI | GET | /quotes?status=dropship |
Strecken-Filter Angebote
Filtert Angebote mit Streckengeschäft-Positionen
|
quotes:read
|
| 🖥️ WEB-UI | GET | /purchasing#dropship |
Streckengeschäft Einkauf
Dedizierter Einkaufs-Reiter mit Kennzahlen und Tracking
|
purchasing:read
|
| ⚡ REST API | GET | /api/v1/dropshipping |
Streckenpositionen API
Liefert Streckengeschäft-Positionen mit Lieferanten- und Belegdaten
|
quotes:read
|
| ⚡ REST API | POST | /api/v1/dropshipping/{id}/assign-supplier |
Lieferant zuweisen
Weist Lieferant zu und erzeugt Einkaufsbestellung
|
purchasing:write
|
| ⚡ REST API | POST | /api/v1/dropshipping/{id}/tracking |
Tracking hinterlegen
Trägt Trackingnummer ein und setzt Status auf in_transit
|
purchasing:write
|
| ⚡ REST API | POST | /api/v1/dropshipping/{id}/delivered |
Zustellung bestätigen
Setzt Status auf delivered und erteilt Rechnungsfreigabe
|
purchasing:write
|
🛡️ Regulatorik & Compliance
Standard GoBD- und DSGVO-Regelwerk.
Verknüpfte Module: