Die Versandkosten Matrix legt den Nettopreis fest, den ein Mandant je Versandlabel zahlt – abhängig vom Zielland, vom Versanddienstleister, vom Paket-Typ und vom Gewicht. Auf der Mandanten-Abrechnung wird jedes Versandlabel des Mandanten im Abrechnungszeitraum einer Zeile der Matrix zugeordnet.

![Screenshot: Liste „Versandkosten Matrix“ mit Mandanten-Filter, den Buttons Export, Import und „Versandkosten anlegen“ und den Spalten Mandant, Land, Typ, Carrier, Gewicht von, Gewicht bis, Preis Netto, Aktiv, ShipCloud Konto](/billing/images/shipping-cost-matrix-overview.png)

## Bevor du startest
- Dein Benutzer braucht die Rechte für die Versandkosten in den Kosteneinstellungen – frag deinen Administrator.
- Die Versandlabels werden über ShipCloud erstellt und gehören zu einem Auftrag des Mandanten, siehe [Versandlabels](/outbound/shipping-labels.md) und [ShipCloud-Konten](/company/shipcloud-accounts.md).
- Empfohlen: eine [Leistungs-Kategorie](/billing/service-categories.md) für den Versand, am besten mit „Versand“ im Namen.

## Schritt für Schritt

### Eintrag von Hand anlegen
1. Öffne **WMS › Einstellungen › Kosteneinstellungen › Versandkosten Matrix**.
2. Klicke auf **Versandkosten anlegen**.
3. Gib einen **Namen** und bei Bedarf eine **Detailbeschreibung** ein, wähle den **Mandanten** oder **Alle Mandanten**, das **ShipCloud Konto** und die **Abrechnungs-Kategorie**. Setze den Haken bei **Aktiv**.
4. Gib **Gewicht von (kg)** und **Gewicht bis (kg)** ein.
5. Wähle die **Länder**. Verwende die Buttons **Alle auswählen**, **EU** oder **Nicht EU**, oder wähle **Alle Länder / Wildcard** (`*`). Gib bei Bedarf eine **Postleitzahl (optional)** ein.

![Screenshot: Versandkosten-Formular mit Name, Mandant, ShipCloud Konto, Abrechnungs-Kategorie, Gewichtsbereich und der Länderauswahl mit den Buttons Alle auswählen, EU und Nicht EU](/billing/images/shipping-cost-matrix-form.png)

6. Gib den **Paket-Typ (Slug)** ein, z. B. `standard`, `dhl_kleinpaket`, `dhl_warenpost` oder `*` für alle, und den **Versanddienstleister (Carrier)**, z. B. `dhl`, `dpd`, `ups` oder `*` für alle.
7. Gib den **VK Netto** und bei Bedarf den **EK Netto** ein. Schalte bei Bedarf **Mehrfach berechnen** ein und lege einen [Gültigkeitszeitraum](/billing/validity-period.md) fest.
8. Klicke auf **Speichern**.

![Screenshot: Unterer Teil des Versandkosten-Formulars mit Paket-Typ, Versanddienstleister, VK Netto und Mehrfach berechnen](/billing/images/shipping-cost-matrix-form-price.png)

### CSV-Datei importieren
1. Klicke in der Liste auf **Import**. Der Versandkosten Importer öffnet sich.
2. Wähle unter **Abrechnung (CSV)** die monatliche Abrechnungsdatei im CSV-Format.
   Wähle bei Bedarf unter **Mandanten nicht importieren** Mandanten aus (leer = „Alle Mandanten importieren“). Zeilen dieser Mandanten werden übersprungen, z. B. wenn ihre Versandkosten anders abgerechnet werden. Die Auswahl bleibt für den nächsten Import gespeichert.
3. Klicke auf **Hochladen und Importieren**.
4. Prüfe die **Zusammenfassung** und die **Detailansicht**.
5. Prüfe, ob die importierten Einträge **Aktiv** sind und die richtige Kategorie haben.

### Matrix exportieren
Klicke in der Liste auf **Export**. Du bekommst eine CSV-Datei `versandkosten_export_<date>.csv` mit den Spalten Company Name, Name, Carrier, Service, Weight From, Weight To, Shipping Charge (VK Netto), Receiver Countries und Purchase Price. Der aktuelle Mandanten-Filter wird berücksichtigt.

