Bestellungen
Die Aufgabe Bestellungen importieren holt Bestellungen aus dem Shop und legt sie als Beleg in der SelectLine an.
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
Scheitert ein Import, setzt FINN.ghost am Shopify-Auftrag den Tag ImportError und versucht ihn nie wieder. Das verhindert Endlosschleifen — bedeutet aber, dass die Bestellung liegen bleibt, bis jemand eingreift.
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.
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.
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.
Standardmäßig bricht der Import ab, 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.
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 zur Shopify-Variante ermittelt, im Zweifel über die SKU.
Findet sich die Artikelnummer nicht, wird die Bestellung mit dem Tag ImportError versehen und übersprungen. Im Protokoll steht der Hinweis, den Cache zu erneuern. Das ist der häufigste Grund für gescheiterte Importe.
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. 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.
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.
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.