Nachlaufkosten
Nachlaufkosten sind alle Kosten, die zusätzlich zum reinen Warenwert anfallen, bis der Artikel einlagerbar und verkaufsbereit ist: Fracht, Zoll und sonstige Nebenkosten (Verpackung, Handling, Hafenumschlag, Exportdokumente — in EUR oder Fremdwährung). Zusammen mit dem Einkaufspreis bilden sie den Einstandspreis pro Artikel — die Basis für Bestandsbewertung, Verkaufspreiskalkulation und Profitbutler-Auswertung. Wie der Einstandspreis daraus insgesamt entsteht, erklärt die Seite Einstandspreis & FIFO-Bewertung.
Die Besonderheit im Einkauf: Viele dieser Kosten treffen nach dem Wareneingang ein. Die Seefracht-Rechnung kommt oft erst Wochen, nachdem der Container im Lager steht; der Zollbescheid ebenfalls. Flowkom löst das mit retroaktiver Kostenverteilung: Du trägst die Kosten ein, sobald sie bekannt sind — alle bereits gebuchten Wareneingänge und Bestandsbewegungen werden automatisch neu bewertet.
Der Kosten-Tab: Kostenzeilen statt fester Felder
Öffne die Lieferantenbestellung (LB) und wechsle im Detail-Overlay in den Reiter Kosten. Dort erfasst du beliebig viele Kostenzeilen — jede Zeile mit:
| Feld | Bedeutung |
|---|---|
| Typ | Frachtkosten, Zollkosten oder Sonstige (bei „Sonstige” ist eine Beschreibung Pflicht, damit später klar ist, was das war) |
| Betrag + Währung | In EUR oder jeder Fremdwährung — Voreinstellung ist die Währung des Lieferanten |
| Verteilung | Pro Zeile wählbar: Nach Volumen / Nach Warenwert / Nach Menge |
So kannst du z. B. die Seefracht in USD, den Zoll in EUR und eine Handling-Pauschale in CNY erfassen — jede mit der Verteilmethode, die fachlich passt.
Die Karte „Wechselkurse”
Für jede verwendete Fremdwährung (und für die Währung des Lieferanten) pflegst du hier einen Kurs pro LB. Mit Kurs abrufen holt Flowkom den offiziellen EZB-Tageskurs (Quelle „api”); tippst du selbst einen Wert ein, steht die Quelle auf „manual” — z. B. für den Monatskurs deines Buchhalters.
Wichtig: Der Kurs der Lieferanten-Währung konvertiert nicht nur Kostenzeilen, sondern auch die Warenwerte der Positionen (Stückpreise) in EUR. Bei jeder Fremdwährungs-LB gehört „Kurs abrufen” deshalb zum Pflichtprogramm — ohne Kurs wird 1:1 gerechnet und der Einstandspreis ist zu hoch.
Kurs-Semantik: Der Kurs ist immer „1 EUR = X Fremdwährung”. Kurs 7,85 bei CNY heißt: 7.850 CNY ÷ 7,85 = 1.000 EUR. Ein höherer Kurs macht den EUR-Betrag also kleiner (der Euro ist stärker), nicht größer.
Die drei Verteilmethoden
Die Verteilung entscheidet, wie der Betrag einer Kostenzeile auf die LB-Positionen (und damit auf jeden Artikel) umgelegt wird — pro Zeile einzeln wählbar:
| Methode | Wie wird verteilt? | Wann sinnvoll? | Beispiel |
|---|---|---|---|
| Nach Volumen | Anteilig am Volumen der Position (Menge × Maße pro Stück). Sperrige Artikel tragen mehr. | Seefracht, Container, LKW — der Laderaum ist der Engpass | Das Sofa trägt mehr Frachtanteil als die Schraubenpackung |
| Nach Warenwert | Anteilig am Positionswert. Teure Artikel tragen mehr. | Zoll (rechtlich immer prozentual auf den Warenwert), Versicherung | Der 2.000-EUR-Motor trägt mehr Versicherung als das 50-EUR-Zubehör |
| Nach Menge | Gleich viel pro StĂĽck. | Handling, Etikettierung, PrĂĽf-Pauschalen | 200 EUR Handling auf 500 StĂĽck = 0,40 EUR pro StĂĽck |
Voreinstellung bei neuen LBs: Fracht → Volumen, Zoll → Warenwert, Sonstige → Warenwert.
Fehlen Artikelmaße? Dann kann die Volumen-Methode für diese Position nicht rechnen — Flowkom fällt für sie auf „Nach Menge” zurück und markiert das mit einem orangen Hinweis direkt an der Position („Keine Artikelmaße — Fracht nach Menge verteilt”). Maße am Artikel nachtragen, und die Verteilung korrigiert sich von selbst.
Retroaktive Korrektur — nachträgliche Kosten, automatisch verteilt
Du trägst neue oder korrigierte Kosten einfach im Kosten-Tab ein. Alles Weitere passiert automatisch:
Das gilt auch für bereits gebuchte Wareneingänge und verkaufte Einheiten: Die Bewertung wird angepasst, der Profitbutler zeigt den aktualisierten Wareneinsatz. Bereits ausgestellte Belege (Rechnungen, Gutschriften) bleiben unverändert — retroaktiv korrigiert wird die Bewertung, nicht die Buchhaltung.
Sobald die LB Wareneingänge hat, erinnert ein Hinweisbanner im Kosten-Tab daran, dass Änderungen rückwirkend wirken.
Festschreiben — wenn die LB fertig abgerechnet ist
Ist die letzte Rechnung zur LB erfasst, kannst du die Einstandskosten festschreiben (Schloss-Button im LB-Kopf, verfĂĽgbar nach abgeschlossenem Wareneingang):
- Die Einstandspreise sind ab dann eingefroren — keine automatische Neuberechnung mehr, auch nicht durch spätere Maß- oder Stammdaten-Änderungen.
- Der Kosten-Tab wird schreibgeschĂĽtzt.
- In Übersicht und Kanban zeigt ein grünes „Festgeschrieben”-Badge den Zustand.
- Entsperren kann nur ein Admin (mit Bestätigung).
Empfehlung: Festschreiben, sobald alles verbucht ist — so bleiben historische Margen stabil.
Typischer Ablauf: Container-Import
Häufige Fragen
Warum steht bei mir 1.000 EUR, obwohl ich 7.850 CNY bei Kurs 7,85 eingegeben habe?
Weil Flowkom durch den Kurs teilt: 7.850 ÷ 7,85 = 1.000 EUR. Kurs = „1 EUR = 7,85 CNY”.
Ich habe die Verteilung einer Kostenzeile umgestellt — werden alte Wareneingänge neu bewertet?
Ja, sofort und automatisch — solange die LB nicht festgeschrieben ist.
Der Lieferant ĂĽbernimmt die Fracht. Muss ich eine 0-Zeile anlegen?
Nein. Keine Zeile = keine Kosten. Der Einstandspreis ist dann gleich dem (umgerechneten) Einkaufspreis.
Zwei LBs teilten sich einen Container — wie verteile ich die Seefracht?
Flowkom verteilt immer pro LB. Teile die Frachtrechnung im passenden Verhältnis (z. B. nach Volumen der beiden Lieferungen) und lege in jeder LB eine Frachtzeile mit ihrem Anteil an.
Warum sieht der Einstand einer USD-Bestellung zu hoch aus?
Fast immer fehlt der Kurs für die Lieferanten-Währung in der Wechselkurse-Karte. Kurs abrufen → automatische Neuberechnung (sofern nicht festgeschrieben).
Ändert sich eine bereits erstellte Rechnung, wenn ich Kosten nachträglich korrigiere?
Nein. Belege sind buchhalterisch finalisiert. Die retroaktive Korrektur betrifft Bestandsbewertung und Profitbutler; kĂĽnftige Belege verwenden den neuen Einstandspreis.
Technische Details
Beteiligte Komponenten
| Schicht | Komponente | Rolle |
|---|---|---|
| UI | costs-tab.tsx (Detail-Overlay) | Kostenzeilen, Wechselkurse, Validierung |
| UI | /api/currency/rate | Live-Kursabfrage (EZB/Frankfurter) |
| DB-Tabellen | purchase_order_costs + purchase_order_fx_rates | Kostenzeilen und Kurse pro LB |
| DB-Funktion | calculate_landed_costs() | Verteilt die Kosten auf alle Positionen; konvertiert Warenwerte über den Kurs der Lieferanten-Währung (fx_rates, Fallback Legacy-Feld); wird bei jeder Änderung per Trigger angestoßen, überspringt festgeschriebene LBs |
| DB-Tabelle | goods_receipt_items | Bekommt unit_cost_eur + landed_cost_eur pro Position |
| DB-Tabelle | stock_movements | FIFO-Schichten werden mit dem neuen Einstandswert aktualisiert |
Referenzen
- PROJ-301 — flexible Kostenzeilen + Wechselkurse pro LB (löste die früheren festen Kostenfelder ab)
- PROJ-271 — Verteilmethode pro Kostenart (Volumen/Warenwert/Menge)
- PROJ-362 — Mengen-Fallback bei fehlenden Maßen + Festschreiben
- PROJ-512 — Warenwert-Konvertierung über den fx_rates-Kurs der Lieferanten-Währung
- Fundament: PROJ-73 (Landed Cost), PROJ-74/190 (FIFO-Bewertung)