> For the complete documentation index, see [llms.txt](https://docs.solutioo.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.solutioo.de/shopware/kundenverwaltung/b2b-benutzer-aus-kontakten.md).

# B2B-Benutzer aus Kontakten

Im B2B-Geschäft bestellt nicht „eine Person“, sondern eine **Firma mit mehreren Ansprechpartnern**. Der Connector bildet genau das ab: Das **Firmenkonto** ist der **Debitor**, die anmeldbaren Benutzer sind die **Kontakte** dieses Debitors – jeweils mit einer Rolle.

**Debitor & Kontakt – das Zusammenspiel**

```mermaid
flowchart TD
    D[Debitor = Firmenkonto in Shopware] --> K1[Kontakt A - Rolle: Freigabe]
    D --> K2[Kontakt B - Rolle: Besteller]
    D --> K3[Kontakt C - Rolle: Anzeige]
    K1 --> S[Anmeldbare B2B-Benutzer im Shop]
    K2 --> S
    K3 --> S
```

* Der **Debitor** muss als Web-Kunde hochgeladen sein – er bildet das Firmenkonto in Shopware.
* Jeder **Kontakt** des Debitors kann als eigener, anmeldbarer **B2B-Benutzer** übertragen werden.
* Die Zuordnung Kontakt → Firmenkonto erfolgt über die **Customer-ID** des Debitors; ist diese nicht eindeutig, wird die **E-Mail-Adresse** als Fallback verwendet.

{% hint style="info" %}
Grundlage bleibt immer der Debitor. Legen Sie also zuerst den Kunden-Upload an, bevor Sie Kontakte als B2B-Benutzer hochladen.
{% endhint %}

**Rollen**

<table data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Anzeige</strong></td><td>Darf sehen und zur Freigabe weitergeben.</td></tr><tr><td><strong>Besteller</strong></td><td>Darf sehen und Bestellungen anlegen.</td></tr><tr><td><strong>Freigabe</strong></td><td>Darf sehen, anlegen und freigeben.</td></tr></tbody></table>

Details zum Freigabeprozess: B2B-Rollen & Freigabeprozess.

**Einrichtung (Konfiguration)**

Im Bereich **B2B-Kontakte** der Shopware Konfiguration:

| Feld                                    | Bedeutung                                                        |
| --------------------------------------- | ---------------------------------------------------------------- |
| **Kontakte als B2B-Benutzer hochladen** | Master-Schalter der Funktion                                     |
| **B2B Sprach-ID**                       | Sprache neuer B2B-Benutzer                                       |
| **B2B-Rollen-ID (Anzeige)**             | Shopware-Rollen-ID für „Anzeige“                                 |
| **B2B-Rollen-ID (Besteller)**           | Shopware-Rollen-ID für „Besteller“                               |
| **B2B-Rollen-ID (Freigabe)**            | Shopware-Rollen-ID für „Freigabe“                                |
| **B2B E-Mail Ersatz-Domain**            | Domain für die Ersatz-E-Mail, falls der Kontakt keine E-Mail hat |

**Login-E-Mail (mit Fallback)**

* Primär wird die **E-Mail des Kontakts** als Login verwendet.
* Fehlt sie, bildet der Connector eine **Ersatzadresse** nach dem Muster `{KontaktNr}@{DebitorNr}.{Ersatz-Domain}`.

{% hint style="warning" %}
Ohne konfigurierte **Ersatz-Domain** können Kontakte ohne eigene E-Mail nicht angelegt werden. Hinterlegen Sie die Domain, wenn Sie auch Kontakte ohne E-Mail übertragen möchten.
{% endhint %}

**Ablauf**

{% stepper %}
{% step %}
**Debitor als Web-Kunde hochladen**

Setzen Sie **Web-Kunde = Ja** und führen Sie den Kunden-Upload aus. Der Debitor erhält eine Web-ID.
{% endstep %}

{% step %}
**Rollen zuordnen**

Weisen Sie den Kontakten die gewünschte Rolle (Anzeige, Besteller, Freigabe) zu.
{% endstep %}

{% step %}
**B2B-Benutzer hochladen**

Nutzen Sie **B2B-Benutzer hochladen** – verfügbar sowohl auf der **Debitorenkarte** (alle Kontakte) als auch auf der **Kontaktkarte** (einzelner Kontakt).
{% endstep %}

{% step %}
**Prüfen**

Mit **B2B-Benutzer prüfen (API)** lesen Sie den Benutzer aus Shopware zurück und verifizieren die Anlage.
{% endstep %}
{% endstepper %}

**Wo finde ich die Aktionen?**

| Ort                | Aktionen                                                       |
| ------------------ | -------------------------------------------------------------- |
| **Debitorenkarte** | B2B-Benutzer aller Kontakte hochladen, Aktivitätslog           |
| **Kontaktkarte**   | Rolle setzen, einzelnen B2B-Benutzer hochladen, per API prüfen |

{% hint style="info" %}
Ein Aktivitätslog auf den Kontakt-/Debitorenkarten hilft bei der Nachverfolgung der Uploads. Fehler erscheinen zusätzlich im Aktivitätsprotokoll.
{% endhint %}

**Troubleshooting**

<details>

<summary>B2B-Benutzer wird nicht angelegt</summary>

* Ist der **Debitor** als Web-Kunde hochgeladen (Web-ID vorhanden)?
* Ist **Kontakte als B2B-Benutzer hochladen** aktiviert?
* Sind die **Rollen-IDs** hinterlegt?
* Hat der Kontakt eine E-Mail – oder ist eine **Ersatz-Domain** konfiguriert?

</details>

<details>

<summary>Kontakt wird dem falschen Firmenkonto zugeordnet</summary>

Prüfen Sie die **Customer-ID**-Verknüpfung des Kontakts zum Debitor. Ist sie nicht eindeutig, greift der E-Mail-Fallback – achten Sie dann auf eindeutige E-Mail-Adressen.

</details>

<details>

<summary>Anmeldung im Shop funktioniert nicht</summary>

Die Login-E-Mail entspricht der Kontakt-E-Mail bzw. der gebildeten Ersatzadresse. Prüfen Sie, welche Adresse tatsächlich übertragen wurde (über **B2B-Benutzer prüfen (API)**).

</details>

**Verwandte Themen**

* Kunden-Upload (BC nach Shopware)
* B2B-Rollen & Freigabeprozess
* B2B-Shop aufsetzen
* Kundengruppen-Preise (Rules)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.solutioo.de/shopware/kundenverwaltung/b2b-benutzer-aus-kontakten.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
