# Kunden und Belege

Kundendaten, Bestellungen aus dem Shop, Belege im Kundenkonto und Newsletter.

# Kunden

Kunden können in beide Richtungen entstehen: Bestehende SelectLine-Kunden werden in den
Shop übertragen, damit sie sich dort anmelden und ihre Preise sehen. Und wer im Shop
bestellt, wird in der SelectLine angelegt.

## Kunden in den Shop übertragen

| Aufgabe                        | Umfang                                                   |
| ------------------------------ | -------------------------------------------------------- |
| Kunden exportieren             | alle freigegebenen Kunden                                   |
| Kunden exportieren (geändert)   | Kunden, die seit dem letzten Lauf angelegt oder bearbeitet wurden |

Übertragen wird ein Kunde, wenn das **ShopAktiv-Feld (Kunde)** gesetzt und der Kunde nicht
inaktiv ist.

### Kundengruppen

Ist unter **Übertragung** eine Auswahl von Kundengruppen gepflegt, werden **nur** Kunden
dieser Gruppen übertragen. Damit lässt sich der Shop auf einen Teil des Kundenstamms
beschränken, etwa auf Händler.

## Was übertragen wird

| Im Shop                | Aus der SelectLine                                    |
| ---------------------- | ----------------------------------------------------- |
| Kundenstammdaten       | wie in der SelectLine geführt                            |
| Weitere Adressen       | alle Adressen des Kunden, mit Anrede und Kontaktdaten     |
| Interessentenverweis   | falls der Kunde aus einem Interessenten entstanden ist      |
| Extrafelder            | alle Extrafelder des Kundenstamms                           |
| Bilder                 | Bilder zum Kunden                                            |

<p class="callout info">Anders als bei Fremdplattformen gibt es hier keine Pflichtfeldprüfung auf Vor- und Nachnamen: Der Shop kennt die SelectLine-Struktur und kommt auch mit reinen Firmenadressen zurecht.</p>

Vor dem Kundenexport überträgt FINN.ghost die Zusatzdaten mit — Merkmale, Rabattgruppen,
Mengenrabatte, Kalkulationsschemata. Der Shop braucht sie, um die Preise des Kunden zu
rechnen.

## Kunden aus Bestellungen

Bestellt jemand im Shop, der in der SelectLine noch nicht existiert, entsteht abhängig vom
**Neukunden-Typ** ein Kunde oder ein Interessent — siehe
[Belege und Neukunden](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/belege-und-neukunden).

Als Vorlage dient der **Shopkunde**, den der Shop zur Bestellung mitschickt. Dessen
Vorbelegungen werden übernommen und mit den Bestelldaten überschrieben.

| Herkunft           | Felder                                                                                                   |
| ------------------ | -------------------------------------------------------------------------------------------------------- |
| Vorlage            | Zahlungsbedingung, Preis- und Rabattgruppe, Preistyp, Kreditlimit, Sperren, Mindestbestellwert, Währung, Kostenstelle, Preisverweis, Beleg- und Lieferdaten |
| Bestellung         | Name, Firma, Anschrift, Kontaktdaten, Steuernummer und Steuer-ID                                            |
| keins von beiden   | Fibukonto und Rechnungsempfänger (gehören zum einzelnen Kunden), Shop-Passwort der Vorlage                   |

<p class="callout info">Ist am Musterkunden kein Preisverweis gepflegt, setzt FINN.ghost den Shopkunden selbst als Preisverweis. Der neue Kunde bekommt damit von Anfang an die Preise, die für Shop-Kunden gelten.</p>

<p class="callout warning">Was am Shopkunden gepflegt ist, bekommt jeder Neukunde aus dem Shop — also auch Sperren oder ein Kreditlimit. Den Shopkunden deshalb als reine Vorlage pflegen. Für Interessenten gilt das nicht: Sie erhalten die Zahlungsdaten aus den Vorgaben der SelectLine.</p>

Sobald die Bestellung vollständig übernommen ist, wird der neue Kunde in den Shop
zurückübertragen, damit dort Kundennummer und Preise sofort stimmen. Scheitert der Import,
wird der Kunde in der SelectLine wieder entfernt und kommt gar nicht erst in den Shop.

Ohne Firma und Name legt FINN.ghost keinen Kunden an — die Bestellung bleibt dann offen und
erscheint mit einer Meldung im Protokoll.

## Newsletter

Die Aufgabe *Newsletteradressen importieren* holt die Newsletter-Anmeldungen aus dem Shop
und pflegt sie in der SelectLine als CRM-Stichwort.

Dabei entstehen bei Bedarf die Stichwortgruppe **FINN.webshop** und das Stichwort
**Newsletter**. Anschließend werden die Verknüpfungen neu aufgebaut.

<p class="callout info">Zu einer E-Mail-Adresse, die in der SelectLine noch nicht existiert, wird eine Adresse angelegt — damit die Anmeldung nicht verloren geht.</p>

<p class="callout warning">Kommt eine E-Mail-Adresse im Kundenstamm mehrfach vor, wird sie übersprungen und im Protokoll gemeldet: Die Zuordnung wäre nicht eindeutig. Solche Doppelten lohnt es sich aufzuräumen.</p>

