> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# Versandkosten abhängig von Adressdaten

> Privatkunden versandkostenfrei beliefern und Geschäftskunden Versandkosten berechnen, über zwei Versandarten und eine Regel auf den Adressdaten.

Privatkunden sollen versandkostenfrei bestellen, Geschäftskunden Versandkosten zahlen. Die Versandkosten hängen also nicht am Zielort, sondern daran, wer bestellt.

![Versandart Privat Firma](https://mintcdn.com/websaleag-44ee7ea6/F0j7j4nmuETNasFh/images/versandart_privat_firma.jpg?fit=max\&auto=format\&n=F0j7j4nmuETNasFh\&q=85\&s=48e11ba112ba73f1938a2a5298102e59)

## Wie das funktioniert

Eine Versandart kann ihre Kosten nicht vom Kunden abhängig machen. Stattdessen legen Sie **zwei** Versandarten an, eine mit und eine ohne Kosten, und sorgen dafür, dass der Käufer immer nur eine davon sieht.

Welche das ist, entscheidet eine Regel im Abschnitt `<DelivererAddressDependencies-Definitions>`. Sie prüft ein Feld der Rechnungsadresse und wird den Versandarten über `+UseAddressDependency-ID` zugewiesen.

Für die Frage "Privat oder Firma" gibt es zwei gebräuchliche Felder:

| Woran Sie es erkennen | Wann das passt |
| - | - |
| an einer eigenen Auswahl für den Adresstyp, beispielsweise `Suffix1` | der Käufer wählt den Typ ausdrücklich, und Sie blenden danach ohnehin schon Felder ein und aus |
| daran, ob das Feld `Company` gefüllt ist | Sie fragen den Adresstyp nicht gesondert ab und wollen ohne zusätzliches Feld auskommen |

Die Schritte sind in beiden Fällen dieselben, nur die Bedingung unterscheidet sich.

> [!NOTE]
>
> Wie Sie die Auswahl des Adresstyps über `Suffix1` einrichten und danach Felder wie Firma und Umsatzsteuer-ID ein- und ausblenden, steht auf einer eigenen Seite.
>
> Wegweiser: [Auswahl zwischen Privat- und Geschäftsadresse](https://dokumentation.websale.de/v8s/adressdaten/auswahl-zwischen-privat-und-geschaeftsadresse.md)

## Schritt 1: Zwei Versandarten anlegen

Beide Abschnitte beschreiben denselben Versand, sie unterscheiden sich nur in den Kosten und in der zugewiesenen Regel.

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<+Deliverer>
   Allow                      = yes
   ID                         = dhl_b2c
   GroupID                    = dhl
   Name-Txt                   = DHL
   BasicCost-List             = (0:0)
   ...
   +UseAddressDependency-ID   = nocost
   ...
</+Deliverer>

<+Deliverer>
   Allow                      = yes
   ID                         = dhl_b2b
   GroupID                    = dhl
   Name-Txt                   = DHL
   BasicCost-List             = (0:4.95)
   ...
   +UseAddressDependency-ID   = cost
   ...
</+Deliverer>
```

> [!WARNING]
>
> Schreiben Sie **nicht** "DHL versandkostenfrei (B2C)" und "DHL kostenpflichtig (B2B)" in `Name-Txt`. Der Käufer sieht immer nur eine der beiden Versandarten, und für ihn ist es dieselbe. Ein Privatkunde, dem der Shop "versandkostenfrei (B2C)" anbietet, erfährt daraus nur, dass es offenbar auch einen anderen Preis gibt.
>
> Beide bekommen denselben Namen. Die Unterscheidung gehört in die `ID`, die der Käufer nicht sieht.

> [!NOTE]
>
> Die gemeinsame `GroupID` ist wichtiger, als sie aussieht.
>
> Hat ein Kunde in seinem Konto eine bevorzugte Versandart hinterlegt, merkt sich WEBSALE V8s dafür die `GroupID`, nicht die `ID`. Ohne gemeinsame Gruppe würde seine Voreinstellung nicht mehr greifen, sobald er vom Privat- zum Geschäftskonto wechselt oder umgekehrt.
>
> Dasselbe gilt, wenn Sie nicht verfügbare Versandarten ausgegraut anzeigen. Ohne gemeinsame Gruppe erschiene DHL dort zweimal.

Referenz: [Abschnitt +Deliverer](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/versand-und-lieferung.md#deliverer) · Wegweiser: Versandarten anlegen

## Schritt 2: Die Regel definieren

Der Abschnitt `<DelivererAddressDependencies-Definitions>` darf in der `shop.config` nur einmal vorkommen. Darin stehen die beiden Regeln, auf die sich die Versandarten beziehen.

### Über den Adresstyp

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<DelivererAddressDependencies-Definitions>

   # Privatkunde: Adressart "Privat" gewählt
   <+AddressDependency>
      AddressDependency-ID   = nocost
      <+DependencyGroup>
         <+Dependency>
            Input            = billaddress
            <+Condition>
               Field         = Suffix1
               Type          = value
               Value         = 01
            </+Condition>
         </+Dependency>
      </+DependencyGroup>
   </+AddressDependency>

   # Geschäftskunde: alles andere
   <+AddressDependency>
      AddressDependency-ID   = cost
      <+DependencyGroup>
         <+Dependency>
            Input            = billaddress
            <+Condition>
               Field         = Suffix1
               Type          = notvalue
               Value         = 01
            </+Condition>
         </+Dependency>
      </+DependencyGroup>
   </+AddressDependency>

</DelivererAddressDependencies-Definitions>
```

Der Wert `01` ist der `Value` des Eintrags "Privat" im Abschnitt `<A-Suffix1>`. Verglichen wird der technische Wert, nicht der angezeigte Name.

> [!WARNING]
>
> `notvalue` trifft auch auf ein **leeres** Feld zu. Hat der Käufer den Adresstyp nicht gewählt, gilt er damit als Geschäftskunde und zahlt Versand.
>
> Machen Sie das Feld deshalb zum Pflichtfeld, oder drehen Sie die zweite Regel auf `Type = value` mit `Value = 02`. Dann bleiben beide Versandarten aus, solange nichts gewählt ist, was zusammen mit `DeliveryRequiredForOrder-Allow = yes` ebenfalls zu einem sauberen Ergebnis führt.

### Über das Feld "Company"

Dieselben beiden Regeln, nur mit einer anderen Bedingung:

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
   # Privatkunde: Firmenfeld leer
   <+AddressDependency>
      AddressDependency-ID   = nocost
      <+DependencyGroup>
         <+Dependency>
            Input            = billaddress
            <+Condition>
               Field         = Company
               Type          = empty
            </+Condition>
         </+Dependency>
      </+DependencyGroup>
   </+AddressDependency>

   # Geschäftskunde: Firmenfeld gefüllt
   <+AddressDependency>
      AddressDependency-ID   = cost
      <+DependencyGroup>
         <+Dependency>
            Input            = billaddress
            <+Condition>
               Field         = Company
               Type          = filled
            </+Condition>
         </+Dependency>
      </+DependencyGroup>
   </+AddressDependency>
```

> [!NOTE]
>
> `empty` und `filled` brauchen keinen `Value` und decken zusammen jeden Fall ab. Diese Variante hat die Lücke aus der ersten nicht.
>
> Dafür entscheidet hier der Käufer indirekt. Wer seinen Verein oder seine Praxis in das Firmenfeld schreibt, zahlt Versand, auch wenn er sich nicht als Geschäftskunde versteht.

Referenz: [Abschnitt DelivererAddressDependencies-Definitions](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/versand-und-lieferung.md#delivereraddressdependencies-definitions)

## Worauf Sie achten sollten

Die Feldnamen in `Field` unterscheiden nicht zwischen Groß- und Kleinschreibung. `Suffix1`, `suffix1` und `SUFFIX1` meinen dasselbe Feld. Schreiben Sie sie trotzdem einheitlich so wie im Abschnitt `<AddressFields-Txt>`, damit beim Suchen in der Konfiguration nichts durchrutscht.

> [!WARNING]
>
> Geprüft wird die **Rechnungs**adresse. Eine abweichende Lieferadresse ändert die Versandkosten also nicht. Für die Unterscheidung zwischen Privat- und Geschäftskunde ist das richtig, weil sie zum Besteller gehört und nicht zum Ziel.
>
> Die beiden Regeln müssen einander ausschließen und zusammen jeden Fall abdecken. Überschneiden sie sich, sieht der Käufer dieselbe Versandart zweimal zu verschiedenen Preisen. Lassen sie eine Lücke, sieht er gar keine.
>
> Prüfen Sie beide Fälle nach dem Einrichten im Shop durch, einmal als Privat- und einmal als Geschäftskunde.

Für angemeldete Kunden gibt es einen zweiten Weg: einen kundenindividuellen Rabatt auf die Versandkosten im Kundenkonto. Der kommt mit einer einzigen Versandart aus, greift aber nur bei angemeldeten Kunden mit hinterlegtem Rabatt. Das Vorgehen auf dieser Seite funktioniert auch für Gastbestellungen.

## Verwandte Themen

* Wegweiser: [Auswahl zwischen Privat- und Geschäftsadresse](https://dokumentation.websale.de/v8s/adressdaten/auswahl-zwischen-privat-und-geschaeftsadresse.md)
* Wegweiser: [Versandarten anlegen](https://dokumentation.websale.de/v8s/versandarten-anlegen/versandarten-anlegen.md)
* Wegweiser: [Auswahllisten der Adressdaten](https://dokumentation.websale.de/v8s/adressdaten/auswahllisten-der-adressdaten.md)
* Referenz: [Versand und Lieferung in der shop.config](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/versand-und-lieferung.md)


## Related topics

- [Anwendungsbeispiele](https://dokumentation.websale.de/v8s/anwendungsbeispiele/anwendungsbeispiele.md)
- [Erweiterte Einstellungen beim Anlegen von Versandarten](https://dokumentation.websale.de/v8s/versandarten-anlegen/erweiterte-einstellungen.md)
- [Tags und Templates](https://dokumentation.websale.de/v8s/upload-modul/formulare-mit-inquiry4/tags-und-templates.md)
- [Gutscheine abhängig von Produktdaten](https://dokumentation.websale.de/v8s/gutscheine-anbieten/gutscheine-abhaengig-von-produktdaten.md)
- [Versand und Lieferung](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/versand-und-lieferung.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.