Zum Inhalt

Versandkosten-Einstellungen

Jede Versandmethode (OrderAndItemCharges) kann mehrere Preis-Komponenten kombinieren. Alle Beträge sind Brutto (inkl. MwSt.).

Schwellwerte

Feld Typ Bedeutung
minimum_order_value Decimal Warenkorb muss ≥ diesen Wert haben. Sonst ist die Versandmethode nicht verfügbar.
free_shipping_threshold Decimal Warenkorb ≥ diesen Wert → alle Zuschläge entfallen. None = deaktiviert.
small_order_threshold Decimal Schwellwert für den warenwertabhängigen Zuschlag. Vergleicht mit Warenwert ohne Pfand. None = deaktiviert.

Preis-Komponenten

Jede Komponente hat drei Felder: Betrag, Anzeigename (Label im Checkout) und Artikelnummer (für WaWi-Export). Leere Anzeigenamen/Referenzen fallen auf Defaults zurück.

Komponente Berechnung Aktiv wenn
price_per_order Pauschal pro Bestellung Betrag > 0
price_per_item × Anzahl Artikel Betrag > 0
price_per_box × Anzahl Kisten (product.has_box) Betrag > 0
price_per_floor × Etagendifferenz (|Stockwerk|) Betrag > 0 und maximum_floor_difference > 0
small_order_surcharge Pauschal bei Unterschreitung der Schwelle Betrag > 0 und small_order_threshold gesetzt

Zusätzlich: ShippedFloor-Records für etagenspezifische Sonderpreise (überschreiben price_per_floor für das jeweilige Stockwerk).

Reihenfolge im Checkout

1. is_free_shipping()
   → Warenkorb (ohne Pfand) ≥ free_shipping_threshold?
     JA → KEINE Zuschläge

2. small_order_surcharge  (nur wenn nicht floor_only)
   → Warenkorb (ohne Pfand) < small_order_threshold?
     JA → Zuschlag hinzufügen

3. price_per_floor
   → |Stockwerk| × Preis pro Etage

4. price_per_order  (nur wenn nicht floor_only)

5. price_per_item  (nur wenn nicht floor_only)

6. price_per_box  (nur wenn nicht floor_only)

7. ShippedFloor (etagenspezifisch)
   → Überschreibt price_per_floor für das konkrete Stockwerk

Technische Details

  • floor_only=True wird intern von der Stockwerk-Auswahl im Checkout-Formular verwendet. Nur Etagen-Zuschläge erscheinen dann.
  • Berechnungsbasis für Schwellwerte und Zuschlag ist immer Basket.after_deposit (Brutto-Warenwert abzüglich aller Pfand-Positionen).
  • Die Methode calculate() der Versandmethode liefert immer 0,00 €. Alle Kosten werden als separate Surcharge-Zeilen über get_extra_charges() abgerechnet — das ermöglicht die detaillierte Aufschlüsselung.
  • Ein small_order_surcharge = 0,00 oder small_order_threshold = None deaktiviert den warenwertabhängigen Zuschlag vollständig.

Konfigurationsbeispiele

B2C-Getränkelieferung mit Stockwerkszuschlag

Feld Wert
minimum_order_value 30,00
small_order_threshold 75,00
small_order_surcharge 9,99
price_per_floor 2,00
maximum_floor_difference 3

Warenkorb 45 €, EG: 9,99 € Zuschlag
Warenkorb 80 €, 2. OG: 4,00 € Stockwerk, kein Zuschlag
Warenkorb 25 €: Versandmethode nicht verfügbar

Gastro-Abholung (keine Zuschläge)

Feld Wert
minimum_order_value 0,00
deprecated_method_type Pickup
Alle Zuschläge 0,00