> ## 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.

# Mehrfach-Lieferadressen und Belegexemplare

> Die BASKET-Tags für Split-Order: eine Warenkorbposition auf mehrere Lieferadressen aufteilen, Belegexemplare bestellen und die Prüfung der Eingaben auswerten.

Bei Split-Order teilt der Käufer eine einzelne Warenkorbposition auf mehrere Lieferadressen auf: 100 Kataloge, davon 40 an eine Filiale und 60 an eine andere. Ein Sonderfall davon ist das Belegexemplar, also eine kleine Menge, die zusätzlich an eine eigene Adresse geht.

Die Tags dieser Seite sind zahlreich, folgen aber einer klaren Ordnung:

| Präfix | Bezieht sich auf |
| - | - |
| `BASKET-PR-MultiDeliveryAddress_…` | was für dieses Produkt grundsätzlich möglich ist |
| `BASKET-PR-D-…` | was der Käufer tatsächlich eingestellt hat |
| `BASKET-PR-D-MultiData…` | die einzelne Split-Adresse innerhalb der Position |
| `BASKET-Total…` | die Summen über den ganzen Warenkorb |

Wegweiser: [Rechnungs- und multiple Lieferadressen abfragen](https://dokumentation.websale.de/v8s/adressdaten/rechnungs-und-multiple-lieferadressen-abfragen.md)

## Der Aufbau im Template

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@BASKET-PR-Data}
   ~BASKET-PR-Name~

   {BASKET-PR-MultiDeliveryAddress_available}

      {BASKET-PR-D-SingleData}
         Eine abweichende Lieferadresse ist gewählt.
         {BASKET-PR-D-SingleData_ButtonValue_edit}
            <button name="~BASKET-PR-D-ButtonName~" type="submit"
                    value="~BASKET-PR-D-SingleData_ButtonValue_edit~">Adresse ändern</button>
         {/BASKET-PR-D-SingleData_ButtonValue_edit}
      {/BASKET-PR-D-SingleData}

      {BASKET-PR-D-MultiData}
         ~BASKET-PR-D-MultiData~ Adressen werden beliefert.

         {@BASKET-PR-D-MultiData}
            {BASKET-PR-D-MultiData_SampleCopy}Belegexemplar:{/BASKET-PR-D-MultiData_SampleCopy}
            ~BASKET-PR-D-MultiData_quantity~ Stück an ~D-FirstName~ ~D-LastName~

            {BASKET-PR-D-MultiData_quantityError}
               Die Menge muss größer als null sein.
            {/BASKET-PR-D-MultiData_quantityError}
         {/@BASKET-PR-D-MultiData}

      {/BASKET-PR-D-MultiData}

      {BASKET-PR-D-MultiDataAvailable}
         <button name="~BASKET-PR-D-ButtonName~" type="submit"
                 value="~BASKET-PR-D-ButtonValue_new~">Weitere Lieferadresse</button>
      {/BASKET-PR-D-MultiDataAvailable}

   {/BASKET-PR-MultiDeliveryAddress_available}
{/@BASKET-PR-Data}
```

Die äußere Prüfung mit `BASKET-PR-MultiDeliveryAddress_available` lohnt sich, weil die meisten Produkte in einem Shop gar nicht aufteilbar sind. Ohne sie steht bei jeder gewöhnlichen Position ein Bereich, der nie etwas anzeigt.

## Was möglich ist

Diese Tags beantworten, was für das Produkt vorgesehen ist, unabhängig davon, was der Käufer eingestellt hat.

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Zweck |
| - | - | - | - | - |
| `BASKET-PR-D_available` | – | ja | ja | Split-Order ist für den Subshop eingeschaltet |
| `BASKET-PR-MultiDeliveryAddress_available` | – | ja | ja | mehrere Adressen sind für diese Position möglich |
| `BASKET-PR-MultiDeliveryAddress_mda_available` | – | ja | ja | Split-Order ist für dieses Produkt möglich |
| `BASKET-PR-MultiDeliveryAddress_mda_minorderqty` | ja | ja | ja | Mindestmenge für Split-Order |
| `BASKET-PR-MultiDeliveryAddress_mda_maxaddresses` | ja | – | – | Höchstzahl regulärer Adressen |
| `BASKET-PR-MultiDeliveryAddress_mda_denomination` | ja | ja | ja | Stückelungsgröße |
| `BASKET-PR-MultiDeliveryAddress_sc_available` | – | ja | ja | Belegexemplar ist möglich |
| `BASKET-PR-MultiDeliveryAddress_sc_minorderqty` | ja | ja | ja | Mindestmenge für ein Belegexemplar |
| `BASKET-PR-MultiDeliveryAddress_sc_quantity` | ja | ja | ja | Anzahl bestellter Belegexemplare |
| `BASKET-PR-MultiDeliveryAddress_sc_price` | ja | ja | ja | Aufpreis je Belegexemplar |

Das Kürzel `mda` steht für die regulären Split-Adressen, `sc` für SampleCopy, also das Belegexemplar. Die beiden werden getrennt konfiguriert und getrennt geprüft.

> [!WARNING]
>
> `BASKET-PR-D_available` prüft den Subshop, `BASKET-PR-MultiDeliveryAddress_mda_available` das einzelne Produkt. Beides muss stimmen, sonst bleibt die Funktion aus, obwohl das Produkt sie zu erlauben scheint.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BASKET-PR-MultiDeliveryAddress_mda_available}
   Dieses Produkt kann auf bis zu ~BASKET-PR-MultiDeliveryAddress_mda_maxaddresses~ Adressen
   aufgeteilt werden

   {BASKET-PR-MultiDeliveryAddress_mda_minorderqty}
      , ab einer Menge von ~BASKET-PR-MultiDeliveryAddress_mda_minorderqty~ Stück
   {/BASKET-PR-MultiDeliveryAddress_mda_minorderqty}

   {BASKET-PR-MultiDeliveryAddress_mda_denomination}
      , jeweils in Schritten von ~BASKET-PR-MultiDeliveryAddress_mda_denomination~ Stück
   {/BASKET-PR-MultiDeliveryAddress_mda_denomination}
   .
{/BASKET-PR-MultiDeliveryAddress_mda_available}
```