## Felder und Optionen
| Feld | Bedeutung | Pflicht |
|---|---|---|
| **Name** | Name der Position auf der Abrechnung. | ja |
| **Mandant** | Der Mandant, für den dieser Eintrag gilt, oder **Alle Mandanten**. | nein |
| **Detailbeschreibung** | Beschreibung des Eintrags. | nein |
| **ShipCloud Konto** | Das ShipCloud-Konto des Mandanten. Wird verwendet, um die Zeilen der Importdatei zuzuordnen. | ja |
| **Abrechnungs-Kategorie** | Fasst die Position auf der Abrechnung zusammen. | nein |
| **Gewicht von / bis (kg)** | Gewichtsbereich des Pakets, beide Grenzen zählen mit. | ja |
| **Länder** | Zielländer. `*` = Wildcard für alle Länder; Wildcard-Einträge werden nach den länderbezogenen Einträgen geprüft. | ja |
| **Postleitzahl (optional)** | Für Inselzustellungen oder Regionale Einschränkungen. Wird mit dem Eintrag gespeichert, aber bei der Zuordnung der Labels derzeit nicht berücksichtigt. | nein |
| **Paket-Typ (Slug)** | `warenpost` passt auf DHL Kleinpaket und DHL Warenpost, `standard` auf alle anderen Services. Du kannst auch den genauen Service eingeben oder `*` für alle. | nein |
| **Versanddienstleister (Carrier)** | Kürzel des Versanddienstleisters wie `dhl`, `dpd`, `ups` oder `*` für alle. | ja |
| **VK Netto** | Preis, den der Mandant je Paket zahlt. | ja |
| **EK Netto** | Einkauf je Paket beim Versanddienstleister; der Rechnungs-Import trägt ihn ein. Wird dem Mandanten nicht berechnet. | nein |
| **Mehrfach berechnen** | Ermöglicht, dass dieser Eintrag zusätzlich zu anderen passenden Einträgen berechnet wird, z. B. für einen Zuschlag. | nein |
| **Aktiv** | Nur aktive Einträge werden verwendet. | – |

## So werden Labels zugeordnet
- Für jedes Versandlabel prüft X-Sitter zuerst die Einträge für das Zielland (aus der Lieferadresse, Standard Deutschland), danach die Wildcard-Einträge.
- Ein Eintrag passt, wenn Versanddienstleister, Paket-Typ, Gewicht, **Aktiv** und der Gültigkeitszeitraum stimmen.
- Berechnet wird der **erste** passende Eintrag. Weitere Einträge werden nur berechnet, wenn beim vorherigen passenden Eintrag **Mehrfach berechnen** eingeschaltet ist.
- Auf der Abrechnung erscheinen Versandkosten immer mit der Beschreibung „Versandkosten nach Matrix“ und einer Einzelaufstellung im Anhang (Referenz = Label-Referenz oder Auftragsnummer).

![Screenshot: Anhang der Mandanten-Abrechnung mit Versandkosten-Zeilen je Label-Referenz](/billing/images/shipping-cost-matrix-statement.png)

## So funktioniert der Import
- Die Datei ist eine durch Semikolon getrennte CSV mit den Spalten Company Name, Carrier, Service, Weight (oder Weight To), Receiver Country (oder Receiver Countries) und Shipping Charge, optional Name. Die Exportdatei hat dasselbe Format; der Importer liest als Preis nur Shipping Charge.
- Der **Company Name** muss mit dem Namen deines Mandanten übereinstimmen, und der Mandant muss ein ShipCloud-Konto haben.
- Die Gewichte werden in die Stufen bis 0,999 / 1,999 / 2,999 / 3,999 / 4,999 / 9,999 / 31 kg eingeteilt.
- Deutschland bleibt ein eigener Eintrag, andere EU-Länder werden zu „EU“ zusammengefasst, Nicht-EU-Länder bekommen je Land einen Eintrag.
- Der Betrag des Versanddienstleisters wird als EK übernommen. Neue Zeilen bekommen ihn zunächst auch als VK; bei bestehenden Zeilen bleibt der VK unverändert.
- Bestehende Einträge (gleicher Mandant und Name) bekommen fehlende Länder und den neuen EK. Neue Einträge bekommen die Kategorie, deren Name „Versand“ enthält.

| Import-Status | Bedeutung |
|---|---|
| **Neu** | Ein neuer Matrix-Eintrag wurde angelegt. |
| **Ergänzt** | Zu einem bestehenden Eintrag wurden Länder hinzugefügt. |
| **EK Update** | Der EK eines bestehenden Eintrags wurde geändert (ggf. wurden auch Länder ergänzt). |
| **Existiert** | Der Eintrag war schon unverändert vorhanden. |

## Gut zu wissen / Fehlerbehebung
| Meldung | Ursache | Lösung |
|---|---|---|
| „Import abgeschlossen“ | Der Import war erfolgreich. | Prüfe die Zusammenfassung. |
| Übersprungen (ausgeschlossene Mandanten) | Der Mandant ist unter **Mandanten nicht importieren** ausgewählt. | Nimm den Mandanten aus der Auswahl, wenn seine Zeilen importiert werden sollen. |
| Übersprungen (Kein Mandant) | Der Firmenname aus der CSV oder sein ShipCloud-Konto wurde nicht gefunden. | Gleiche den Firmennamen an den Namen des Mandanten an. |
| Übersprungen (Keine Gewichtsstufe) | Das Gewicht ist leer oder über 31 kg. | Lege den Eintrag von Hand an. |
| Ein Label hat auf der Abrechnung keine Kosten | Kein passender Eintrag (Land, Versanddienstleister, Typ, Gewicht, Aktiv, Gültigkeit). | Lege einen Wildcard-Eintrag als Rückfall an. |

- Mit **Duplizieren** in der Liste kopierst du einen Eintrag. Die Kopie ist inaktiv, bis du sie aktivierst.
