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

# Integrierte Daten-Schnittstelle (IDS)

> Warenkörbe zwischen Handwerkersoftware und Shop in beide Richtungen austauschen, samt automatischer Anmeldung.

Ein Handwerker stellt in seiner Software ein Angebot zusammen, braucht dafür Material aus Ihrem Shop und muss die Artikeldaten bisher abtippen. Über IDS entfällt das: Er wechselt aus seiner Software in den Shop, füllt dort den Warenkorb und schickt ihn zurück in sein System. Nimmt sein Kunde das Angebot an, löst er aus derselben Software die Bestellung aus, und die Bestelldaten kommen wieder zu ihm zurück.

Der Gewinn liegt in dieser Zweiwegigkeit. Produkt- und Bestelldaten werden genau einmal erfasst, nämlich in Ihrem Shop.

Direkt unterstützt werden die Systeme TAIFUN und LABELWIN. Für andere Systeme, die IDS unterstützen, wenden Sie sich an Ihren WEBSALE Ansprechpartner.

## Die vier Abläufe

Alle Abläufe beginnen damit, dass die Handwerkersoftware den Shop mit Parametern aufruft. Welcher Ablauf gemeint ist, entscheidet der Parameter `action`.

### Automatische Anmeldung

Die Software hängt die Zugangsdaten des Handwerkers an den Shop-Aufruf.

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.ihr-shop.de/?name_kunde=<E-Mail>&kndnr=<Kundennummer>&pw_kunde=<Passwort>
```

### Warenkorb vom Shop zur Software

Mit `action=WKE` und einer Rücksprungadresse ruft die Software den Shop auf.

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.ihr-shop.de/?name_kunde=<E-Mail>&pw_kunde=<Passwort>&action=WKE&hookurl=<Hook-URL>
```

Der Handwerker legt im Shop Produkte in den Warenkorb und durchläuft den Checkout bis zur Bestellübersicht. Dort steht neben "Zahlungspflichtig bestellen" eine zweite Schaltfläche, die den Warenkorb an die `hookurl` zurückschickt.

### Warenkorb von der Software zum Shop

Mit `action=WKS` schickt die Software einen bei ihr hinterlegten Warenkorb per POST an den Shop und löst damit eine Bestellung aus.

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.ihr-shop.de/?name_kunde=<E-Mail>&pw_kunde=<Passwort>&action=WKS&hookurl=<Hook-URL>&warenkorb=<XML-Warenkorbdaten>
```

> [!WARNING]
>
> Der Parameter `hookurl` muss in jedem Fall mitkommen. Ohne ihn ist keine Rückübertragung möglich, und die Bestelldaten erreichen die Handwerkersoftware nicht.

### Deep-Link auf ein Produkt

Mit `action=ADL` verlinkt die Software direkt auf ein Produkt. Die Zugangsdaten dürfen mitkommen.

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.ihr-shop.de/?name_kunde=<E-Mail>&pw_kunde=<Passwort>&action=ADL&ghnummer=<Produktnummer>
```

## Einrichten

### Schritt 1: Freischaltung

Die Funktion muss von der WEBSALE AG technisch freigeschaltet werden.

### Schritt 2: Abschnitt in der shop.config anlegen

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<IDSSchnittstelle>
   SupplierName             =
   SupplierStreet           =
   SupplierPCode            =
   SupplierCity             =
   SupplierCountry          =
   SupplierPhone            =
   SupplierEmail            =

   WriteToOrderFile         = yes
   SendVatInPercent         = yes
   RueckgabeKZ              = yes
   EncodeOrderInfo          = no
   GenerateOrderInfoIfEmpty = yes
   ResetStateAfterSend      = yes
   ClearBasket              = yes
   SurchargeAsOrderItem     = yes
</IDSSchnittstelle>
```

Die `Supplier`-Angaben beschreiben Sie als Lieferant und gehen so an die Handwerkersoftware.

| Parameter | Vorgabe | Wirkung bei abweichendem Wert |
| - | - | - |
| `WriteToOrderFile` | `no` | schreibt einen `<IDS>`-Bereich in die Bestelldaten |
| `SendVatInPercent` | `no` | übergibt die Umsatzsteuer in Prozent |
| `RueckgabeKZ` | `no` | übergibt, ob eine Bestellung erfolgt ist |
| `EncodeOrderInfo` | `yes` | sendet die Auftragsdaten nicht XML-codiert |
| `GenerateOrderInfoIfEmpty` | `no` | erzeugt fehlende Pflichtfelder selbst, etwa Versandart und Währung |
| `ResetStateAfterSend` | `no` | setzt den internen Status nach dem Senden zurück |
| `ClearBasket` | `no` | löscht bei jeder neuen Anfrage den vorherigen Warenkorb |
| `SurchargeAsOrderItem` | `no` | legt für den Mindermengenzuschlag eine eigene Position an |

> [!WARNING]
>
> Für LABELWIN ist bei allen Parametern außer `WriteToOrderFile` und `ResetStateAfterSend` der vom Standard abweichende Wert zwingend erforderlich.

Referenz: [Abschnitt IDSSchnittstelle](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/externe-dienste-und-schnittstellen.md#idsschnittstelle)

### Schritt 3: Fehlermeldungen festlegen

Zwei Fälle brauchen eine Meldung: unbekannte Produktnummern aus der Handwerkersoftware und ein unvollständiger Aufruf.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<NotifyMessages-Txt>
   ...
   IDSNoBasketInput    = Bitte beachten Sie, dass nicht alle übergebenen Produkte in den Warenkorb übernommen werden konnten.
                         Folgende Produktnummern sind ungültig oder unbekannt: ~IDS-PRNumbers~
   IDSParameterMissing = Fehlender Parameter. Der Aufruf dieser Seite ist nur mit allen Parametern möglich.
   ...
</NotifyMessages-Txt>
```