Nennen Sie Mindestmenge und Stückelung, bevor der Käufer etwas einträgt. Eine Fehlermeldung nach dem Absenden ist für ihn eine Überraschung, ein vorher genannter Schritt von 25 Stück nicht.

## Was eingestellt wurde

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Schleifen-Tag |
| - | - | - | - | - |
| `BASKET-PR-D` | – | ja | ja | – |
| `BASKET-PR-D-SingleData` | – | ja | ja | – |
| `BASKET-PR-D-MultiData` | ja | ja | ja | ja |
| `BASKET-PR-D-MultiDataAvailable` | – | ja | ja | – |
| `BASKET-PR-D-MultiDataQuantityleft` | ja | ja | ja | – |
| `BASKET-PR-D-SampleCopyAvailable` | – | ja | ja | – |
| `BASKET-PR-D-SampleCopySelected` | – | ja | ja | – |
| `BASKET-PR-MDMaffected` | – | ja | ja | – |
| `BASKET-PR-D-MDMaffected` | – | ja | ja | – |

### BASKET-PR-D

Der Bereich wird angezeigt, wenn die Option "An mehrere Adressen liefern" gewählt wurde und mindestens eine abweichende Lieferadresse vorliegt.

### BASKET-PR-D-SingleData und BASKET-PR-D-MultiData

`BASKET-PR-D-SingleData` greift, wenn genau eine abweichende Lieferadresse gewählt ist. `BASKET-PR-D-MultiData` greift ab zwei Adressen und ist zugleich die Schleife über sie. Als Einzel-Tag gibt es die Anzahl der verwendeten Adressen aus, das Belegexemplar eingerechnet.

Die beiden schließen einander aus. Eine Position hat entweder eine abweichende Adresse oder mehrere, und die Templateabschnitte dafür sehen unterschiedlich aus: einmal eine Zeile, einmal eine Tabelle.

### BASKET-PR-D-MultiDataAvailable und BASKET-PR-D-MultiDataQuantityleft

`BASKET-PR-D-MultiDataAvailable` greift, wenn noch eine weitere Adresse angelegt werden darf. Mindestmenge und Restmenge sind dabei schon berücksichtigt. `BASKET-PR-D-MultiDataQuantityleft` gibt die noch nicht verteilte Menge aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BASKET-PR-D-MultiDataQuantityleft}
   Noch zu verteilen: ~BASKET-PR-D-MultiDataQuantityleft~ Stück
{/BASKET-PR-D-MultiDataQuantityleft}

