# Kunden und Bestellungen

Kundendaten, B2B, Bestellabwicklung, Rückmeldungen und Gutschriften.

# Kunden

Kunden können in beide Richtungen entstehen: Bestehende SelectLine-Kunden werden in den
Shop übertragen, damit sie sich dort anmelden können. Und Kunden, die im Shop bestellen,
werden in der SelectLine angelegt.

Betreibt der Shop **Shopify Plus mit B2B**, entstehen statt einzelner Kunden
Unternehmen mit Kontakten — siehe [B2B mit Shopify Plus](https://wiki.dako-it.com/books/finnghost-fur-shopify/page/b2b-mit-shopify-plus).

## Kunden in den Shop übertragen

Die Aufgabe heißt *Exportiere Kunden*. Beim ersten Lauf werden alle Kunden mit gesetztem
Kundenkennzeichen übertragen, danach nur noch die geänderten.

### ShopAktiv-Feld

Das Kundenfeld, das bestimmt, ob der Kunde in den Shop gehört. Zu finden unter
**Shopify → Einstellungen → Kunden**.

### Shopkundennummer-Feld

In diesem SelectLine-Feld merkt sich FINN.ghost die Shopify-Kundennummer. Beim Anlegen
wird sie dort zurückgeschrieben.

<p class="callout warning">Dieses Feld ist die Verbindung zwischen beiden Systemen. Wird es geleert, verliert die Schnittstelle die Zuordnung und legt beim nächsten Lauf einen zweiten Kunden im Shop an.</p>

Zusätzlich lassen sich weitere Felder als **Suchfelder** hinterlegen. Der Bestellimport
sucht den Kunden dann auch dort — praktisch, wenn Shop-Kundennummern historisch in
verschiedenen Feldern gepflegt wurden.

## Pflichtangaben

Ein Kunde wird übersprungen, wenn keine gültige E-Mail-Adresse vorhanden ist.

<p class="callout info">Geprüft wird auf ein <code>@</code> und darauf, dass kein Leerzeichen enthalten ist. Die übersprungenen Kunden stehen im Protokoll und sind damit eine gute Arbeitsliste für die Datenpflege.</p>

## Was übertragen wird

| Im Shop                | Aus der SelectLine                     |
| ---------------------- | -------------------------------------- |
| Vor- und Nachname       | Kundenstamm                              |
| E-Mail                 | Kundenstamm                              |
| Telefon                | Telefon 1                                |
| Währung                | Währung des Kunden                        |
| Standardadresse        | Straße, PLZ, Ort, Land, Firma, Zusätze     |
| Metafelder             | Extrafelder der Hauptadresse aus dem CRM   |

### Neue Kunden zur Kontoerstellung einladen

Standardmäßig verschickt Shopify beim Anlegen keine Einladung. Mit dieser Einstellung
erhält der Kunde eine E-Mail, über die er sein Kundenkonto aktivieren kann.

## Kunden aus Bestellungen

Bestellt jemand im Shop, der in der SelectLine noch nicht existiert, wird er angelegt.
Als Vorlage dient der **Shopkunde** — dessen Vorbelegungen werden übernommen und mit den
Bestelldaten überschrieben.

Gesucht wird der bestehende Kunde in dieser Reihenfolge:

1. über das Shopkundennummer-Feld und die zusätzlichen Suchfelder
2. über die E-Mail-Adresse — im Kundenstamm und in den CRM-Adressen
3. kein Treffer: der Kunde wird neu angelegt

<p class="callout warning">Weil die E-Mail-Adresse als zweites Kriterium gilt, laufen zwei SelectLine-Kunden mit derselben E-Mail auf denselben Shop-Kunden zusammen. In Betrieben mit einer Sammeladresse für mehrere Ansprechpartner lohnt hier ein Blick.</p>

### Nummernkreis für neue Kunden

Ist ein Nummernkreis hinterlegt, erhalten neu angelegte Shop-Kunden eine Nummer daraus —
fortlaufend ab der höchsten bereits vergebenen. Damit bleiben Shop-Kunden im Kundenstamm
erkennbar.

## Sonderfälle

### Nur Bestellungen von bekannten Kunden importieren

Findet sich kein Kunde, bricht der Import dieser Bestellung mit einem Fehler ab, statt
einen Kunden anzulegen. Der Weg für Shops mit geschlossenem Kundenkreis.

### Kein Kundenkonto anlegen

Alle Bestellungen laufen auf den Shopkunden. Sinnvoll, wenn keine Kundenpflege im ERP
gewünscht ist.

### Marktplatzbestellungen als Gastbestellungen anlegen

Bestellungen, die nicht aus dem Webshop kommen — Amazon, eBay, Kaufland —, laufen auf
den Shopkunden statt auf einen eigenen Kunden.

### Kunden in SL nicht aktualisieren

Bestehende Kunden werden beim Bestellimport nicht überschrieben. Sinnvoll, wenn die
Kundendaten im ERP als führend gelten.

### Adresse des Shopkunden verwenden

Der Beleg erhält die Adresse des Shopkunden statt der Adresse aus der Bestellung. Die
Lieferadresse aus der Bestellung wird dabei trotzdem gesetzt.

### Kundenadresse aus SL in Beleg verwenden

Umgekehrt: Der Beleg erhält die im Kundenstamm gepflegte Adresse, nicht die
Rechnungsadresse aus der Bestellung.

### Kassenbestellungen

Bestellungen aus dem Shopify-Kassensystem laufen immer auf den Shopkunden und erhalten
im Beleg den Namen *POS Kunde*.

### Shopkunde je Herkunft oder Tag

Der Shopkunde lässt sich je Verkaufskanal — Web, Amazon, eBay — und je Bestell-Tag
unterschiedlich festlegen. Damit landen Marktplatzbestellungen auf eigenen Sammelkunden
und sind in der Auswertung trennbar.

## Weiter

- [B2B mit Shopify Plus](https://wiki.dako-it.com/books/finnghost-fur-shopify/page/b2b-mit-shopify-plus)
- [Bestellungen](https://wiki.dako-it.com/books/finnghost-fur-shopify/page/bestellungen)

# B2B mit Shopify Plus

Shopify Plus kennt neben Endkunden auch **Unternehmen** mit mehreren Ansprechpartnern,
eigenen Adressen und Zahlungszielen. Ist B2B eingeschaltet, überträgt FINN.ghost die
SelectLine-Kunden als Unternehmen statt als einzelne Kunden.

<p class="callout info">Die Umschaltung erfolgt über eine Einstellung. Sie verändert das Verhalten des Kundenexports vollständig — vorher angelegte Einzelkunden bleiben unberührt im Shop stehen.</p>

<!-- TODO Screenshot: images/b2b-unternehmen.png -->

## Was aus einem Kunden wird

| Im Shop                     | Aus der SelectLine                        |
| --------------------------- | ----------------------------------------- |
| Unternehmen                 | Kunde, Name aus Firma oder Nachname          |
| Externe ID                  | Kundennummer                                 |
| Steuernummer                | USt-IdNr.                                     |
| Rechnungsadresse            | Adresse des Kunden                            |
| Lieferadresse               | Standardlieferadresse, sonst Rechnungsadresse   |
| Kontakte                    | CRM-Adressen zur Hauptadresse des Kunden        |
| Metafelder                  | Extrafelder des Kunden                          |

### Pflichtangaben

Straße und Land sind Pflicht, außerdem Firma oder Nachname. Fehlt eines davon, bricht
der Export dieses Kunden mit einer Meldung ab.

## Kontakte und Rollen

Jede CRM-Adresse zur Hauptadresse des Kunden wird ein Firmenkontakt. Erforderlich sind
E-Mail sowie Vor- oder Nachname; andere werden übersprungen und im Protokoll vermerkt.

Die Rollen setzt FINN.ghost so:

| Rolle im Shop      | Wer                                              |
| ------------------ | ------------------------------------------------ |
| Location admin     | der Standardansprechpartner des Kunden             |
| Ordering only      | alle weiteren Kontakte                             |

Der Standardansprechpartner wird zusätzlich als Hauptansprechpartner des Unternehmens
gesetzt.

<p class="callout warning">Ist der Kunde inaktiv oder das Kundenkennzeichen nicht gesetzt, werden allen Kontakten die Rollen <strong>entzogen</strong>. Die Kontakte bleiben bestehen, können sich aber nicht mehr anmelden und nicht mehr bestellen. Das ist der Weg, einen B2B-Kunden zu sperren.</p>

## Entfallene Kontakte

Wird eine CRM-Adresse in der SelectLine gelöscht, räumt FINN.ghost im Shop auf:

- Kontakt **ohne** Bestellungen: wird gelöscht.
- Kontakt **mit** Bestellungen: behält den Datensatz, verliert aber alle Rollen.

<p class="callout info">Damit bleibt die Bestellhistorie erhalten und der Zugang ist trotzdem entzogen.</p>

## Wenn die E-Mail schon vergeben ist

Existiert im Shop bereits ein Endkunde mit derselben E-Mail-Adresse, kann kein neuer
Firmenkontakt entstehen. FINN.ghost erkennt das, sucht den bestehenden Kunden und
**verknüpft** ihn als Kontakt mit dem Unternehmen.

## Einkaufserlebnis

Drei Einstellungen bestimmen, wie B2B-Kunden im Shop bestellen:

### Bestellung als Entwurf

Der Warenkorb wird nicht direkt zur Bestellung, sondern zu einem Bestellentwurf, der erst
geprüft und freigegeben wird.

### Lieferadresse bearbeitbar

Legt fest, ob der Kunde beim Bestellen von der hinterlegten Lieferadresse abweichen darf.

### Zahlungsbedingungsvorlage

Die Shopify-Zahlungsbedingungsvorlage, die für das Unternehmen gilt — etwa
„Zahlung innerhalb 30 Tagen".

## Bestellungen von Unternehmen

Bei B2B-Bestellungen entfällt die Prüfung auf vollständige Bezahlung, weil mit
Zahlungsziel gearbeitet wird.

FINN.ghost übernimmt zusätzlich:

- die **Rechnungsadresse des Unternehmensstandorts** anstelle der Adresse aus der
  Bestellung
- die **Steuernummer** des Standorts, was die Kontengruppe für EU-Ausland beeinflusst
- den **Ansprechpartner** im Beleg, ermittelt über den Firmenkontakt der Bestellung

<p class="callout danger">Ist der Kunde in der SelectLine inaktiv oder das Kundenkennzeichen nicht gesetzt, wird die Bestellung <strong>nicht</strong> importiert. Im Protokoll steht der Hinweis, dass der Kunde inaktiv ist. Das verhindert, dass gesperrte Kunden über den Shop weiter bestellen.</p>

## Weiter

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

# Bestellungen

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

<!-- TODO Screenshot: images/bestellung-beleg.png -->

## Welche Bestellungen abgeholt werden

Geholt wird, was sich seit dem letzten Lauf **geändert** hat — unabhängig vom Status.
Anschließend prüft FINN.ghost je Bestellung, ob sie importiert werden kann.

Eine Bestellung wird übersprungen, wenn:

| Grund                                       | Hinweis                                                  |
| ------------------------------------------- | -------------------------------------------------------- |
| Tag `ImportError`                            | ein früherer Import ist gescheitert                        |
| Tag `ImportIgnore`                           | bewusst vom Import ausgenommen                             |
| offener Betrag ungleich 0                    | noch nicht bezahlt, außer bei *Import* oder B2B              |
| keine Positionen                             | leere Bestellung                                            |
| kein Kunde                                   | außer bei Kassenbestellungen                                 |
| keine Adressen                               | außer bei Kassenbestellungen                                 |
| Beleg existiert bereits                      | erkannt über die Bestellnummer im Beleg                       |

### Die Tags ImportError und ImportIgnore

<p class="callout danger">Scheitert ein Import, setzt FINN.ghost am Shopify-Auftrag den Tag <code>ImportError</code> und versucht ihn nie wieder. Das verhindert Endlosschleifen — bedeutet aber, dass die Bestellung liegen bleibt, bis jemand eingreift.</p>

Vorgehen bei `ImportError`: Ursache im Protokoll nachlesen, in der SelectLine beheben,
dann **den Tag im Shopify-Adminbereich entfernen**. Beim nächsten Lauf wird die Bestellung
erneut versucht.

Mit `ImportIgnore` lässt sich eine Bestellung dauerhaft ausnehmen — etwa eine
Testbestellung.

## Welcher Beleg entsteht

Der Belegtyp richtet sich nach der Zahlungsart: Vorkasse-Zahlarten gehen in den
Vorkasse-Belegtyp, alle anderen in den Bestell-Belegtyp.

Der Beleg trägt die Kennung `sfy_<Bestellnummer>_<interne ID>` im dafür eingestellten
Feld, üblicherweise **Ihr Auftrag**. Daran erkennt die Schnittstelle den Beleg später
wieder.

<p class="callout warning">Dieses Feld darf an Shop-Belegen nicht verändert werden. Ohne die Kennung findet die Schnittstelle den Beleg nicht mehr und meldet Versand und Zahlung nicht zurück.</p>

## Was im Belegkopf landet

| Im Beleg                  | Aus der Bestellung                                    |
| ------------------------- | ----------------------------------------------------- |
| Ihr Auftrag               | `sfy_<Bestellnummer>_<ID>`                              |
| Kunde und Rechnungsadresse | Rechnungsadresse, bei B2B die des Unternehmensstandorts   |
| Lieferadresse             | nur wenn sie von der Rechnungsadresse abweicht             |
| Währung                   | Shop-Währung oder Kundenwährung                            |
| Preistyp                  | brutto, wenn die Bestellung Steuer enthält                  |
| Zahlungsbedingung, Bankbezug | über die Zuordnung der Zahlungsarten                     |
| Lieferbedingung           | über die Zuordnung der Versandarten                         |
| Zahlungsreferenz          | Autorisierung der erfolgreichen Transaktion                  |
| Kopf- oder Fußtext        | Notiz aus der Bestellung                                     |
| Sprache                   | über die Sprachzuordnung                                     |
| Lager und Lagerplatz      | bei echter Standorttrennung aus dem Fulfillment               |
| Auftragsdatum             | Bestelldatum, auf Wunsch mit Uhrzeit                          |

Zusätzlich lassen sich E-Mail-Adresse und Telefonnummer in eigene Belegfelder schreiben,
und Shopify-Metafelder der Bestellung auf Belegfelder abbilden.

### Zu lange Adressen

Die SelectLine begrenzt die Feldlängen: Nachname und Firma 80, Vorname 40, PLZ 10,
Telefon 30 Zeichen.

<p class="callout danger">Standardmäßig <strong>bricht der Import ab</strong>, wenn eine Angabe zu lang ist. Hinterlegt man ein Feld für zu lange Adressen, wird stattdessen gekürzt und der vollständige Originalwert in dieses Belegfeld geschrieben. Das ist die empfehlenswerte Einstellung — sonst bleiben Bestellungen mit langen Firmennamen dauerhaft liegen.</p>

## Marktplatzbestellungen

Bei Bestellungen über Amazon, eBay oder Kaufland liest FINN.ghost die
Marktplatz-Bestellnummer aus den Bestellattributen und schreibt sie in ein eigenes
Belegfeld. Damit lässt sich der Beleg der Marktplatzbestellung zuordnen.

## Positionen

Jede Position der Bestellung wird zu einer Belegposition. Die Artikelnummer wird über den
[Cache](https://wiki.dako-it.com/books/finnghost-fur-shopify/page/der-cache) zur Shopify-Variante ermittelt, im Zweifel über die SKU.

<p class="callout danger">Findet sich die Artikelnummer nicht, wird die Bestellung mit dem Tag <code>ImportError</code> versehen und übersprungen. Im Protokoll steht der Hinweis, den Cache zu erneuern. Das ist der häufigste Grund für gescheiterte Importe.</p>

### Rabatte

Rabatte werden auf den Promotion-Artikel gebucht, mit Bezeichnung und Rabattcode. Über
*Rabattpositionen aufsummieren pro Rabattcode* entsteht statt vieler kleiner Zeilen eine
Position je Code.

### Geschenkkarten

Mit Geschenkkarte bezahlte Anteile werden ebenfalls als Rabattposition gebucht, mit den
letzten Zeichen der Karte in der Bezeichnung, Steuer 0.

### Positionsbezeichnung aus dem Shop

Über eine Einstellung lässt sich die Bezeichnung aus der Bestellung als
Positionsbezeichnung übernehmen, statt der Artikelbezeichnung aus der SelectLine.

## Versandkosten

Die Versandkosten werden **anteilig nach Steuersatz verteilt** — siehe
[Zahlungs- und Versandarten](https://wiki.dako-it.com/books/finnghost-fur-shopify/page/zahlungs-und-versandarten). Rabatte auf die Versandkosten werden
vorher abgezogen.

## Nach der Beleganlage

### Positionsprüfung

FINN.ghost vergleicht, wie viele Positionen übergeben wurden und wie viele im Beleg
angekommen sind. Bei Abweichung gilt der Import als gescheitert.

<p class="callout info">Diese Prüfung fängt den Fall, dass die SelectLine eine Position stillschweigend verwirft — etwa wegen eines gesperrten Artikels. Ohne sie hätte man einen zu günstigen Beleg, ohne es zu merken.</p>

### Konten der Rabattpositionen

Rabattpositionen erhalten das je Steuersatz eingestellte Erlöskonto. Ohne diese Angabe
übernehmen sie Konto und Steuer der vorangehenden Artikelposition.

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

### Makro

Nach dem Aufbau des Belegs läuft das Makro *Bestellung angelegt*, mit Belegtyp und
Belegnummer als Parameter.

## Wenn beim Import etwas schiefgeht

Jede Bestellung wird für sich verarbeitet. Läuft eine auf einen Fehler, wird der
angefangene Beleg **gelöscht**, die Bestellung mit `ImportError` markiert und die nächste
bearbeitet.

Ein Sonderfall wird eigens behandelt: Hat der Kunde eine **Belegsperre**, erscheint eine
verständliche Meldung mit Kundennummer und Name, statt eines technischen Fehlers.

## Weiter

[Versand und Rückmeldungen](https://wiki.dako-it.com/books/finnghost-fur-shopify/page/versand-und-ruckmeldungen)

# Versand und Rückmeldungen

Nach dem Bestellimport melden drei weitere Schritte den Fortschritt zurück in den Shop.
Sie laufen am Ende derselben Aufgabe *Bestellungen importieren*.

1. Versand und Trackingnummern
2. Bestelländerungen aus der SelectLine
3. Zahlungseingang bei Vorkasse

Berücksichtigt werden nur Belege, die aus dem Shop stammen. Von Hand erfasste Belege
bleiben unberührt.

<!-- TODO Screenshot: images/rueckmeldung-kundenkonto.png -->

## Versand melden

Erreicht ein Beleg den **Belegtyp Versand** und wird gedruckt, meldet FINN.ghost die
Bestellung im Shop als versendet und übergibt Paketnummer, Transportdienstleister und
Sendungsverfolgungslink.

Erkannt wird der Versand über den Druckvorgang. Zusätzlich lösen neu erfasste
Paketnummern eine Meldung aus, auch wenn der Beleg schon vorher gedruckt wurde.

### Nur Lieferstatus senden, wenn Paketnummer vorhanden

Meldet erst, wenn eine Paketnummer vorliegt. Findet sich am Versandbeleg keine, sucht
FINN.ghost in den Vorgängerbelegen.

### Kunde über Versand informieren

Legt fest, ob Shopify die Versandbenachrichtigung verschickt. Voreingestellt ist **aus**.

<p class="callout info">Gemeldet wird gegen das erste offene Fulfillment der Bestellung. Ist keines offen — etwa weil im Shop schon manuell versendet wurde —, unterbleibt die Meldung und das Protokoll weist darauf hin.</p>

## Trackingnummern stattdessen importieren

Läuft der Versand über Shopify, kehrt die Einstellung *Trackingnummern importieren* die
Richtung um: FINN.ghost prüft die Shop-Bestellungen und erzeugt zu vollständig
versendeten Bestellungen den **Versandbeleg als Nachfolger** in der SelectLine. Die
Trackingnummern kommen in die Paketverwaltung.

Storniert der Shop eine Bestellung, entsteht der Versandbeleg ebenfalls, damit die
Belegkette schlüssig bleibt.

<p class="callout warning">Beide Richtungen schließen sich aus. Ist der Import aktiv, wird kein Versand mehr an Shopify gemeldet.</p>

## Bestelländerungen an Shopify zurückmelden

Ist ein **Belegtyp Bestelländerungen** hinterlegt, überträgt FINN.ghost Änderungen aus
der SelectLine zurück in die Shopify-Bestellung.

Abgeglichen werden:

| Änderung in der SelectLine        | Wirkung in Shopify                          |
| --------------------------------- | ------------------------------------------- |
| Menge geändert                     | Positionsmenge wird angepasst                 |
| Position entfernt                  | Menge wird auf 0 gesetzt, Ware eingebucht      |
| Position hinzugefügt               | Artikel wird zur Bestellung hinzugefügt         |
| Versandkosten geändert             | Versandposition wird ersetzt                    |

<p class="callout danger">Das ist die einzige Stelle, an der die Schnittstelle eine Bestellung im Shop inhaltlich verändert. Der Kunde sieht die geänderte Bestellung in seinem Konto, und Shopify bucht bei entfernten Mengen den Bestand zurück. Wer das nicht möchte, lässt den Belegtyp leer.</p>

Berücksichtigt werden nur Belege, die **nicht** von der Schnittstelle selbst bearbeitet
wurden — eigene Änderungen lösen also keine Rückmeldung aus. Und nur, wenn sich
tatsächlich etwas geändert hat.

<p class="callout info">Rabattpositionen bleiben außen vor. Sie entstehen aus Shopify-Rabatten und würden beim Zurückschreiben doppelt gezählt.</p>

## Zahlungseingang bei Vorkasse

Ist ein Vorkassebeleg in der SelectLine als gezahlt verbucht, markiert FINN.ghost die
Bestellung im Shop als bezahlt. Der Kunde sieht, dass seine Überweisung angekommen ist.

## Erster Lauf nach der Einrichtung

Beim allerersten Lauf wird nichts rückwirkend gemeldet. Die Schnittstelle merkt sich ab
diesem Zeitpunkt, was neu ist.

<p class="callout info">Das ist Absicht: Sonst würde die Inbetriebnahme alle historischen Belege an den Shop melden und Kunden alte Versandbestätigungen erhalten.</p>

## Weiter

[Gutschriften und Storni](https://wiki.dako-it.com/books/finnghost-fur-shopify/page/gutschriften-und-storni)

# Gutschriften und Storni

Erstattet man im Shopify-Adminbereich einen Betrag oder storniert eine Bestellung, kann
FINN.ghost daraus in der SelectLine die passende Belegkette erzeugen: Rechnung als
Vorgänger und darauf die Gutschrift.

<p class="callout warning">Diese Verarbeitung ist standardmäßig <strong>ausgeschaltet</strong>. Sie greift tief in die Belegkette ein und erzeugt Belege ohne weitere Rückfrage. Vor dem Einschalten sollte der Ablauf mit dem Support besprochen und in einem Testmandanten geprüft werden.</p>

## Was passiert

Zu jeder Rückerstattung im Shop:

1. Existiert noch keine **Rechnung** zur Bestellung, wird sie als Nachfolger des Auftrags
   erzeugt — mit genau den erstatteten Positionen und Mengen.
2. Darauf entsteht eine **Gutschrift**, verknüpft als Nachfolger der Rechnung.
3. Die Gutschrift erhält die Shopify-Erstattungsnummer im Feld *Ihr Zeichen*, die
   Zahlungsreferenz der Erstattung und die Notiz aus dem Shop als Kopftext.

Sind damit **alle** Positionen der Rechnung gutgeschrieben, werden zusätzlich die
Versandkosten gutgeschrieben.

<p class="callout info">Über <em>Ihr Zeichen</em> erkennt FINN.ghost eine bereits verarbeitete Erstattung. Eine Erstattung wird deshalb nie doppelt gutgeschrieben, auch wenn die Bestellung mehrfach abgeholt wird.</p>

## Zwei Belegtypen für Gutschriften

| Fall                                        | Belegtyp                          |
| ------------------------------------------- | --------------------------------- |
| Ware wird zurück ins Lager gebucht           | Belegtyp Gutschrift                 |
| Ware wird nicht zurückgebucht                | Belegtyp Gutschrift ohne Einlagerung  |

Shopify unterscheidet beim Erstatten, ob die Ware wieder eingelagert wird. Ist ein
zweiter Belegtyp hinterlegt, folgt FINN.ghost dieser Unterscheidung — sonst gilt für
beide Fälle derselbe Belegtyp.

## Wann geprüft wird

Auf Erstattungen wird geprüft, wenn eine Bestellung **vollständig storniert** ist — also
alle Positionen zurückgegeben oder eingelagert wurden. Zusätzlich beim Import der
Trackingnummern, falls dieser Weg aktiv ist.

## Voraussetzungen und Grenzen

<p class="callout danger">Die erstatteten Positionen müssen im Auftrag mit ausreichender offener Menge vorhanden sein. Ist eine Position dort nicht auffindbar — etwa weil sie in der SelectLine gelöscht oder bereits vollständig verwendet wurde —, bricht die Verarbeitung mit einer Meldung ab und es entsteht keine Gutschrift.</p>

Weitere Punkte:

- Erstattungen **ohne Positionen** — etwa eine reine Betragserstattung als Kulanz — werden
  übersprungen und im Protokoll vermerkt. Solche Fälle müssen in der SelectLine von Hand
  gebucht werden.
- Serien- und Chargennummern sowie Lager und Lagerplatz werden aus dem Lagerprotokoll der
  Ursprungsposition übernommen.
- Teilerstattungen sind möglich; es wird die erstattete Menge verwendet.

## Empfehlung

Für die meisten Betriebe ist der sinnvolle Weg, Gutschriften in der SelectLine zu buchen
und im Shop nur die Zahlung zu erstatten. Die automatische Verarbeitung lohnt sich vor
allem bei hohem Retourenvolumen und sauber geführten Belegketten.

## Weiter

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