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

# IDS-Connect

> Warenkörbe zwischen Handwerkersoftware und WEBSALE Shop bidirektional übertragen, mit automatischer Anmeldung, Artikel-Deep-Link und den XML-Warenkorbdaten nach IDS-Standard.

IDS-Connect ist die Schnittstelle der Firma ITEK, über die Handwerkersysteme und Onlineshops Warenkörbe in beide Richtungen austauschen. Für den Handwerker entsteht dadurch ein durchgehender Weg: Er sieht Produkte aus seinem System heraus im Shop, stellt dort einen Warenkorb zusammen, übernimmt ihn als Angebot in sein System, und löst nach der Zusage seines Kunden die Bestellung wieder im Shop aus.

| Eigenschaft | Wert |
| - | - |
| Übertragungsrichtung | Handwerkersystem → WEBSALE Shop → Handwerkersystem (bidirektional) |
| Übertragungsart | HTTP mit POST |
| Format | XML |

Der Shop stellt dafür vier Funktionen bereit: die automatische Anmeldung, einen Deep-Link auf ein Produkt, den Versand des Warenkorbs an das Handwerkersystem und die Entgegennahme eines Warenkorbs aus dem Handwerkersystem.

## Automatische Anmeldung im Shop

Das Handwerkersystem hängt die Shop-Zugangsdaten des Handwerkers an den Shop-Aufruf an, entweder die E-Mail-Adresse oder die Kundennummer, jeweils mit Passwort. Der Handwerker ist damit im Shop angemeldet.

Zwei Voraussetzungen müssen erfüllt sein: Der Handwerker braucht bereits ein Kundenkonto im Shop, und der Aufruf muss über SSL erfolgen. Bei einem Aufruf über `http` lehnt der Shop die Anmeldung ab.

Mit E-Mail-Adresse:

```
https://www.shopdomain.de/?name_kunde=<E-Mail>&pw_kunde=<Passwort>
```

Mit Kundennummer:

```
https://www.shopdomain.de/?kndnr=<Kundennummer>&pw_kunde=<Passwort>
```

Mit beidem:

```
https://www.shopdomain.de/?name_kunde=<E-Mail>&kndnr=<Kundennummer>&pw_kunde=<Passwort>
```

## Artikel-Deep-Link auf ein Produkt

Mit dem Parameter `action=ADL` und einer Produktnummer verlinkt das Handwerkersystem direkt auf ein Produkt. Die Zugangsdaten lassen sich mitgeben, der Handwerker landet dann angemeldet auf der Produktseite.

```
https://www.shopdomain.de/?name_kunde=<E-Mail>&pw_kunde=<Passwort>&action=ADL&ghnummer=<Produktnummer>
```

## Shop sendet Warenkorb an das Handwerkersystem

Das Handwerkersystem ruft den Shop mit `action=WKE` für Warenkorb empfangen und zusätzlich mit dem Parameter `hookurl` auf:

```
https://www.shopdomain.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, wo er bei Bedarf eine abweichende Lieferadresse sowie Zahlungs- und Versandart wählt.

Auf der Bestellübersichtsseite `ws_place_order.htm` erscheint neben **Zahlungspflichtig bestellen** ein zweiter Button: **Warenkorb zum Handwerkersystem per IDS senden**. Ein Klick darauf schickt den Warenkorb per POST an die zuvor übergebene Hook-URL, statt die Bestellung auszulösen.

Der Shop sendet dabei diese Daten:

```xml theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<?xml version="1.0" encoding="ISO-8859-1"?>
<Warenkorb xmlns="http://www.itek.de/Shop-Anbindung/Warenkorb/"
  xsi:schemaLocation="http://www.itek.de/Shop-Anbindung/Warenkorb/
  http://www.itek.de/Shop-Anbindung/Warenkorb/warenkorb_empfangen.xsd">
  <WarenkorbInfo>
    <Date>2009-10-29</Date>
    <Time>17:00:29</Time>
    <Version>2.3</Version>
  </WarenkorbInfo>
  <Order>
    <OrderInfo>
      <ModeOfShipment>Lieferung</ModeOfShipment>
      <Cur>EUR</Cur>
    </OrderInfo>
    <SupplierInfo>
      <Address>
        <Name1>Firma und Co. KG</Name1>
        <Street>Musterweg 6</Street>
        <PCode>58706</PCode>
        <City>Menden</City>
        <Country>Deutschland</Country>
        <Phone>(0049) 02373-9296-0</Phone>
        <Email>info@shopdomain.de</Email>
      </Address>
    </SupplierInfo>
    <CustomerInfo>
      <IDNo>12345</IDNo>
    </CustomerInfo>
    <DeliveryPlaceInfo>
      <Address>
        <Name1>Musterfirma GmbH</Name1>
        <Street>Musterstrasse 1</Street>
        <PCode>12345</PCode>
        <City>Musterhausen</City>
        <Country>Deutschland</Country>
      </Address>
    </DeliveryPlaceInfo>
    <OrderItem>
      <EAN>1234567890128</EAN>
      <ArtNo>4711</ArtNo>
      <Qty>5</Qty>
      <QU>PCE</QU>
      <Kurztext>...</Kurztext>
      <Langtext>...</Langtext>
      <OfferPrice>119.00</OfferPrice>
      <NetPrice>100.00</NetPrice>
      <PriceBasis>5</PriceBasis>
      <VAT>19.00</VAT>
    </OrderItem>
  </Order>