{!BASKET-PR-D-MultiDataQuantityleft}
   Die gesamte Menge ist verteilt.
{/!BASKET-PR-D-MultiDataQuantityleft}
```

Die Restmenge ist die wichtigste Rückmeldung auf dieser Seite. Ohne sie merkt der Käufer erst beim Absenden, dass noch Stück übrig sind, und muss die Verteilung von vorn durchrechnen.

### BASKET-PR-MDMaffected und BASKET-PR-D-MDMaffected

Beide zeigen an, dass eine Lieferadresse geändert wurde. `BASKET-PR-MDMaffected` bezieht sich auf die Position, `BASKET-PR-D-MDMaffected` auf die einzelne Split-Adresse innerhalb der Position.

## Die einzelne Split-Adresse

Diese Tags gehören in die Schleife `{@BASKET-PR-D-MultiData}` und beschreiben jeweils eine Adresse.

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Zweck |
| - | - | - | - | - |
| `BASKET-PR-D-MultiData_quantity` | ja | – | – | Menge für diese Adresse |
| `BASKET-PR-D-MultiData_quantity_input` | ja | ja | ja | Name des Mengeneingabefeldes |
| `BASKET-PR-D-MultiData_technicalquantity()` | ja | – | – | Menge in frei wählbarer Schreibweise |
| `BASKET-PR-D-MultiData_SampleCopy` | – | ja | ja | diese Adresse ist das Belegexemplar |
| `BASKET-PR-D-MultiData_quantityError` | – | ja | ja | Menge ist null oder negativ |
| `BASKET-PR-D-MultiData_denominationError` | – | ja | ja | Stückelung nicht eingehalten |
| `BASKET-PR-D-MultiData_ValueOfGoodsDependentDeliveryCostAmount` | ja | ja | ja | Versandkostenanteil, warenwertabhängig |
| `BASKET-PR-D-MultiData_WeightDependentDeliveryCostAmount` | ja | ja | ja | Versandkostenanteil, gewichtsabhängig |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@BASKET-PR-D-MultiData}

   {BASKET-PR-D-MultiData_quantity_input}
      <input type="text"
             name="~BASKET-PR-D-MultiData_quantity_input~"
             value="~BASKET-PR-D-MultiData_quantity~">
   {/BASKET-PR-D-MultiData_quantity_input}

   {!BASKET-PR-D-MultiData_quantity_input}
      ~BASKET-PR-D-MultiData_quantity~ Stück
   {/!BASKET-PR-D-MultiData_quantity_input}

   an ~D-FirstName~ ~D-LastName~, ~D-City~

{/@BASKET-PR-D-MultiData}
```

`BASKET-PR-D-MultiData_quantity_input` als Bereichs-Tag beantwortet, ob die Menge überhaupt änderbar ist. Beim Belegexemplar ist sie das oft nicht, dann gehört dort eine feste Zahl statt eines Eingabefeldes hin.

Die beiden Versandkosten-Tags leisten zweierlei: Als Bereichs-Tag sagen sie, wovon der Anteil abhängt, als Einzel-Tag geben sie den Betrag aus. Für eine Split-Position, die in zwei Länder geht, wird damit nachvollziehbar, warum die Anteile unterschiedlich ausfallen.

## Belegexemplare

| Tag | Zweck |
| - | - |
| `BASKET-PR-D-SampleCopyAvailable` | ein Belegexemplar kann noch gewählt werden |
| `BASKET-PR-D-SampleCopySelected` | ein Belegexemplar ist gewählt und aktiv |
| `BASKET-PR-SampleCopyCost` | Kosten des Belegexemplars dieser Position |
| `BASKET-TotalSampleCopyCost` | Kosten aller Belegexemplare der Bestellung |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BASKET-PR-D-SampleCopyAvailable}
   <button name="~BASKET-PR-D-ButtonName~" type="submit"
           value="~BASKET-PR-D-ButtonValue_SampleCopy_new~">Belegexemplar bestellen</button>
{/BASKET-PR-D-SampleCopyAvailable}