Die Verknüpfungen werden bei jedem Lauf vollständig neu gesetzt. Wer sich im Shop abmeldet,
verliert damit auch das Stichwort in der SelectLine.

## Weiter

[Bestellungen](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/bestellungen)

# Bestellungen

Die Aufgabe **neue Belege importieren** holt Bestellungen und Anfragen aus dem Shop und
legt sie als Beleg in der SelectLine an.

## Ablauf

FINN.ghost fragt den Shop nach offenen Belegen. Zu jedem:

1. Vollständigkeit prüfen: Belegnummer, Belegtyp und mindestens eine Position
2. Kunde oder Interessent ermitteln, gegebenenfalls anlegen
3. Belegtyp bestimmen — siehe [Belege und Neukunden](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/belege-und-neukunden)
4. Belegkopf mit Rechnungs- und Lieferadresse anlegen
5. Positionen anlegen, in der richtigen Reihenfolge
6. Makro *Bestellung angelegt* ausführen
7. Beleg an den Shop zurückmelden
8. Einen neu angelegten Kunden in den Shop übertragen

<p class="callout info">Der Shop erhält den fertigen Beleg mit Belegnummer zurück und markiert die Bestellung als übernommen. Sie wird deshalb nicht doppelt geholt.</p>

<p class="callout warning">Eine unvollständige Bestellung wird nicht importiert — es entsteht auch kein Kunde dazu. Zeilen ganz ohne Belegnummer liefert der Shop gar nicht erst aus; fehlen Belegtyp oder Positionen, steht bei jedem Lauf eine Meldung im Protokoll. Ebenso legt FINN.ghost keinen Neukunden ohne Firma und Name an.</p>

## Was im Belegkopf landet

| Im Beleg                    | Aus der Bestellung                                     |
| --------------------------- | ------------------------------------------------------ |
| Ihr Auftrag                 | Belegnummer aus dem Shop                                 |
| Kunde und Rechnungsadresse   | Adresse aus dem Shop                                     |
| Lieferadresse               | abweichende Lieferadresse mit Kontaktdaten                 |
| Zahlungsbedingung           | über die Bezeichnung, die der Shop mitschickt                |
| Zahlungsreferenz            | Referenz des Zahlungsdienstleisters                          |
| Währungsfaktor              | bei Fremdwährung                                             |
| Kopftext                    | Bemerkung des Kunden aus dem Shop                             |
| Freier Text 1               | Bezeichnung der gewählten Zahlungsart                          |

<p class="callout info">Bestellt jemand als Gast über den Shopkunden, schreibt FINN.ghost E-Mail und Telefonnummer zusätzlich in ein freies Belegfeld — sonst wären die Kontaktdaten des Bestellers nirgends am Beleg zu finden.</p>

<p class="callout warning">Lässt sich zur mitgeschickten Zahlungsart keine Zahlungsbedingung ermitteln, bleibt der Beleg ohne Zahlungsbedingung. Im Protokoll steht ein Hinweis mit der Bezeichnung — meist eine Abweichung zwischen Shop-Bezeichnung und SelectLine-Bezeichnung.</p>

## Positionen

Der Shop schickt die Positionen mit allen Angaben, die die SelectLine kennt: Menge,
Einzelpreis, Rabatte, Mengeneinheit, Preiseinheit, Termin, Lager, Kostenstelle,
Kostenträger und die freien Felder.

Besonderheit sind die abhängigen Positionen:

| Art               | Behandlung                                                     |
| ----------------- | -------------------------------------------------------------- |
| Zuschlagartikel    | wird als Zuschlag zur Hauptposition angelegt                      |
| Zubehörartikel     | wird als Zubehör zur Hauptposition angelegt                        |

<p class="callout info">FINN.ghost sortiert die Positionen so, dass Hauptpositionen vor ihren abhängigen Positionen entstehen — sonst gäbe es die Hauptposition noch nicht, an die der Zuschlag gehört. Beim Zubehör wird zusätzlich die Mengenaktualisierung aus dem Artikelstamm übernommen.</p>

## Fertigungsaufträge

Ist in der SelectLine eingestellt, dass beim Speichern Fertigungsaufträge entstehen,
erzeugt FINN.ghost zu Positionen mit Arbeitsplan einen Fertigungsauftrag und verknüpft ihn
mit der Belegposition.

## Wenn beim Import etwas schiefgeht

Jeder Beleg wird für sich verarbeitet. Läuft einer auf einen Fehler:

- der angefangene Beleg wird **gelöscht**
- ein in diesem Zug **neu angelegter Kunde oder Interessent wird ebenfalls entfernt** — in
  den Shop war er zu diesem Zeitpunkt noch nicht übertragen
- der Fehler steht im Protokoll, der nächste Beleg wird bearbeitet

