# SelectLine-Makros

An drei Stellen kann das Modul ein SelectLine-Makro ausführen. Damit lassen sich
kundenspezifische Nachbearbeitungen ohne Programmierung einhängen. Die Felder liegen
unter **Shopify → Einstellungen → Makros**.

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

## Bestellung angelegt

Läuft, nachdem der Beleg vollständig aufgebaut ist — nach Kopf, allen Positionen, den
Versandkosten und der Kontenzuweisung der Rabattpositionen. Ü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 danger">Läuft das Makro auf einen Fehler, wird der gerade angelegte Beleg <strong>gelöscht</strong> und die Bestellung im Shop mit dem Tag <code>ImportError</code> versehen. Sie wird dann nicht erneut versucht, bis der Tag entfernt wird. Makros an dieser Stelle sollten ihre Fehler daher selbst abfangen. Siehe <a href="sfy-bestellungen">Bestellungen</a>.</p>

## Kunde angelegt

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

Bei reinen Aktualisierungen bestehender Kunden läuft kein Makro. Und auch nicht beim
Kundenexport in den Shop — nur beim Anlegen aus einer Bestellung.

## Artikel exportieren

Soll vor dem Export **jedes einzelnen** Artikels laufen und bekommt die **Nummer** des
Artikels. Gedacht für berechnete Felder, die der Shop braucht — etwa einen
zusammengesetzten Beschreibungstext.

<p class="callout danger">Dieses Feld hat derzeit <strong>keine Wirkung</strong>. Die Schnittstelle liest an dieser Stelle die entsprechende Einstellung des Moduls FINN.webshop, nicht die hier eingetragene. Wer ein Artikelmakro braucht, sollte sich an den Support wenden — bitte nichts in dieses Feld eintragen, es würde stillschweigend ignoriert.</p>

## Hinweise

- Makronamen werden ohne Prüfung übernommen. Ein Tippfehler zeigt sich erst zur Laufzeit
  als Fehler.
- Die Makros laufen unter dem API-Benutzer aus den SelectLine-Einstellungen, nicht unter
  einem interaktiven Benutzer.
- Ein Makro, das vor jedem Artikel läuft, wird bei einem Vollexport entsprechend oft
  aufgerufen. Bei 20.000 Artikeln sind das 20.000 Aufrufe — jede Sekunde Laufzeit
  multipliziert sich.

## Nächster Schritt

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