{BASKET-PR-D-SampleCopySelected}
   Belegexemplar ist bestellt.

   {BASKET-PR-SampleCopyCost}
      Kosten: ~BASKET-PR-SampleCopyCost~ ~WS-CurrencySymbol~
   {/BASKET-PR-SampleCopyCost}

   {BASKET-PR-D-ButtonValue_SampleCopy_edit}
      <button name="~BASKET-PR-D-ButtonName~" type="submit"
              value="~BASKET-PR-D-ButtonValue_SampleCopy_edit~">Ändern</button>
   {/BASKET-PR-D-ButtonValue_SampleCopy_edit}

   <button name="~BASKET-PR-D-ButtonName~" type="submit"
           value="~BASKET-PR-D-ButtonValue_SampleCopy_delete~">Löschen</button>
{/BASKET-PR-D-SampleCopySelected}
```

## Die Schaltflächen

Alle Aktionen laufen über dieselbe Schaltfläche mit wechselndem Wert. Der Name kommt aus `BASKET-PR-D-ButtonName`, der Wert entscheidet, was passiert.

| Tag | Aktion |
| - | - |
| `BASKET-PR-D-ButtonValue_new` | weitere Lieferadresse auswählen |
| `BASKET-PR-D-ButtonValue_reload` | Eingaben neu laden |
| `BASKET-PR-D-SingleData_ButtonValue_edit` | die eine Adresse ändern |
| `BASKET-PR-D-SingleData_ButtonValue_delete` | die eine Adresse löschen |
| `BASKET-PR-D-MultiData_ButtonValue_edit` | eine Adresse aus der Liste ändern |
| `BASKET-PR-D-MultiData_ButtonValue_delete` | eine Adresse aus der Liste löschen |
| `BASKET-PR-D-ButtonValue_SampleCopy_new` | Belegexemplar bestellen |
| `BASKET-PR-D-ButtonValue_SampleCopy_edit` | Belegexemplar ändern |
| `BASKET-PR-D-ButtonValue_SampleCopy_delete` | Belegexemplar löschen |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<button name="~BASKET-PR-D-ButtonName~" type="submit" value="~BASKET-PR-D-ButtonValue_new~">
   Weitere Lieferadresse
</button>
```

Die drei Werte für das Ändern sind zugleich Bereichs-Tags. Sie greifen nur, wenn die Änderung im aktuellen Zustand erlaubt ist. Klammern Sie die Schaltfläche damit ein, statt sie ungeprüft auszugeben.

## Die Prüfung

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Zweck |
| - | - | - | - | - |
| `BASKET-DeliverySplit_OK` | – | ja | ja | Prüfung aller Positionen |
| `BASKET-PR-MultiDeliveryAddress_ErrorCode()` | ja | ja | ja | Prüfung einer Position |

`BASKET-DeliverySplit_OK` löst die Prüfung aller Warenkorbpositionen aus und greift, wenn nichts zu beanstanden ist. `BASKET-PR-MultiDeliveryAddress_ErrorCode()` prüft eine einzelne Position und gibt den Fehlercode aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{!BASKET-DeliverySplit_OK}
   Bitte prüfen Sie Ihre Angaben zu den Lieferadressen.
{/!BASKET-DeliverySplit_OK}