</Warenkorb>
```

Die wichtigsten Felder je Position:

| Feld | Bedeutung |
| - | - |
| `EAN` | EAN, sofern vorhanden |
| `ArtNo` | Produktnummer |
| `Qty` | Bestellmenge als ganze Zahl |
| `QU` | Mengeneinheit, immer `PCE` für Stück |
| `Kurztext` | Produktname |
| `Langtext` | Produktbeschreibung, maximal 1000 Zeichen |
| `OfferPrice` | Bruttopreis, bezogen auf die Bestellmenge |
| `NetPrice` | Nettopreis, bezogen auf die Bestellmenge |
| `PriceBasis` | Preis-Basis, bezogen auf die Bestellmenge |
| `VAT` | Mehrwertsteuersatz |

`ModeOfShipment` enthält `Lieferung` oder `Abholung`, je nach der im Checkout gewählten Zustellung. `DeliveryPlaceInfo` erscheint nur, wenn die Lieferadresse von der Rechnungsadresse abweicht.

Beachten Sie, dass Preise sich auf die Bestellmenge beziehen und nicht auf ein einzelnes Stück. Wer `OfferPrice` als Stückpreis interpretiert, rechnet bei jeder Position mit Menge größer eins falsch.

## Handwerkersystem sendet Warenkorb an den Shop

Ein im Handwerkersystem hinterlegter Warenkorb lässt sich per POST an den Shop schicken und löst dort eine Bestellung aus. Dazu dient `action=WKS`:

```
https://www.shopdomain.de/?name_kunde=<E-Mail>&pw_kunde=<Passwort>&action=WKS&hookurl=<Hook-URL>&warenkorb=<XML-Warenkorbdaten>
```

Der Parameter `hookurl` muss auch hier mitgesendet werden. Ohne ihn ist keine Rückübertragung möglich.

Der Shop verarbeitet diese Daten, die deutlich schlanker sind als in der Gegenrichtung:

```xml theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<?xml version="1.0" encoding="UTF-8"?>
<Warenkorb xmlns="http://www.itek.de/Shop-Anbindung/Warenkorb/"
  xsi:schemaLocation="http://www.itek.de/Shop-Anbindung/Warenkorb/
  http://www.itek.de/Shop-Anbindung/Warenkorb/warenkorb_senden.xsd">
  <Order>
    <OrderItem>
      <ArtNo>471211</ArtNo>
      <Qty>1</Qty>
    </OrderItem>
  </Order>
</Warenkorb>
```

Je Position genügen Produktnummer und Menge. Preise übernimmt der Shop aus seinen eigenen Daten, nicht aus dem übergebenen Warenkorb.

## Verwandte Themen

* Wegweiser: [Für spezielle Branchen](https://dokumentation.websale.de/v8s/schnittstellen/spezielle-branchen.md)
* Wegweiser: [Funktionen für B2B-Shops](https://dokumentation.websale.de/v8s/funktionen-fuer-b2b-shops.md)
* Referenz: [IDS-Schnittstelle](https://dokumentation.websale.de/v8s/referenz/tags/ids-schnittstelle.md)


## Related topics

- [Für spezielle Branchen](https://dokumentation.websale.de/v8s/schnittstellen/spezielle-branchen.md)
- [Schnittstellen](https://dokumentation.websale.de/v8s/schnittstellen.md)
- [IDS- (Integrierte Daten-Schnittstelle)](https://dokumentation.websale.de/v8s/referenz/tags/ids-schnittstelle.md)
- [Kunde, Anmeldung und Konto](https://dokumentation.websale.de/v8s/referenz/tags/ws/kunde-anmeldung-und-konto.md)
- [Integrierte Daten-Schnittstelle (IDS)](https://dokumentation.websale.de/v8s/externe-dienste/integrierte-daten-schnittstelle-ids.md)


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