# Bestellungen

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

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

## Ablauf

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

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

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

## 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 wird ebenfalls entfernt**
- 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)