{@BASKET-PR-Data}
   {BASKET-PR-MultiDeliveryAddress_ErrorCode(10)}
      Es ist noch eine Restmenge übrig, die keiner Adresse zugeordnet ist.
   {/BASKET-PR-MultiDeliveryAddress_ErrorCode(10)}

   {BASKET-PR-MultiDeliveryAddress_ErrorCode(11)}
      Die Mengen halten die vorgegebene Stückelung nicht ein.
   {/BASKET-PR-MultiDeliveryAddress_ErrorCode(11)}
{/@BASKET-PR-Data}
```

### Die Fehlercodes

| Code | Ursache |
| - | - |
| 0 | kein Fehler oder nicht geprüft |
| 1 | Adresse nicht gefunden |
| 2 | Belegexemplar gewählt, aber grundsätzlich nicht verfügbar |
| 3 | Belegexemplar gewählt, aber Mindestmenge nicht erreicht |
| 4 | Adresse nicht gefunden |
| 5 | Anzahl der Lieferadressen passt nicht zur Anzahl der Positionen |
| 6 | Split-Order ist nicht erlaubt |
| 7 | Split-Order nicht erlaubt, Mengenabhängigkeit nicht erfüllt |
| 8 | Höchstzahl der Adressen überschritten |
| 9 | Bestellmenge überschritten |
| 10 | Restmenge übrig |
| 11 | Staffelungsfehler |
| 12 | Menge ist null |
| 13 | Verteilungsprodukt: abweichende Lieferadresse nicht zulässig |

> [!WARNING]
>
> Die Codes 1 und 4 sind interne Fehler und keine Eingabefehler des Käufers. Zeigen Sie dafür keine Anleitung zur Korrektur an, sondern einen allgemeinen Hinweis, und wenden Sie sich an Ihren WEBSALE-Ansprechpartner.

Ohne Parameter gibt das Tag den Code aus und greift als Bereich, sobald überhaupt ein Fehler vorliegt. Mit Parameter greift es nur bei genau diesem Code. Für verständliche Meldungen ist die Variante mit Parameter die richtige, denn nur sie kann sagen, was zu tun ist.

## Zusatzkosten durch Split-Order

| Tag | Zweck |
| - | - |
| `BASKET-PR-MultiDeliveryAddressUsageCost` | Aufpreis für diese Position |
| `BASKET-TotalMultiDeliveryAddressUsageCost` | Aufpreis für den ganzen Warenkorb |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BASKET-TotalMultiDeliveryAddressUsageCost}
   Aufpreis für die Lieferung an mehrere Adressen:
   ~BASKET-TotalMultiDeliveryAddressUsageCost~ ~WS-CurrencySymbol~
{/BASKET-TotalMultiDeliveryAddressUsageCost}
```

## Teillieferung

### BASKET-PR-SplitDelivery

Der Bereich wird angezeigt, wenn nur ein Teil der Position lieferbar ist und die Verfügbarkeit deshalb aufgeteilt ausgegeben wird. Zulässig ist das Tag nur innerhalb von `BASKET-PR-Inventory`.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BASKET-PR-Inventory}
   {BASKET-PR-SplitDelivery}
      Eine Teillieferung ist notwendig.
   {/BASKET-PR-SplitDelivery}

   {!BASKET-PR-SplitDelivery}
      Die gewünschte Menge kann vollständig geliefert werden.
   {/!BASKET-PR-SplitDelivery}
{/BASKET-PR-Inventory}
```

> [!WARNING]
>
> Dieses Tag hat mit Split-Order nichts zu tun, obwohl der Name ähnlich klingt. Es geht um die Verfügbarkeit im Lager, nicht um mehrere Lieferadressen.

## Verwandte Themen

* Wegweiser: [Rechnungs- und multiple Lieferadressen abfragen](https://dokumentation.websale.de/v8s/adressdaten/rechnungs-und-multiple-lieferadressen-abfragen.md)
* Wegweiser: [Verteilungsprodukte anbieten](https://dokumentation.websale.de/v8s/produkte/verteilungsprodukte-anbieten-prospektservice.md)
* Referenz: [Warenkorbsummen](https://dokumentation.websale.de/v8s/referenz/tags/basket/warenkorbsummen.md)
* Referenz: [Positionen im Warenkorb](https://dokumentation.websale.de/v8s/referenz/tags/altcurrency.md#positionen-im-warenkorb)


## Related topics

- [MDM- (Mehrere Lieferadressen)](https://dokumentation.websale.de/v8s/referenz/tags/mdm-mehrere-lieferadressen.md)
- [DELIV- (Einzelpositionierung der Versandarten)](https://dokumentation.websale.de/v8s/referenz/tags/deliv.md)
- [Versandoptionen und Services für Käufer](https://dokumentation.websale.de/v8s/versandarten-anlegen/versandoptionen-und-services.md)
- [Einstellungen für Rechnungs- und Lieferadressen festlegen](https://dokumentation.websale.de/v8s/adressdaten/einstellungen-fuer-rechnungs-und-lieferadressen-festlegen.md)
- [Warenkorb anzeigen und löschen](https://dokumentation.websale.de/v8s/warenkorb/warenkorb-anzeigen-loeschen.md)


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