Das Tag `IDS-PRNumbers` gibt alle Produktnummern aus, die der Shop nicht gefunden hat.

### Schritt 4: Die Meldungen ausgeben

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{MSG-IDS_Notify}
   ~MSG-IDS_Notify~
{/MSG-IDS_Notify}
```

Der Platz dafür ist die Warenkorbseite, denn dort merkt der Handwerker, dass Positionen fehlen.

Referenz: [Abschnitt NotifyMessages-Txt](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/texte-und-meldungen.md#notifymessages-txt) · [IDS-PRNumbers](https://dokumentation.websale.de/v8s/referenz/tags/ids-schnittstelle.md) · [MSG-IDS\_Notify](https://dokumentation.websale.de/v8s/referenz/tags/msg-meldungen.md#bestellprozess)

### Schritt 5: Den Warenkorb zurückschicken

Dafür gibt es drei Wege. Sie unterscheiden sich darin, wie viel der Handwerker selbst tun muss.

**Weg A: eine Schaltfläche auf der Bestellübersicht.** Der Handwerker entscheidet selbst, wann er zurückgeht.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-IDSSchnittstelle}
   <a href="~WS-IDSSentBasketLink~">Warenkorb zum Handwerkersystem per IDS senden</a>
{/ST-IDSSchnittstelle}
```

**Weg B: Weiterleitung nach kurzer Wartezeit.** Auf der Bestelleingangsbestätigung, im Kopfbereich.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-IDSSchnittstelle}
   <meta http-equiv="refresh" content="3; URL=~WS-IDSSentBasketLink~">
{/ST-IDSSchnittstelle}
```

**Weg C: automatische Übermittlung.** Ebenfalls auf der Bestelleingangsbestätigung, im Körper der Seite.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-IDSSchnittstelle}
   ~WS-TriggerIDSSent~
{/ST-IDSSchnittstelle}
```

> [!WARNING]
>
> Die Klammerung `{ST-IDSSchnittstelle}` trifft nur zu, wenn der Shop mit `action=WKE`, `WKS` oder `ADL` aufgerufen wurde. Ein Besucher, der den Shop gewöhnlich aufruft, sieht weder Hinweise noch Schaltfläche. Testen Sie deshalb immer über einen Aufruf mit `action`-Parameter, sonst suchen Sie eine Schaltfläche, die es in dieser Situation gar nicht geben soll.

Referenz: [ST-IDSSchnittstelle](https://dokumentation.websale.de/v8s/referenz/tags/ids-schnittstelle.md) · [WS-IDSSentBasketLink](https://dokumentation.websale.de/v8s/referenz/tags/ws/merkzettel-vergleich-upload-und-externe-dienste.md#die-tags-im-uberblick) · [WS-TriggerIDSSent](https://dokumentation.websale.de/v8s/referenz/tags/ws/merkzettel-vergleich-upload-und-externe-dienste.md#die-handwerker-schnittstelle)

## Die Lieferadresse der Handwerkersoftware anzeigen

Die von der Software übergebene Lieferadresse lässt sich anzeigen, etwa auf der Bestellübersicht.

> [!WARNING]
>
> Diese Adresse ist rein informativ. Sie geht in die Bestellzusatzinformationen ein. Geliefert wird an die im Shop hinterlegte Standardadresse.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{IDS-Delivery}
   {IDS-Delivery_name1}~IDS-Delivery_name1~{/IDS-Delivery_name1}
   {IDS-Delivery_Street}~IDS-Delivery_Street~{/IDS-Delivery_Street}
   {IDS-Delivery_PCode}~IDS-Delivery_PCode~{/IDS-Delivery_PCode}
   {IDS-Delivery_City}~IDS-Delivery_City~{/IDS-Delivery_City}
   {IDS-Delivery_Country}~IDS-Delivery_Country~{/IDS-Delivery_Country}
{/IDS-Delivery}
```

Nach demselben Muster stehen diese Endungen zur Verfügung:

`Name1`, `Name2`, `Name3`, `Name4`, `Street`, `PCode`, `City`, `Country`, `ILN`, `Contact`, `Phone`, `Fax`, `Email`

Referenz: [IDS-Delivery](https://dokumentation.websale.de/v8s/referenz/tags/ids-schnittstelle.md#die-tags-im-uberblick)

## Verwandte Themen

* Wegweiser: [WWS-Infodatenschnittstelle verwenden](https://dokumentation.websale.de/v8s/externe-dienste/wws-infodatenschnittstelle.md)
* Wegweiser: Bestellübersicht und Bestelleingangsbestätigung
* Wegweiser: [Warenkorb anzeigen](https://dokumentation.websale.de/v8s/warenkorb/warenkorb-anzeigen-loeschen.md)


## Related topics

- [IDS- (Integrierte Daten-Schnittstelle)](https://dokumentation.websale.de/v8s/referenz/tags/ids-schnittstelle.md)
- [WWS-Infodatenschnittstelle verwenden](https://dokumentation.websale.de/v8s/externe-dienste/wws-infodatenschnittstelle.md)
- [Merkzettel, Vergleich, Upload und externe Dienste](https://dokumentation.websale.de/v8s/referenz/tags/ws/merkzettel-vergleich-upload-und-externe-dienste.md)
- [Externe Dienste: Übersicht](https://dokumentation.websale.de/v8s/externe-dienste/externe-dienste.md)
- [Externe Dienste und Schnittstellen](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/externe-dienste-und-schnittstellen.md)


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