# SelectLine-Makros

An vier Stellen kann das Modul ein SelectLine-Makro ausführen. Die Felder liegen unter
**FINN.webshop → Einstellungen → Makros**.

<!-- TODO Screenshot: images/einrichtung-makros.png -->

## Bestellung angelegt

Läuft, nachdem der Beleg mit allen Positionen aufgebaut ist. Übergeben werden **Belegtyp**
und **Belegnummer**.

Das ist der Platz für alles, was mit einem fertigen Shop-Beleg passieren soll:
Kommissionierung anstoßen, Zusatzfelder befüllen, Belege drucken, eigene Prüfungen laufen
lassen.

<p class="callout info">Das Makro läuft, bevor der Beleg an den Shop zurückgemeldet wird. Ändert es den Beleg, kommt der geänderte Stand im Shop an.</p>

<p class="callout danger">Läuft das Makro auf einen Fehler, wird der gerade angelegte Beleg <strong>gelöscht</strong> — und ein in diesem Zug neu entstandener Kunde ebenfalls. Die Bestellung bleibt im Shop offen und wird beim nächsten Lauf erneut versucht. Makros an dieser Stelle sollten ihre Fehler daher selbst abfangen.</p>

## Kunde angelegt

Läuft, nachdem beim Belegimport ein neuer Kunde entstanden ist. Übergeben wird die
**Nummer** des Kunden.

Direkt danach überträgt FINN.ghost den neuen Kunden in den Shop — Änderungen des Makros
am Kunden sind also sofort im Shop wirksam.

## Interessent angelegt

Dasselbe für neu entstandene Interessenten, wenn der Neukunden-Typ auf *Interessent*
steht. Übergeben wird die **Nummer**.

## Artikel exportieren

Läuft **einmal je Lauf** vor dem Export der geänderten Artikel, nicht je Artikel.
Gedacht, um vor der Übertragung berechnete Felder für den Shop zu füllen.

<p class="callout info">Weil das Makro nur einmal pro Lauf läuft, ist es auch bei vielen Artikeln unkritisch. Es bekommt allerdings keine Artikelnummer übergeben — es muss also selbst wissen, welche Artikel zu bearbeiten sind.</p>

## Hinweise

- Makronamen werden ohne Prüfung übernommen. Ein Tippfehler zeigt sich erst zur Laufzeit
  als Fehler im Protokoll.
- Die Makros laufen unter dem API-Benutzer aus den SelectLine-Einstellungen, nicht unter
  einem interaktiven Benutzer.
- Bei reinen Aktualisierungen bestehender Kunden läuft kein Kundenmakro — nur beim
  Anlegen.

## Nächster Schritt

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