<p class="callout info">Weil der Beleg im Shop erst nach Erfolg als übernommen markiert wird, bleibt eine gescheiterte Bestellung offen und wird beim nächsten Lauf erneut versucht. Anders als bei Fremdplattformen geht dadurch keine Bestellung verloren — sie wiederholt sich, bis die Ursache behoben ist.</p>

<p class="callout warning">Das hat eine Kehrseite: Eine Bestellung mit einem dauerhaften Problem — etwa einem gesperrten Kunden — erscheint bei <strong>jedem</strong> Lauf erneut im Protokoll. Wiederkehrende Meldungen sind daher ein Hinweis, dass jemand eingreifen muss.</p>

## Belegstatus zurückmelden

Nach dem Import läuft immer auch der Statusexport: Der Bearbeitungsstatus aller kürzlich
geänderten Belege geht in den Shop, sodass der Kunde im Konto sieht, wie weit sein Auftrag
ist.

## Weiter

[Zeitplan der Übertragungen](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/zeitplan-der-ubertragungen)

# Belege im Kundenkonto

Damit Kunden ihre Aufträge, Lieferscheine und Rechnungen online einsehen können, überträgt
FINN.ghost Belege aus der SelectLine in den Shop.

## Welche Belege übertragen werden

Die Aufgabe *geänderte Belege exportieren* arbeitet die unter
[Belege und Neukunden](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/belege-und-neukunden) ausgewählten Belegtypen ab. Zu jedem Typ überträgt sie
jeden Beleg, der seit dem letzten Lauf angelegt oder bearbeitet wurde — **samt Positionen**.

Dabei gehen nur Belege von Kunden mit, die selbst in den Shop übertragen werden: Das
**ShopAktiv-Feld (Kunde)** ist gesetzt, der Kunde ist nicht inaktiv und gehört, falls eine
Auswahl gepflegt ist, zu einer der Kundengruppen — dieselben Regeln wie bei den
[Kunden](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/kunden). Belege aller übrigen Kunden könnte im Shop ohnehin niemand einsehen.

<p class="callout info">Der Zeitpunkt des letzten Laufs wird je Belegtyp getrennt geführt. Nimmt man später einen weiteren Belegtyp in die Liste auf, beginnt für diesen die Übertragung neu — bestehende Belege dieses Typs werden also nachgeholt.</p>

<p class="callout warning">Lässt sich ein Beleg nicht übertragen, steht der Fehler mit Belegtyp und Belegnummer im Protokoll; die übrigen Belege gehen trotzdem in den Shop. Der Zeitpunkt des letzten Laufs bleibt in diesem Fall stehen, sodass der nächste Lauf alle Belege seitdem erneut schickt — bis die Ursache behoben ist.</p>

<p class="callout danger">Hier gehen vollständige Belege in den Shop. Die Auswahl der Belegtypen bestimmt damit, was Ihre Kunden online sehen. Belegarten aus dem Einkauf und interne Belegarten gehören nicht in diese Liste.</p>

## Der Belegstatus

Getrennt davon läuft die Aufgabe *Status exportieren*. Sie meldet Belegtyp, Belegnummer und
Bearbeitungsstatus, damit der Kunde den Fortschritt seines Auftrags sieht.

Sie läuft außerdem automatisch am Ende jedes Belegimports.

<p class="callout warning">Der Statusexport ist nicht auf die Belege des Shops beschränkt: Er meldet den Status <strong>aller</strong> Belege, die seit dem letzten Lauf angelegt oder bearbeitet wurden. Bei einem Mandanten mit hohem Belegvolumen ist das eine größere Datenmenge, als man erwarten würde. In der Regel unproblematisch, weil nur drei Felder je Beleg übertragen werden — bei der Wahl des Intervalls aber zu bedenken.</p>

## Paketnummern

Mit der Einstellung *Paket-Tabelle exportieren* geht zusätzlich die Paketverwaltung mit —
Paketnummer, Gewicht und Sendungsverfolgung je Beleg. Der Shop kann damit im Kundenkonto
einen Verfolgungslink anzeigen.

Die Übertragung läuft mit der Aufgabe *Stammdaten synchronisieren*.

<p class="callout info">Weil die Paketdaten am Stammdatenlauf hängen, sollte dieser regelmäßig laufen, wenn Kunden ihre Sendungsverfolgung zeitnah sehen sollen — nicht nur einmal nachts.</p>

## Was sonst noch als Stammdaten mitgeht

Der Stammdatenlauf überträgt alles, was der Shop zum Darstellen und Rechnen von Belegen
braucht:

| Bereich                    | Zweck im Shop                                    |
| -------------------------- | ------------------------------------------------ |
| Lieferanten mit Bildern     | Herstellerangaben am Artikel                        |
| Mitarbeiter                | Ansprechpartner am Beleg                            |
| Kostenstellen              | Auswahl bei der Bestellung                           |
| Steuerschlüssel und -details | Steuerberechnung                                    |
| Zahlungsbedingungen        | Auswahl und Anzeige im Bestellvorgang                 |
| Lieferbedingungen          | Versandarten samt Versandartikel und Berechnung        |

## Weiter

[Zeitplan der Übertragungen](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/zeitplan-der-ubertragungen)