FINN.ghost für Shopify
Benutzerhandbuch zur Anbindung von SelectLine an einen Shopify-Shop: Einrichtung, Artikelpflege, Bestellabwicklung und laufender Betrieb. Quelle ist das Repository FINN.ghost unter docs/shopify – Änderungen bitte dort vornehmen, Bearbeitungen in BookStack werden beim nächsten Sync überschrieben.
- Überblick
- Einrichtung
- Shopdaten
- Läger und Standorte
- Belege
- Zahlungs- und Versandarten
- Sprachen und Märkte
- SelectLine-Makros
- Erstinbetriebnahme
- Artikel
- Artikel im Shop veröffentlichen
- Bezeichnungen, Texte und Bilder
- Preise
- Bestand und Verfügbarkeit
- Artikelgruppen
- Varianten
- Sachmerkmale und Extrafelder
- Zubehör und Alternativartikel
- Kunden und Bestellungen
- Laufender Betrieb
Überblick
FINN.ghost verbindet die SelectLine mit einem Shopify-Shop. Die Stammdaten bleiben in der SelectLine, der Shop wird daraus versorgt. Bestellungen laufen den umgekehrten Weg und werden als Beleg in der SelectLine angelegt.
Man pflegt also weiter dort, wo man es gewohnt ist: in der Artikelmaske, im Kundenstamm, in der Belegkette. Im Shopify-Adminbereich muss nichts nachgetragen werden.
Was in welche Richtung übertragen wird
| Aus der SelectLine in den Shop | Aus dem Shop in die SelectLine |
|---|---|
| Artikel mit Texten und Bildern | Bestellungen als Beleg |
| Preise, Aktionspreise, Katalogpreise | Neue Kunden aus Bestellungen |
| Bestände je Standort | Gutschriften und Storni |
| Artikelgruppen als Sammlungen | Trackingnummern (optional) |
| Sachmerkmale und Extrafelder als Metafelder | |
| Journaldateien als Dateianhänge | |
| Kunden, bei Shopify Plus als Unternehmen | |
| Versandmeldung und Zahlstatus |
Zusätzlich kann FINN.ghost Änderungen an einem Beleg zurück in die Shopify-Bestellung schreiben — siehe Versand und Rückmeldungen.
Wie die Übertragung ausgelöst wird
Es gibt keinen Knopf „jetzt alles übertragen", den man täglich drücken müsste. Die Übertragung läuft nach einem Zeitplan, der pro Aufgabe eingestellt wird — Bestände zum Beispiel häufiger als Artikeltexte.
Wer eine Änderung sofort im Shop sehen will, kann die passende Aufgabe unter Shopify → Zeitsteuerung von Hand starten.
Die Aufgaben laufen nacheinander, nicht gleichzeitig. Solange ein großer Lauf arbeitet, warten die anderen. Umfangreiche Vollübertragungen gehören deshalb in die Nacht. Näheres unter Zeitplan der Übertragungen.
Der Cache
Ein Punkt, der Shopify von anderen Anbindungen unterscheidet und den man kennen sollte: FINN.ghost führt eine eigene Zuordnungstabelle, welche SelectLine-Nummer zu welchem Shopify-Objekt gehört. Shopify vergibt eigene interne Nummern, und die stehen nirgends in der SelectLine.
Diese Tabelle ist der Cache. Ist er veraltet, findet die Schnittstelle Artikel nicht wieder — mit der Folge, dass Artikel doppelt entstehen oder Bestellungen nicht importiert werden können.
Wer im Shopify-Adminbereich Produkte löscht oder von Hand anlegt, muss den Cache erneuern. Alles dazu unter Der Cache.
Was ein Artikel braucht, um im Shop zu erscheinen
Die kürzeste Antwort auf die häufigste Frage: Ein Artikel geht nur in den Shop, wenn in der Artikelmaske das dafür vereinbarte Kennzeichen für den Shop gesetzt ist. Ohne dieses Kennzeichen wird der Artikel übersprungen — unabhängig davon, wie vollständig er sonst gepflegt ist.
Welches Feld das ist, wird bei der Einrichtung festgelegt, siehe Artikel im Shop veröffentlichen.
Aufbau dieses Handbuchs
| Kapitel | Inhalt |
|---|---|
| Einrichtung | Zugang, Läger, Belegtypen, Zuordnungen, Erstinbetriebnahme |
| Artikel | Freigabe, Texte, Bilder, Preise, Bestand, Gruppen, Varianten |
| Kunden und Bestellungen | Kundendaten, B2B, Bestellabwicklung, Rückmeldungen, Gutschriften |
| Laufender Betrieb | Zeitplan, Cache, Fehlersuche, häufige Fragen |
Wer die Schnittstelle neu einrichtet, arbeitet das Kapitel Einrichtung von vorne nach hinten durch und folgt dann der Erstinbetriebnahme.
Einrichtung
Zugang zum Shop, Läger, Belegtypen, Zuordnungen und die Reihenfolge bei der Erstinbetriebnahme.
Shopdaten
Unter Shopify → Einstellungen → Shopdaten wird der Zugang zum Shop hinterlegt. Ohne diese Angaben bleiben alle weiteren Auswahllisten in den Einstellungen leer, weil sie ihre Inhalte direkt aus dem Shop laden.
Zugangsdaten
Shopname
Nur der Name, nicht die vollständige Adresse. FINN.ghost bildet daraus
https://<Shopname>.myshopify.com.
Der Shopname ist der Teil vor .myshopify.com in der Adresse des Adminbereichs. Er bleibt gleich, auch wenn der Shop unter einer eigenen Domain erreichbar ist.
AccessToken
Das Zugangstoken einer eigenen App im Shopify-Adminbereich. Anzulegen unter Einstellungen → Apps und Vertriebskanäle → Apps entwickeln → App erstellen.
Die App braucht Lese- und Schreibrechte auf Produkte, Bestände, Bestellungen, Entwürfe, Kunden, Unternehmen, Dateien, Übersetzungen, Preislisten, Publikationen und Versandeinstellungen. Im Zweifel alle Bereiche freigeben, die mit Produkten, Bestellungen und Kunden zu tun haben.
Shopify zeigt das Token nur einmal an. Wer es nicht notiert hat, muss ein neues erzeugen.
Beim Speichern prüft FINN.ghost die Verbindung sofort und meldet, wenn sie nicht zustande kommt.
Verbindung prüfen
Die Verbindung ist in Ordnung, wenn sich die Auswahllisten in den Einstellungen füllen — etwa die Standorte, die Sprachen oder die Versandarten. Bleiben sie leer, stimmt etwas am Shopnamen oder am Token nicht. Die konkrete Meldung steht im Protokoll unter Shopify → Zeitsteuerung.
Grenzen der Shopify-Schnittstelle
Shopify begrenzt, wie viele Anfragen eine App pro Sekunde stellen darf. FINN.ghost beachtet das selbst: Nähert sich das Kontingent der Grenze, legt die Schnittstelle eine Pause ein und arbeitet dann weiter. Bei Überlast auf Shopify-Seite wird der Aufruf automatisch wiederholt.
Das ist der Grund, warum ein Vollexport bei vielen Artikeln lange dauert und sich nicht beliebig beschleunigen lässt. Das Tempo gibt Shopify vor, nicht die Schnittstelle.
Nächster Schritt
Läger und Standorte
Shopify führt Bestände je Standort. FINN.ghost muss deshalb wissen, welches SelectLine-Lager zu welchem Shopify-Standort gehört. Die Zuordnung liegt unter Shopify → Einstellungen → Lager.
Ohne mindestens eine Zuordnung wird kein Bestand übertragen. Im Protokoll erscheint dann die Meldung, dass keine Läger definiert sind.
Die Zuordnung
Links stehen die Standorte aus dem Shop, rechts wählt man das SelectLine-Lager.
Alle Läger
Neben den einzelnen Lägern steht die Auswahl Alle Läger zur Verfügung. Damit wird der Gesamtbestand über alle Läger an diesen Standort gemeldet.
Das ist die richtige Wahl für den Normalfall: ein Shopify-Standort, ein Lagerbestand. Erst wenn der Shop tatsächlich mehrere Standorte getrennt führt — etwa Zentrallager und Filiale —, ordnet man einzelne Läger zu.
Ist genau ein Standort mit Alle Läger zugeordnet, schreibt FINN.ghost beim Bestellimport kein Lager in den Beleg. Bei echter Standorttrennung wird dagegen das Lager des Fulfillments übernommen, und zusätzlich der Lagerplatz aus den SelectLine-Lagerstammdaten.
Weitere Einstellungen in diesem Bereich
Bestand verwenden
Schaltet die Bestandsführung im Shop insgesamt ein oder aus. Ist sie aus, verkauft Shopify unbegrenzt weiter, weil es keine Bestandsangabe kennt.
Reservierten Bestand ignorieren
Standardmäßig wird der reservierte Bestand abgezogen, also nur der wirklich freie Bestand gemeldet. Mit dieser Einstellung wird der volle Lagerbestand gemeldet.
Offene Aufträge von Bestand abziehen
Zieht die noch nicht gelieferten Mengen aus offenen Aufträgen des Bestell-Belegtyps zusätzlich ab. Sinnvoll, wenn Aufträge in der SelectLine längere Zeit offen liegen, bevor sie geliefert werden, und der Shop diese Ware nicht mehr anbieten soll.
Nächster Schritt
Belege
Unter Shopify → Einstellungen → Belege wird festgelegt, wie Bestellungen in die SelectLine-Belegkette einlaufen und was aus der Belegkette zurück in den Shop gemeldet wird.
Belegtypen
Zur Auswahl stehen jeweils alle Verkaufsbelege der SelectLine.
Bestellungen
In diesen Belegtyp wird der Warenkorb aus dem Shop übertragen.
Vorkasse
Bestellungen mit einer Vorkasse-Zahlungsart landen stattdessen in diesem Belegtyp. Welche Zahlungsarten als Vorkasse gelten, wird unter Zahlungs- und Versandarten festgelegt.
Ist der Vorkassebeleg in der SelectLine als gezahlt verbucht, markiert FINN.ghost die Bestellung im Shop als bezahlt.
Versand
Erreicht ein Beleg diesen Belegtyp — üblicherweise der Lieferschein —, meldet die Schnittstelle die Bestellung im Shop als versendet und überträgt die Paketnummern aus der Paketverwaltung.
Rechnung
Wird für die Gutschriftverarbeitung gebraucht: Zu einer Rückerstattung im Shop entsteht in der SelectLine eine Rechnung als Vorgänger und darauf die Gutschrift. Siehe Gutschriften und Storni.
Belegtyp Bestelländerungen
Die Gegenrichtung: Wird ein Beleg dieses Typs in der SelectLine geändert, überträgt FINN.ghost die Änderung zurück in die Shopify-Bestellung — geänderte Mengen, entfernte und hinzugefügte Positionen, angepasste Versandkosten.
Das ist die einzige Stelle, an der die Schnittstelle die Bestellung im Shop inhaltlich verändert. Wer das nicht möchte, lässt das Feld leer. Näheres unter Versand und Rückmeldungen.
Versandmeldung
Trackingnummern importieren
Kehrt die Richtung um: Statt den Versand aus der SelectLine an Shopify zu melden, übernimmt FINN.ghost die in Shopify erfassten Sendungen. Zu einer vollständig versendeten Bestellung entsteht der Versandbeleg als Nachfolger, und die Trackingnummern werden in die Paketverwaltung geschrieben.
Das ist der Weg für Shops, in denen der Versand über Shopify oder einen dort angebundenen Dienstleister abgewickelt wird.
Beide Richtungen schließen sich aus. Ist der Import aktiv, wird kein Versand mehr an Shopify gemeldet.
Nur Lieferstatus senden, wenn Paketnummer vorhanden
Meldet den Versand erst, wenn mindestens eine Paketnummer erfasst ist. Findet sich am Versandbeleg keine, sucht FINN.ghost zusätzlich in den Vorgängerbelegen.
Kunde über Versand informieren
Legt fest, ob Shopify die Versandbenachrichtigung an den Kunden schickt. Voreingestellt ist aus — sinnvoll, wenn die Kundenkommunikation über die SelectLine läuft.
Positionen
Versandposition immer anlegen
Normalerweise entsteht eine Versandposition nur, wenn die Bestellung Versandkosten enthält. Mit dieser Einstellung wird sie immer angelegt, auch mit Betrag 0.
Bezeichnung vom Versandartikel aus SelectLine verwenden
Standardmäßig übernimmt die Versandposition die Bezeichnung der Versandart aus dem Shop. Mit dieser Einstellung gilt stattdessen die Bezeichnung des Artikels aus der SelectLine.
Rabattpositionen aufsummieren pro Rabattcode
Ohne diese Einstellung entsteht pro rabattierter Artikelposition eine eigene Rabattposition. Bei einem Rabattcode über den ganzen Warenkorb ergibt das viele kleine Zeilen. Mit der Einstellung wird pro Rabattcode eine Position gebildet.
Nächster Schritt
Zahlungs- und Versandarten
Damit eine Bestellung als Beleg entstehen kann, muss FINN.ghost wissen, welche Zahlungsbedingung und welche Lieferbedingung der SelectLine zu einer Zahlungsart und Versandart im Shop gehört.
Zahlungsbedingungen
Die Liste der Zahlungsarten füllt sich erst, nachdem Bestellungen importiert wurden. Shopify bietet keine Abfrage der verfügbaren Zahlungsarten an — FINN.ghost merkt sich deshalb jede Zahlungsart, die in einer Bestellung vorkommt. Nach der Einrichtung sollte man den Bereich also erneut aufrufen und die neu erschienenen Zahlungsarten zuordnen.
Zu jeder Zahlungsart gibt es vier Spalten.
SelectLine
Die Zahlungsbedingung, die in den Beleg geschrieben wird.
Bankbezug
Die Kasse oder Bank, die als Bankbezug im Beleg gesetzt wird. Erleichtert später den Zahlungsabgleich in der Buchhaltung.
Import
Normalerweise werden nur Bestellungen übernommen, deren offener Betrag 0 ist — also vollständig bezahlte. Zahlungsarten wie Rechnung erreichen diesen Zustand nie; für sie wird dieser Haken gesetzt.
Bei Shopify Plus mit B2B-Bestellungen entfällt die Prüfung ohnehin, weil dort mit Zahlungsziel gearbeitet wird.
Vorkasse
Bestellungen dieser Zahlungsart gehen in den Vorkasse-Belegtyp statt in den Bestell-Belegtyp.
Geschenkkarten
Mit Geschenkkarten bezahlte Anteile werden nicht als Zahlungsart behandelt, sondern als Rabattposition auf den Promotion-Artikel gebucht, mit dem Hinweis auf die letzten Zeichen der Karte. Steuer 0.
Wird eine Bestellung ausschließlich mit Geschenkkarte bezahlt, gilt die Zuordnung der
Zahlungsart gift_card.
Lieferbedingungen
Hier wird jeder Versandart des Shops eine Lieferbedingung der SelectLine zugeordnet.
Die Liste kommt aus den Shopify-Versandprofilen. Zusätzlich steht immer der Eintrag Abholung zur Verfügung — Shopify meldet bei Abholung im Laden den Shopnamen als Versandart, und FINN.ghost bildet das auf diesen Eintrag ab.
Findet sich zu einer Versandart keine Zuordnung, wird die Bestellung trotzdem importiert — der Beleg bleibt dann aber ohne Lieferbedingung. Im Protokoll steht ein Hinweis. Nach dem Anlegen neuer Versandarten im Shop lohnt deshalb ein Blick in diesen Bereich.
Versanddienstleister
Unter Shopify → Einstellungen → Versand lassen sich die SelectLine-Transportdienstleister auf die Bezeichnungen abbilden, die Shopify für die Sendungsverfolgung erwartet. Ohne Zuordnung wird die SelectLine-Bezeichnung unverändert übergeben.
Trifft Shopify den Dienstleister nicht, zeigt es dem Kunden zwar die Paketnummer, aber keinen Verfolgungslink. Die Zuordnung lohnt sich daher für die gängigen Dienstleister.
Platzhalterartikel
Nicht jede Position einer Bestellung entspricht einem Artikel aus der SelectLine. Versandkosten und Rabatte brauchen deshalb Platzhalterartikel, die unter Shopify → Einstellungen → Artikel hinterlegt werden.
Promotion Artikel
Auf diesen Artikel werden Rabatte, Rabattcodes und Geschenkkarten gebucht.
Ist kein Promotion-Artikel hinterlegt, werden Rabatte stillschweigend übersprungen — der Beleg in der SelectLine ist dann teurer als die Bestellung im Shop. Das ist die häufigste Ursache für Betragsabweichungen.
Versandartikel – Standard und Ermäßigt
Auf diese Artikel werden die Versandkosten gebucht. FINN.ghost ermittelt, welche Steuersätze in der Bestellung vorkommen, und verteilt die Versandkosten anteilig nach dem jeweiligen Warenwert. Steuersätze unter 16 % laufen auf den ermäßigten Versandartikel.
Enthält eine Bestellung Ware mit 19 % und mit 7 %, entstehen dadurch zwei Versandpositionen mit dem jeweils passenden Steuersatz. Wer das nicht möchte, aktiviert Steuer vom Versandartikel aus SelectLine verwenden — dann entsteht eine Position mit dem Steuersatz des Artikels.
Konten für Rabattpositionen
Zusätzlich lässt sich je Steuersatz ein Erlöskonto für die Rabattpositionen festlegen. Ohne diese Angabe übernimmt die Rabattposition Konto und Steuer der vorangehenden Artikelposition — damit landet der Rabatt auf demselben Konto wie der rabattierte Umsatz.
Nächster Schritt
Sprachen und Märkte
Shopify bündelt Länder, Währungen und Sprachen in Märkten. Zu jedem Markt gehört ein Katalog mit einer Preisliste und einer Publikation. FINN.ghost kann diese Struktur mit Preisen aus SelectLine-Preisgruppen versorgen.
Sprachzuordnung
Unter Shopify → Einstellungen → Sprachzuordnung wird jeder Shop-Sprache eine SelectLine-Sprache zugeordnet.
Übersetzt werden Produkttitel und Beschreibung aus den Fremdbezeichnungen zum Artikel. Zusätzlich schreibt der Bestellimport die Sprache der Bestellung in den Beleg, sodass Belegformulare in der Sprache des Kunden gedruckt werden können.
Es werden nur Titel und Beschreibung übersetzt. Metafelder, Sammlungen und Merkmalsbezeichnungen bleiben einsprachig.
Märkte
Der Bereich Märkte zeigt die im Shop eingerichteten Märkte mit ihren Katalogen, Preislisten und Währungen. Er dient der Übersicht — eingerichtet werden Märkte im Shopify-Adminbereich.
Preiszuweisung zu Katalogen
Hier entsteht die eigentliche Zuordnung: Je Katalog wird festgelegt, aus welcher SelectLine-Preisgruppe und in welcher Währung der Preis kommt.
Die Aufgabe Preise exportieren schreibt daraufhin für jeden Artikel den Preis in die Preisliste des Katalogs und veröffentlicht den Artikel in der zugehörigen Publikation.
Findet sich für einen Artikel in der zugeordneten Preisgruppe kein Preis, wird der Katalogpreis dieses Artikels wieder entfernt. Damit fällt der Artikel im betreffenden Markt auf den Standardpreis zurück. Wer in einem Markt bewusst nur einen Teil des Sortiments anbieten will, sollte das im Shopify-Adminbereich über die Publikation steuern, nicht über fehlende Preise.
Währungen in Bestellungen
Präsentationswährungen
Kauft ein Kunde in einer anderen Währung als der Shop-Grundwährung, liefert Shopify beide Beträge. Standardmäßig übernimmt FINN.ghost den Betrag in der Shop-Währung.
Trägt man eine Währung in die Liste der Präsentationswährungen ein, werden für Bestellungen in dieser Währung stattdessen die Beträge in der Kundenwährung in den Beleg geschrieben, und der Beleg erhält diese Währung.
Ergänzend lässt sich je Währung ein Fibukonto festlegen, das bei neu angelegten Kunden gesetzt wird.
Nächster Schritt
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.
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.
Läuft das Makro auf einen Fehler, wird der gerade angelegte Beleg gelöscht und die Bestellung im Shop mit dem Tag ImportError versehen. Sie wird dann nicht erneut versucht, bis der Tag entfernt wird. Makros an dieser Stelle sollten ihre Fehler daher selbst abfangen. Siehe Bestellungen.
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.
Dieses Feld hat derzeit keine Wirkung. 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.
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
Die einzelnen Übertragungen bauen aufeinander auf. Bei einem leeren Shop lohnt es sich, die Läufe einmal in dieser Reihenfolge von Hand anzustoßen, unter Shopify → Zeitsteuerung.
Diese Reihenfolge gilt für die Erstbefüllung. Im laufenden Betrieb spielt sie keine Rolle mehr — dann zieht die Schnittstelle fehlende Metafelder und Sammlungen selbst nach.
Reihenfolge
1. Sachmerkmale und Extrafelder aktualisieren
Legt im Shop die Metafeld-Definitionen an, in denen später die SelectLine-Felder landen. Dieser Schritt muss zuerst laufen.
Ohne die Definitionen wären die Werte am Produkt vorhanden, aber im Adminbereich nicht als gepflegte Felder sichtbar. Der Artikelexport zieht fehlende Definitionen bei Bedarf selbst nach — beim Erstlauf ist der eigene Durchgang aber schneller.
2. Artikelgruppen exportieren
Legt die Sammlungen an, in die die Artikel später einsortiert werden.
3. Artikel exportieren (alle)
Der große Lauf. Er legt Produkte, Varianten, Bilder, Metafelder und Sammlungszuordnungen an und exportiert direkt danach den Bestand jeder Variante.
Für einen ersten Eindruck kann man stattdessen Artikel exportieren (alle, ohne Bilder) starten — das ist deutlich schneller. Die Bilder holt der nächste Vollauf nach.
4. Preise exportieren
Setzt Preis und Streichpreis je Variante und füllt die Katalogpreise der Märkte.
5. Bestand exportieren
Korrekturlauf über alle Artikel. Setzt außerdem den Status archivierter und freigegebener Artikel richtig.
6. Exportiere Kunden
Überträgt die Kunden mit gesetztem Kundenkennzeichen — bei Shopify Plus als Unternehmen mit Kontakten.
7. Dateien aktualisieren
Lädt die Journaldateien der konfigurierten Kategorien hoch und hängt sie an die Produkte.
8. Bestellungen importieren
Erst zum Schluss einschalten. Vorher fehlen im Shop die Artikel, auf die sich Bestellungen beziehen würden.
Der erste Importlauf holt alle Bestellungen, die seit dem Einschalten geändert wurden. In einem Shop, der vorher schon live war, kann das viele Altbestellungen bedeuten. Wer das nicht will, sollte den Zeitpunkt vorher mit dem Support abstimmen.
Danach
Wenn die Erstbefüllung durchgelaufen ist, werden die Aufgaben mit einem Zeitplan versehen. Empfehlungen dazu stehen unter Zeitplan der Übertragungen.
Kontrolle
| Prüfpunkt | Wo |
|---|---|
| Anzahl der Produkte im Shop | Shopify-Adminbereich, verglichen mit den freigegebenen Artikeln |
| Sammlungen | Shopify-Adminbereich unter Produkte → Sammlungen |
| Preise an Stichproben | Produkt im Shop aufrufen, Preis mit der SelectLine vergleichen |
| Bestände an Stichproben | Shopify-Adminbereich unter Produkte → Bestand |
| Meldungen im Protokoll | Shopify → Zeitsteuerung |
Das Protokoll enthält auch Hinweise auf übersprungene Artikel. Diese Meldungen sind keine Fehler, sondern zeigen fehlende Angaben — die Liste ist eine gute Arbeitsgrundlage für die Datenpflege. Näheres unter Wenn etwas nicht im Shop ankommt.
Artikel
Wie Artikel in den Shop kommen: Freigabe, Texte, Bilder, Preise, Bestand, Gruppen und Varianten.
Artikel im Shop veröffentlichen
Ein Artikel erscheint im Shop, sobald er freigegeben ist und die nötigen Angaben enthält. Beides wird in der Artikelmaske gepflegt, im Shopify-Adminbereich ist nichts zu tun.
Freigeben
Das bei der Einrichtung festgelegte ShopAktiv-Feld in der Artikelmaske setzen (unter Shopify → Einstellungen → Artikel). Beim nächsten Lauf der Aufgabe Artikel exportieren (geänderte) geht der Artikel in den Shop.
Der Status im Shop
Shopify kennt keinen einfachen Aktiv-Haken, sondern einen Status. FINN.ghost setzt ihn so:
| Status im Shop | Wann |
|---|---|
| Aktiv | freigegeben und nicht inaktiv |
| Archiviert | Freigabe entfernt oder Artikel inaktiv |
| Entwurf | neu angelegt, bei aktivem Neue Artikel als Entwurf hochladen |
| Nicht gelistet | Kennzeichen aus Kennzeichen Artikel als 'Nicht gelistet' gesetzt |
Ein Artikel wird also nie gelöscht, sondern archiviert. Bestellungen behalten damit ihre Verknüpfung, und die Adresse der Produktseite bleibt gültig.
Neue Artikel als Entwurf hochladen
Neu angelegte Produkte landen als Entwurf im Shop und sind erst sichtbar, wenn sie im Adminbereich freigegeben werden. Das gibt Gelegenheit, Texte und Bilder redaktionell zu prüfen.
Solange ein Produkt im Entwurfsstatus steht, überspringt die Aufgabe Bestand exportieren es vollständig. Der Bestand kommt erst, wenn das Produkt aus dem Entwurf geholt wurde.
Voraussetzungen
Fehlt eine dieser Angaben, wird der Artikel übersprungen und im Protokoll vermerkt:
| Voraussetzung | Hinweis |
|---|---|
| Bezeichnung | darf nicht leer sein |
| Verkaufspreis | in der eingestellten Preisgruppe |
| Artikelgruppe | außer bei aktivem Artikelgruppen ignorieren |
| nicht inaktiv | inaktive Artikel gehen nicht in den Shop |
Ist der Artikel bereits im Shop und fehlt später eine dieser Angaben, wird er nicht übersprungen, sondern archiviert. So verschwinden ausgelaufene Artikel zuverlässig aus der Storefront.
Für Varianten gilt eine Erleichterung: Eine Variante ohne Preis wird übersprungen, der Hauptartikel mit den übrigen Varianten aber trotzdem angelegt.
Wann die Übertragung läuft
| Aufgabe | Umfang |
|---|---|
| Artikel exportieren (geänderte) | Artikel, die seit dem letzten Lauf angelegt oder geändert wurden |
| Artikel exportieren (geänderte, ohne Bilder) | dasselbe ohne Bildübertragung |
| Artikel exportieren (alle) | alle freigegebenen Artikel, mit Bildern |
| Artikel exportieren (alle, ohne Bilder) | alle freigegebenen Artikel, ohne Bildübertragung |
Als geändert gilt ein Artikel, wenn sich der Artikelstamm geändert hat. Wird nur ein Preis oder eine Fremdbezeichnung angepasst, ohne den Artikel selbst anzufassen, erkennt der Änderungslauf das nicht. Deshalb gehören die nächtlichen Läufe Preise exportieren und Artikel exportieren (alle, ohne Bilder) in den Zeitplan.
Wird eine Variante geändert, überträgt die Schnittstelle automatisch den Hauptartikel mit allen Varianten — einzelne Varianten lassen sich in Shopify nicht für sich exportieren.
Bestehende Artikel schonen
Nur neue Artikel hochladen
Bestehende Produkte werden nur noch im Status angefasst, alles andere bleibt unverändert. Der Weg für Shops, in denen Texte und Bilder vollständig im Shopify-Adminbereich gepflegt werden.
Titel dennoch aktualisieren
Ergänzt die vorige Einstellung: Der Titel und die Übersetzungen werden trotzdem nachgezogen.
Nicht unterstützt
Shopify erlaubt höchstens drei Merkmale je Produkt. Ein Variantenartikel mit mehr als drei Merkmalen wird mit einer Meldung abgewiesen und gar nicht angelegt.
Weiter
Bezeichnungen, Texte und Bilder
Titel und Beschreibung
| Im Shop | Aus der SelectLine |
|---|---|
| Titel | Artikelbezeichnung |
| Beschreibung | Artikeltext, HTML bevorzugt |
| Anbieter | Feld aus Anbieterfeld, Standard: Lieferantenbezeichnung |
| Seitentitel (SEO) | Extrafeld _METATITLE |
| Meta-Beschreibung | Extrafeld _METADESCRIPTION |
Zusatz hinter Titel
Hängt den Zusatz aus der Artikelmaske mit einem Gedankenstrich an den Titel an.
Anbieterfeld
Bestimmt, welches Artikelfeld als Anbieter in den Shop geht. Voreingestellt ist die Bezeichnung des Standardlieferanten.
Übersetzungen
Titel und Beschreibung werden in die Shop-Sprachen übersetzt, sofern die Fremdbezeichnungen zum Artikel gepflegt sind und die Sprachzuordnung steht.
Tags
Über Extrafelder lassen sich Shopify-Tags setzen. Beginnt der Name eines Extrafeldes
mit _SFYTAG, gilt der Rest des Namens als Tag: Aus dem Kennzeichen _SFYTAGNeuheit
wird der Tag Neuheit, wenn das Kennzeichen gesetzt ist.
Die Tags werden zugefügt und entfernt, ohne andere Tags anzutasten. Im Shop von Hand gepflegte Tags bleiben also erhalten.
Bilder
Die Artikelbilder aus der SelectLine werden in den Shop geladen, in der Reihenfolge aus der SelectLine.
Bei einem Artikel ohne Varianten hängen die Bilder am Produkt, das erste zusätzlich an der Variante. Bei einem Variantenartikel bekommt jede Variante ihr eigenes erstes Bild — aus den Bildern der jeweiligen Variantenartikelnummer —, und die Bilder des Hauptartikels kommen als Produktbilder dazu.
Maximale Bildgröße
Bilder werden vor dem Hochladen auf diese Kantenlänge verkleinert, voreingestellt 1920 Pixel. Kleinere Bilder werden nicht vergrößert.
Nur Bilder exportieren, die mit 'Export' gekennzeichnet sind
Berücksichtigt nur Bilder, die in der SelectLine das entsprechende Kennzeichen tragen. So lässt sich steuern, welche Bilder in den Shop gehören und welche nur intern sind.
Bei jeder Bildübertragung werden die vorhandenen Bilder des Produkts zuerst gelöscht und dann neu geladen. Bilder, die im Shopify-Adminbereich von Hand ergänzt wurden, verschwinden dabei. Und es ist der Grund, warum ein Vollexport mit Bildern deutlich länger dauert als einer ohne — deshalb gibt es die Aufgaben ohne Bildübertragung.
Dateien zum Artikel
Über die Aufgabe Dateien aktualisieren lassen sich Journaldateien — Datenblätter, Anleitungen, Zertifikate — an die Produkte hängen.
Kategorie der Journale für Dateiupload
Legt fest, aus welchen Journalkategorien die Dateien kommen. Je Kategorie entsteht am Produkt ein eigenes Metafeld, sodass sie im Theme getrennt ausgegeben werden können.
Erkannt werden die üblichen Dateitypen — PDF, Bilder, Video, Audio, Office-Dokumente, CSV, ZIP. Alles andere wird als allgemeine Datei hochgeladen.
Eine Datei wird über ihren Inhalt erkannt und nur einmal hochgeladen, auch wenn sie an vielen Artikeln hängt. Wird sie in der SelectLine ausgetauscht, entsteht eine neue Datei im Shop; die alte bleibt in der Dateiverwaltung liegen und kann dort aufgeräumt werden.
Weiter
Preise
Shopify führt je Variante einen Preis und optional einen Streichpreis. Zusätzlich kann je Markt-Katalog ein eigener Preis hinterlegt werden. FINN.ghost füllt beides aus SelectLine-Preisgruppen.
Der Standardpreis
Preisgruppe
Bestimmt, welche Preisgruppe der SelectLine als Shop-Preis erscheint. Zur Auswahl stehen die Preise aus der Artikelmaske.
Ist in der Artikelmaske ein Preisverweis eingetragen, werden die Preise des verwiesenen Artikels verwendet.
Aktionspreise und Streichpreis
Findet FINN.ghost zum heutigen Tag einen Aktionspreis, wird dieser als Preis gesetzt und der reguläre Preis als Streichpreis. Im Shop erscheint er durchgestrichen neben dem Aktionspreis.
Läuft die Aktion aus, setzt der nächste Preislauf den regulären Preis und entfernt den Streichpreis.
Aktionszeiträume laufen ohne Zutun ab, ohne dass sich der Artikel ändert. Der Änderungslauf bemerkt das deshalb nicht. Die Aufgabe Preise exportieren muss also regelmäßig laufen, sonst bleibt ein abgelaufener Aktionspreis im Shop stehen.
Brutto oder netto
Standardmäßig wird der Preis so übertragen, dass im Shop Bruttopreise stehen: Ist die Preisgruppe eine Nettopreisgruppe, rechnet FINN.ghost mit dem gültigen Steuersatz des Artikels hoch.
Nettopreise
Kehrt das um: Es werden Nettopreise übertragen. Der Weg für reine B2B-Shops, in denen Shopify die Steuer selbst aufschlägt.
Steuerpflicht
Hat der Artikel einen gültigen Steuerschlüssel, wird die Variante im Shop als steuerpflichtig markiert. Über die Einstellung Steuer erzwingen lässt sich das auch ohne Steuerschlüssel erreichen.
Katalogpreise für Märkte
Je Markt-Katalog lassen sich Preisgruppe und Währung festlegen. Die Aufgabe Preise exportieren schreibt daraufhin den Preis in die Preisliste und veröffentlicht den Artikel im zugehörigen Vertriebskanal.
Näheres unter Sprachen und Märkte.
Einkaufspreis
FINN.ghost überträgt zusätzlich die Kosten je Artikel, damit Shopify die Marge auswerten kann.
| Einstellung | Quelle |
|---|---|
| Preisgruppe für Kosten | Preis aus der angegebenen Preisgruppe |
| ohne diese Einstellung | letzter Einkaufspreis aus der Kalkulation |
Preise beim Bestellimport
Artikelpreise aus SelectLine verwenden
Normalerweise übernimmt der Beleg die Preise aus der Bestellung, damit Shop und Beleg denselben Betrag zeigen. Mit dieser Einstellung rechnet stattdessen die SelectLine die Positionspreise selbst.
Ist die Einstellung aus, setzt der Import zusätzlich den Belegrabatt auf 0 und leert die Rabattgruppe — sonst würde die SelectLine die Shop-Preise nachrabattieren.
Artikel ohne Preis
Ein Artikel ohne Preis in der eingestellten Preisgruppe wird übersprungen; ein bereits vorhandenes Produkt wird archiviert.
Ausnahme über ein Artikelfeld
Über die Einstellung Preisprüfung deaktivieren lässt sich ein Artikelfeld bestimmen, mit dem einzelne Artikel trotzdem — mit Preis 0,00 — in den Shop gehen. Der Weg für Artikel auf Anfrage.
Weiter
Bestand und Verfügbarkeit
Der Bestand ist die Angabe, die sich im Tagesgeschäft am häufigsten ändert. Deshalb gibt es dafür eigene Aufgaben, die schneller laufen als die vollständige Artikelübertragung.
| Aufgabe | Umfang |
|---|---|
| Bestand exportieren (geänderten) | Artikel mit Bestandsbewegung seit dem letzten Lauf |
| Bestand exportieren | alle Artikel, zusätzlich Statuspflege |
Der Bestand wird je zugeordnetem Standort gemeldet — siehe Läger und Standorte.
Wie der Bestand ermittelt wird
Standardmäßig gilt: Bestand abzüglich reservierter Menge, entweder über alle Läger oder je zugeordnetem Lager.
Stücklisten
Bei Stücklisten ergibt sich der Bestand aus der knappsten Komponente — also aus der Menge, die sich tatsächlich noch zusammenstellen lässt.
Fertigungsartikel
Bei Artikeln mit Arbeitsplan wird der eigene Bestand um die Menge erhöht, die sich aus den vorhandenen Komponenten noch produzieren lässt. Der Shop zeigt damit nicht nur das fertige Lager, sondern die realistische Lieferfähigkeit.
Eigene Bestandsermittlung
Für Sonderfälle kann eine eigene Bestandsabfrage hinterlegt werden. Das richtet der Support gemeinsam mit Ihnen ein.
Der Bestand wird ganzzahlig an den Shop übergeben und dabei abgeschnitten. Bei Artikeln, die in Bruchteilen geführt werden — Meter, Kilogramm —, wird aus 2,7 m ein Bestand von 2.
Bestand auf 0 erzwingen
Feld für Bestand 0
Über ein Artikelkennzeichen lässt sich der gemeldete Bestand auf 0 setzen, ohne den Artikel zu archivieren. Der Artikel bleibt sichtbar, ist aber nicht bestellbar.
Das Kennzeichen wirkt auch über Stücklisten: Trägt eine Komponente das Kennzeichen, wird der Bestand der Stückliste auf 0 gesetzt. Und es wirkt über Varianten: Trägt der Hauptartikel das Kennzeichen, gilt es für alle Varianten.
Weiterverkauf bei Bestand 0
Weiterverkaufen
Über ein Artikelkennzeichen lässt sich je Artikel festlegen, dass Shopify auch ohne Bestand weiter verkauft. Ohne das Kennzeichen lehnt Shopify die Bestellung ab, sobald der Bestand erschöpft ist.
Bestandsführung abschalten
Bestand verwenden
Globale Einstellung: Ist sie aus, führt Shopify für die Artikel keinen Bestand und verkauft unbegrenzt.
Feld zum Abschalten der Bestandsführung
Über ein Artikelkennzeichen lässt sich die Bestandsführung je Artikel abschalten — der Weg für Dienstleistungen und Downloads.
Zusätzlich schaltet FINN.ghost die Bestandsführung selbst ab, wenn ein Artikel kein Lagerartikel ist und keine Stückliste hat. Damit werden Dienstleistungsartikel automatisch richtig behandelt.
Statuspflege im Bestandslauf
Die Aufgabe Bestand exportieren prüft zusätzlich den Status: Freigegebene Artikel werden auf aktiv gesetzt, nicht freigegebene oder inaktive archiviert.
Produkte im Entwurfsstatus überspringt dieser Lauf vollständig — auch beim Bestand. Ein Artikel, der als Entwurf hochgeladen wurde und dort liegen bleibt, hat im Shop dauerhaft keinen Bestand.
Weiter
Artikelgruppen
Die Artikelgruppen der SelectLine werden zu manuellen Sammlungen im Shop. Jede Gruppe wird eine eigene Sammlung, benannt nach der Bezeichnung der Artikelgruppe.
Was übertragen wird
| Im Shop | Aus der SelectLine |
|---|---|
| Titel | Bezeichnung der Artikelgruppe |
| Bild | Bild zur Artikelgruppe, auf Maximalgröße skaliert |
Hat eine Artikelgruppe keine Bezeichnung, bricht ihr Export mit einer Meldung ab. Die übrigen Gruppen laufen weiter.
Der ganze Zweig wird zugeordnet
Ein Artikel wird nicht nur seiner eigenen Gruppe zugeordnet, sondern allen Gruppen seines Zweigs bis zur Wurzel. Ein Artikel in Werkzeug → Handwerkzeug → Zangen erscheint also in allen drei Sammlungen.
Das ist der Unterschied zu einer Baumnavigation: Shopify-Sammlungen sind flach. Damit ein Kunde in der Sammlung Werkzeug auch die Zangen findet, muss der Artikel dort ebenfalls einsortiert sein.
Fehlt eine Sammlung des Zweigs noch, legt der Artikelexport sie selbst an.
Einstellungen
Alternative Artikelgruppen
Statt der Artikelgruppe aus der Artikelmaske werden die zusätzlichen Gruppenzuordnungen des Artikels verwendet. Damit kann ein Artikel in mehreren Sortimentsästen erscheinen.
Artikelgruppen ignorieren
Sammlungen werden gar nicht angefasst und Artikel keiner Sammlung zugeordnet. Die Sortierung übernimmt dann der Shopify-Adminbereich, etwa über automatische Sammlungen nach Tags.
Freigabe je Gruppe
Über ein Feld an der Artikelgruppe lässt sich steuern, welche Gruppen in den Shop gehören. Gruppen ohne gesetztes Kennzeichen werden übersprungen.
Die Sammlung „Ermäßigte Steuer"
FINN.ghost legt zusätzlich eine unveröffentlichte Sammlung mit dem Namen Ermäßigte Steuer an und ordnet dort alle Artikel ein, deren Steuerschlüssel dem ermäßigten Satz entspricht.
Shopify kennt keine Steuersätze je Artikel wie die SelectLine. Der übliche Weg ist eine Sammlung, auf die im Shop eine abweichende Steuerregel gelegt wird. Genau dafür ist diese Sammlung gedacht — die Steuerregel selbst wird im Shopify-Adminbereich eingerichtet.
Welcher Steuerschlüssel als ermäßigt gilt, wird bei der Einrichtung festgelegt.
Wichtig zu wissen
Die Zuordnung eines Artikels zu einer Sammlung wird nur hinzugefügt, nie entfernt. Wechselt ein Artikel in der SelectLine die Artikelgruppe, bleibt er zusätzlich in der alten Sammlung. Solche Altzuordnungen müssen im Shopify-Adminbereich entfernt werden.
Eine umbenannte Artikelgruppe wird dagegen sauber nachgezogen: Die Zuordnung läuft über die Gruppennummer, nur der Titel der Sammlung ändert sich.
Weiter
Varianten
Variantenartikel der SelectLine werden auf das Variantensystem von Shopify abgebildet: Der Variantenartikel wird das Produkt, die einzelnen Varianten werden dessen Varianten. Die Merkmale werden zu Shopify-Optionen.
Voraussetzungen
| Voraussetzung | Hinweis |
|---|---|
| höchstens 3 Merkmale | Grenze von Shopify |
| Merkmale an der Variante gepflegt | eine Variante ohne Merkmale wird übersprungen |
| Variante freigegeben und aktiv | nur freigegebene, nicht inaktive Varianten kommen mit |
| Preis je Variante | eine Variante ohne Preis wird übersprungen |
Bei mehr als drei Merkmalen wird der gesamte Variantenartikel abgewiesen und gar nicht angelegt. Im Protokoll steht der Hinweis, dass der Artikel mehr als 3 Merkmale hat.
Immer über den Hauptartikel
Einzelne Varianten lassen sich nicht für sich übertragen. Ändert man eine Variante, überträgt die Schnittstelle automatisch den Hauptartikel mit allen Varianten neu.
Das ist eine Eigenschaft der Shopify-Schnittstelle: Ein Produkt wird mit seiner vollständigen Variantenliste geschrieben. Deshalb dauert die Übertragung eines Variantenartikels mit vielen Varianten deutlich länger als die eines Einzelartikels.
Was je Variante übertragen wird
| Im Shop | Aus der SelectLine |
|---|---|
| SKU | Artikelnummer der Variante |
| Barcode | EAN-Nummer |
| Optionswerte | Merkmalsausprägungen, nach Merkmal sortiert |
| Preis und Streichpreis | Preis bzw. Aktionspreis der Variante |
| Gewicht | Gewicht der Variante |
| Bild | erstes Bild der Variantenartikelnummer |
| Metafelder | Extrafelder und Sachmerkmale der Variante |
| Bestand | je Standort, siehe Bestand |
Die Reihenfolge der Optionswerte ergibt sich aus der alphabetischen Sortierung der Merkmalsbezeichnungen. Größen erscheinen dadurch als L, M, S, XL statt S, M, L, XL. Die gewünschte Reihenfolge lässt sich im Shopify-Adminbereich am Produkt einstellen; sie wird von der Schnittstelle nicht überschrieben.
Entfallene Varianten
Wird eine Variante in der SelectLine inaktiv gesetzt oder die Freigabe entfernt, kommt sie beim nächsten Lauf des Hauptartikels nicht mehr mit.
Shopify entfernt die Variante dadurch nicht automatisch aus dem Produkt. Entfallene Varianten müssen im Shopify-Adminbereich gelöscht werden — solange sie dort stehen, bleiben sie mit ihrem letzten Bestand sichtbar.
Weiter
Sachmerkmale und Extrafelder
Nicht jede Angabe der SelectLine hat im Shop ein passendes Standardfeld. Shopify bietet dafür Metafelder. FINN.ghost legt die nötigen Definitionen an und füllt sie.
Die Aufgabe dazu heißt Sachmerkmale und Extrafelder aktualisieren.
Welche Metafelder entstehen
| Bereich | Wo im Shop |
|---|---|
| Extrafelder Artikel | Produkt und Variante |
| Sachmerkmale | Produkt und Variante |
| Extrafelder Kunde | Kunde |
| Extrafelder Unternehmen | Unternehmen (nur Shopify Plus) |
Zu den Extrafeldern der Artikeltabelle kommen die Standardfelder, die im Shop nützlich sind: Zusatz, Matchcode, Freie Texte, Freie Zahlen, Freie Daten, Freie Kennzeichen, Dimensionstext, Infotext, Bestelltext sowie die Verweise auf Zubehör, Alternativartikel und Dateien.
Die SEO-Felder _METATITLE und _METADESCRIPTION werden bewusst ausgelassen — sie gehen in die echten SEO-Felder des Produkts, nicht in Metafelder.
Sachmerkmale
Sachmerkmale werden als Listen-Metafelder abgebildet, sowohl am Produkt als auch an der Variante. Ein Artikel kann damit mehrere Werte je Sachmerkmal tragen.
Am Produkt werden die Sachmerkmale des Hauptartikels und aller seiner Varianten gesammelt. Der Kunde findet auf der Produktseite also die vollständige Auswahl, während an der Variante nur ihre eigenen Werte stehen.
Damit lassen sich im Shop Filter über Sachmerkmale bauen. Wie die Filter erscheinen, richtet sich nach dem Theme und wird im Shopify-Adminbereich unter den Suchfiltern eingestellt.
Feldtypen
| SelectLine | Metafeldtyp im Shop |
|---|---|
| Text | einzeiliger Text |
| Memo | mehrzeiliger Text |
| Kennzeichen | Wahrheitswert |
| Datum, Zeitstempel | Datum bzw. Datum mit Uhrzeit |
| Ganzzahl | Ganzzahl |
| Kommazahl | Dezimalzahl |
| Dateiliste | Liste von Dateiverweisen |
| Artikelliste | Liste von Produktverweisen |
Ein Extrafeld mit einem nicht unterstützten Datentyp wird übersprungen und im Protokoll vermerkt. Solche Felder müssen in der SelectLine auf einen unterstützten Typ geändert werden.
Felder umbenennen
Erwartet ein Theme einen bestimmten Feldnamen, kann eine Umbenennung hinterlegt werden. Das FINN.ghost-Feld wird dann unter dem gewünschten Namen im Shop geführt. Diese Zuordnung richtet der Support ein.
Änderungen an den Definitionen
Die Aufgabe legt fehlende Definitionen an. Bestehende werden nicht verändert.
Wird ein Sachmerkmal in der SelectLine umbenannt, behält das Metafeld im Shop seinen alten Namen — die Werte werden weiter korrekt gefüllt, weil die Zuordnung über die interne Nummer läuft. Wer den neuen Namen im Adminbereich sehen will, muss die Definition dort umbenennen.
Ein in der SelectLine gelöschtes Extrafeld bleibt im Shop bestehen und behält seinen letzten Wert. Aufräumen ist im Shopify-Adminbereich möglich.
Weiter
Zubehör und Alternativartikel
Zubehör- und Alternativartikel aus der SelectLine werden als Produktverweise in Metafeldern hinterlegt. Das Theme kann sie als Empfehlungen auf der Produktseite ausgeben.
| In der SelectLine | Metafeld am Produkt |
|---|---|
| Zubehörartikel | Zubehoer |
| Alternativartikel | Alternativen |
Anders als bei anderen Shopsystemen entsteht daraus keine fertige Anzeige. Die Metafelder enthalten die Produktverweise; die Darstellung im Shop übernimmt das Theme. Die Umsetzung dort macht Ihre Agentur oder unser Team.
Voraussetzung
Aufgenommen werden nur Artikel, die selbst für den Shop freigegeben und nicht inaktiv sind. Ein Zubehörartikel ohne Freigabekennzeichen erscheint nicht in der Empfehlung.
Ist ein freigegebener Zubehörartikel noch nicht im Shop, überträgt die Schnittstelle ihn bei Bedarf vorher.
Bei umfangreichen Zubehörketten kann ein Artikelexport dadurch spürbar länger dauern als erwartet — mit jedem Artikel kommen seine noch fehlenden Zubehör- und Alternativartikel mit.
Zubehör wird nur berücksichtigt, wenn in der SelectLine ein Einfügemodus gesetzt ist.
Zubehör nach Typ trennen
Führt die SelectLine am Zubehör ein Feld für den Shop-Typ, entsteht je Typ ein eigenes Metafeld. Damit lassen sich im Theme getrennte Blöcke bauen — etwa „Passendes Zubehör" und „Ersatzteile".
Zubehör ohne Typangabe landet im allgemeinen Feld Zubehoer.
Ob dieses Feld in Ihrer Installation eingerichtet ist, klärt der Support.
Wechselseitige Verweise
Verweisen zwei Artikel gegenseitig als Alternative aufeinander, erkennt FINN.ghost das und vermeidet eine Endlosschleife: Der jeweils aufrufende Artikel wird nicht erneut als Alternative eingetragen.
Weiter
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.
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.
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.
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.
Geprüft wird auf ein @ und darauf, dass kein Leerzeichen enthalten ist. Die übersprungenen Kunden stehen im Protokoll und sind damit eine gute Arbeitsliste für die Datenpflege.
Was übertragen wird
| Im Shop | Aus der SelectLine |
|---|---|
| Vor- und Nachname | Kundenstamm |
| 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:
- über das Shopkundennummer-Feld und die zusätzlichen Suchfelder
- über die E-Mail-Adresse — im Kundenstamm und in den CRM-Adressen
- kein Treffer: der Kunde wird neu angelegt
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.
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
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.
Die Umschaltung erfolgt über eine Einstellung. Sie verändert das Verhalten des Kundenexports vollständig — vorher angelegte Einzelkunden bleiben unberührt im Shop stehen.
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.
Ist der Kunde inaktiv oder das Kundenkennzeichen nicht gesetzt, werden allen Kontakten die Rollen entzogen. Die Kontakte bleiben bestehen, können sich aber nicht mehr anmelden und nicht mehr bestellen. Das ist der Weg, einen B2B-Kunden zu sperren.
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.
Damit bleibt die Bestellhistorie erhalten und der Zugang ist trotzdem entzogen.
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
Ist der Kunde in der SelectLine inaktiv oder das Kundenkennzeichen nicht gesetzt, wird die Bestellung nicht importiert. Im Protokoll steht der Hinweis, dass der Kunde inaktiv ist. Das verhindert, dass gesperrte Kunden über den Shop weiter bestellen.
Weiter
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.
Weiter
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.
- Versand und Trackingnummern
- Bestelländerungen aus der SelectLine
- Zahlungseingang bei Vorkasse
Berücksichtigt werden nur Belege, die aus dem Shop stammen. Von Hand erfasste Belege bleiben unberührt.
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.
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.
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.
Beide Richtungen schließen sich aus. Ist der Import aktiv, wird kein Versand mehr an Shopify gemeldet.
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 |
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.
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.
Rabattpositionen bleiben außen vor. Sie entstehen aus Shopify-Rabatten und würden beim Zurückschreiben doppelt gezählt.
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.
Das ist Absicht: Sonst würde die Inbetriebnahme alle historischen Belege an den Shop melden und Kunden alte Versandbestätigungen erhalten.
Weiter
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.
Diese Verarbeitung ist standardmäßig ausgeschaltet. 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.
Was passiert
Zu jeder Rückerstattung im Shop:
- Existiert noch keine Rechnung zur Bestellung, wird sie als Nachfolger des Auftrags erzeugt — mit genau den erstatteten Positionen und Mengen.
- Darauf entsteht eine Gutschrift, verknüpft als Nachfolger der Rechnung.
- 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.
Über Ihr Zeichen erkennt FINN.ghost eine bereits verarbeitete Erstattung. Eine Erstattung wird deshalb nie doppelt gutgeschrieben, auch wenn die Bestellung mehrfach abgeholt wird.
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
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.
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
Laufender Betrieb
Zeitplan, Cache, Vorgehen bei fehlenden Daten und häufige Fragen.
Zeitplan der Übertragungen
Unter Shopify → Zeitsteuerung wird festgelegt, wie oft jede Aufgabe läuft. Auf derselben Seite stehen das Protokoll, der Zeitpunkt der letzten Ausführung und der nächste geplante Termin.
Die Aufgaben
| Aufgabe | Was sie tut |
|---|---|
| Artikelgruppen exportieren | Sammlungen anlegen und aktualisieren |
| Artikel exportieren (geänderte) | geänderte Artikel mit Bildern |
| Artikel exportieren (geänderte, ohne Bilder) | dasselbe ohne Bildübertragung |
| Artikel exportieren (alle) | Vollexport mit Bildern |
| Artikel exportieren (alle, ohne Bilder) | Vollexport ohne Bilder |
| Preise exportieren | Preis, Streichpreis und Katalogpreise |
| Bestand exportieren (geänderten) | Bestände mit Bewegung seit dem letzten Lauf |
| Bestand exportieren | alle Bestände, zusätzlich Statuspflege |
| Bestellungen importieren | Bestellungen holen, Versand und Zahlung zurückmelden |
| Sachmerkmale und Extrafelder aktualisieren | Metafeld-Definitionen anlegen |
| Exportiere Kunden | Kunden bzw. Unternehmen übertragen |
| Dateien aktualisieren | Journaldateien hochladen und zuordnen |
| Cache aktualisieren | Zuordnungstabelle neu aufbauen, siehe Der Cache |
Die Aufgaben laufen nacheinander
Das ist der wichtigste Punkt bei der Planung: Aufgaben laufen nicht gleichzeitig. Startet eine, während eine andere arbeitet, wartet sie.
Läuft ein Vollexport aller Artikel mehrere Stunden, warten in dieser Zeit alle anderen Aufgaben — auch der Bestellimport. Vollexporte gehören daher auf eine feste Uhrzeit in der Nacht und nicht in ein Intervall.
Ein Start von Hand über die Oberfläche umgeht das Warten und läuft sofort.
Shopify gibt das Tempo vor
Shopify begrenzt die Anzahl der Anfragen. FINN.ghost pausiert selbstständig, wenn das Kontingent knapp wird.
Deshalb lässt sich ein Vollexport nicht durch kürzere Intervalle beschleunigen — man erreicht nur, dass sich die Läufe gegenseitig blockieren. Bei großen Sortimenten ist die Nacht der richtige Ort für Vollläufe.
Empfehlung für einen mittelgroßen Shop
| Aufgabe | Empfehlung | Begründung |
|---|---|---|
| Bestellungen importieren | alle 5 Minuten | Bestellungen sollen zeitnah im ERP stehen |
| Bestand exportieren (geänderten) | alle 5 Minuten | häufigste Änderung im Tagesgeschäft |
| Artikel exportieren (geänderte, ohne Bilder) | alle 15 Minuten | Texte und Stammdaten zeitnah, ohne Bildlast |
| Artikel exportieren (geänderte) | stündlich | zieht die Bilder nach |
| Preise exportieren | stündlich | erfasst ablaufende Aktionspreise |
| Exportiere Kunden | stündlich | |
| Dateien aktualisieren | nachts, feste Zeit | ändert sich selten |
| Artikelgruppen exportieren | nachts, feste Zeit | ändert sich selten |
| Sachmerkmale und Extrafelder aktualisieren | nachts, feste Zeit | nur bei Strukturänderungen relevant |
| Bestand exportieren | nachts, feste Zeit | Korrekturlauf, pflegt auch den Status |
| Artikel exportieren (alle, ohne Bilder) | nachts, feste Zeit | Korrekturlauf |
| Cache aktualisieren | nachts, feste Zeit | siehe Der Cache |
| Artikel exportieren (alle) | nur von Hand | läuft je nach Artikelzahl viele Stunden |
Warum die nächtlichen Korrekturläufe wichtig sind
Der Änderungslauf erkennt Artikel daran, dass sich der Artikelstamm geändert hat. Zwei Dinge entgehen ihm:
- Preisänderungen und ablaufende Aktionen — dafür gibt es Preise exportieren.
- Alles, was sich nur in Nebentabellen ändert — dafür der nächtliche Vollauf ohne Bilder.
Ohne diese Läufe können Änderungen dauerhaft im Shop fehlen. Besonders auffällig bei Aktionspreisen: Eine abgelaufene Aktion bleibt im Shop stehen, bis der Preislauf sie korrigiert.
Was im Protokoll steht
Das Protokoll zeigt den Fortschritt, übersprungene Datensätze und Fehler.
Ein Lauf gilt als erfolgreich beendet, auch wenn alle Datensätze übersprungen wurden. Der Abschluss allein ist also kein Nachweis dafür, dass alles im Shop angekommen ist — dafür muss man ins Protokoll schauen.
Siehe Wenn etwas nicht im Shop ankommt.
Der Cache
Shopify vergibt für jedes Produkt, jede Variante, jede Sammlung und jedes Metafeld eine eigene interne Nummer. Diese Nummern stehen nirgends in der SelectLine. FINN.ghost führt deshalb eine eigene Zuordnungstabelle — den Cache.
Der Cache ist keine Kopie der Daten, sondern nur ein Verzeichnis: „SelectLine-Artikel 4711 ist im Shop das Produkt mit der Nummer 123456789". Ohne diesen Eintrag findet die Schnittstelle den Artikel im Shop nicht wieder.
Was im Cache steht
| Zuordnung | Wofür sie gebraucht wird |
|---|---|
| Artikelnummer → Produkt | Artikel wiederfinden statt doppelt anlegen |
| Artikelnummer → Variante | Preis und Bestand setzen |
| Artikelnummer → Sammlungen | Zuordnung nicht doppelt anlegen |
| Artikelgruppe → Sammlung | Sammlung wiederfinden |
| Sachmerkmal → Metafeld | Definition nicht doppelt anlegen |
| Extrafeld → Metafeld | Definition nicht doppelt anlegen |
| Kundennummer → Unternehmen | B2B-Unternehmen wiederfinden |
| CRM-Adresse → Firmenkontakt | B2B-Kontakte wiederfinden |
| Zahlungsarten | Liste für die Zuordnung der Zahlungsbedingungen |
Wann er erneuert werden muss
Immer, wenn im Shopify-Adminbereich Produkte, Varianten oder Sammlungen gelöscht oder von Hand angelegt wurden. Der Cache weiß davon nichts.
Die Folgen eines veralteten Caches sind typisch und gut erkennbar:
| Symptom | Ursache |
|---|---|
| Artikel entsteht im Shop doppelt | Produkt gelöscht, Cache zeigt noch darauf |
| Bestellimport meldet „Artikelnummer nicht gefunden" | Variante nicht im Cache |
| Preis- oder Bestandslauf meldet „VariantID nicht gefunden" | Variante nicht im Cache |
| Sammlungszuordnung entsteht doppelt | Sammlung im Shop neu angelegt |
Wie man ihn erneuert
Die Aufgabe Cache aktualisieren unter Shopify → Zeitsteuerung starten.
Sie verwirft die Tabelle und baut sie vollständig aus dem Shop neu auf: alle Sammlungen, alle Produkte mit ihren Varianten, alle Metafeld-Definitionen und — bei Shopify Plus — alle Unternehmen mit ihren Kontakten.
Das ist ein vollständiger Durchlauf durch den Shop und dauert bei großen Sortimenten entsprechend lange. Während er läuft, warten alle anderen Aufgaben. Der Lauf gehört deshalb in die Nacht — und nach jedem größeren Eingriff im Shopify-Adminbereich einmal von Hand angestoßen.
Die Zuordnung eines Produkts erfolgt über die SKU seiner ersten Variante. Ist das ein Variantenartikel, wird der Hauptartikel aus der SelectLine ermittelt.
Unbekannte Produkte archivieren
Unbekannte Produkte archivieren
Ist diese Einstellung aktiv, archiviert der Cache-Lauf zusätzlich alle Produkte, die
- keiner SelectLine-Artikelnummer zuzuordnen sind, oder
- deren Artikel nicht mehr für den Shop freigegeben ist.
Damit werden auch Produkte archiviert, die absichtlich nur im Shop existieren — etwa reine Shop-Artikel ohne Gegenstück in der SelectLine. Vor dem Einschalten prüfen, ob es solche Produkte gibt.
Der Cache und die Datensicherung
Der Cache liegt als Datei im Arbeitsverzeichnis des Dienstes. Er ist kein schützenswerter Datenbestand: Geht er verloren, baut die Aufgabe Cache aktualisieren ihn vollständig neu auf.
Nach einem Serverumzug oder einer Neuinstallation ist der Cache leer. Bevor irgendein Artikel- oder Bestellauf startet, muss deshalb Cache aktualisieren durchgelaufen sein — sonst entstehen alle Produkte im Shop doppelt.
Weiter
Wenn etwas nicht im Shop ankommt
Wenn etwas nicht im Shop ankommt
Die meisten Fälle lassen sich in wenigen Minuten selbst klären. Diese Seite geht die häufigsten Situationen der Reihe nach durch.
Ein Artikel fehlt im Shop
1. Ist das ShopAktiv-Feld gesetzt?
In der Artikelmaske das bei der Einrichtung vereinbarte Kennzeichen prüfen. Das ist mit Abstand die häufigste Ursache.
2. Ist der Artikel inaktiv?
Inaktive Artikel gehen nicht in den Shop.
3. Steht das Produkt im Shop als Entwurf?
Bei aktivem Neue Artikel als Entwurf hochladen landet ein neuer Artikel als Entwurf und ist nicht sichtbar, bis er im Adminbereich freigegeben wird. Solange er dort steht, überspringt ihn auch der Bestandslauf.
4. Läuft die Aufgabe überhaupt?
Unter Shopify → Zeitsteuerung nachsehen, ob Artikel exportieren (geänderte) ein Intervall hat und wann sie zuletzt gelaufen ist. Steht die Aufgabe dauerhaft auf wartend, blockiert ein großer Lauf.
5. Was sagt das Protokoll?
Im Protokoll nach der Artikelnummer suchen:
| Meldung enthält | Bedeutung |
|---|---|
| keine Bezeichnung | die Artikelbezeichnung ist leer |
| ist nicht ShopAktiv | Freigabekennzeichen nicht gesetzt |
| ist Inaktiv | Artikel ist inaktiv |
| hat kein Preis | kein Preis in der eingestellten Preisgruppe |
| hat keine Artikelgruppe | keine Gruppe zugeordnet |
| mehr als 3 Merkmale | Grenze von Shopify, Variantenartikel wird abgewiesen |
| Variante … hat keine Merkmale | Merkmale an der Variante fehlen |
Ein Artikel ist doppelt im Shop
Fast immer ein veralteter Cache: Das Produkt wurde im Adminbereich gelöscht oder von Hand angelegt.
Vorgehen: Das überzählige Produkt im Shopify-Adminbereich löschen, dann Cache aktualisieren starten. Siehe Der Cache.
Ein geänderter Preis kommt nicht an
Wurde nur der Preis geändert, ohne den Artikel selbst anzufassen, erkennt der Änderungslauf das nicht. Die Aufgabe Preise exportieren von Hand starten oder auf den nächsten geplanten Lauf warten.
Dasselbe gilt für abgelaufene Aktionspreise: Sie verschwinden erst mit dem nächsten Preislauf aus dem Shop.
Der Bestand stimmt nicht
| Prüfpunkt | Hinweis |
|---|---|
| Standortzuordnung | ohne Zuordnung wird kein Bestand übertragen |
| Produkt im Entwurfsstatus | wird vom Bestandslauf übersprungen |
| Bestandsführung abgeschaltet | global oder über das Artikelkennzeichen |
| Feld für Bestand 0 | Kennzeichen am Artikel oder an einer Stücklistenkomponente |
| Nachkommastellen | der Bestand wird abgeschnitten, 2,7 wird zu 2 |
| reservierte Menge | wird standardmäßig abgezogen |
Eine Bestellung fehlt in der SelectLine
1. Hat die Bestellung den Tag ImportError?
Im Shopify-Adminbereich nachsehen. Ist der Tag gesetzt, ist ein früherer Import gescheitert und wird nicht wiederholt.
Vorgehen: Ursache im Protokoll nachlesen, in der SelectLine beheben, dann den Tag entfernen. Beim nächsten Lauf wird die Bestellung erneut versucht.
2. Hat die Bestellung den Tag ImportIgnore?
Dann ist sie bewusst ausgenommen.
3. Ist die Bestellung bezahlt?
Nur vollständig bezahlte Bestellungen werden importiert. Für Zahlungsarten wie Rechnung muss der Haken Import bei der Zahlungsart gesetzt sein — siehe Zahlungs- und Versandarten.
4. Bekannte Ursachen
| Ursache | Erkennbar an |
|---|---|
| Artikelnummer nicht im Cache | Meldung „Bitte Cache erneuern" |
| Adressangabe zu lang | Meldung über die Feldlänge |
| Kunde hat Belegsperre | Meldung mit Kundennummer und Name |
| Kunde inaktiv (B2B) | Meldung, dass der Kunde inaktiv ist |
| Shopkunde nicht definiert | Abbruch mit entsprechendem Hinweis |
| Positionsanzahl stimmt nicht | Meldung über abweichende Positionsanzahl |
Der Belegbetrag weicht von der Bestellung ab
Häufigste Ursache: Es ist kein Promotion Artikel hinterlegt. Rabatte und Geschenkkarten werden dann übersprungen, und der Beleg ist teurer als die Bestellung. Siehe Zahlungs- und Versandarten.
Zweite Möglichkeit: Artikelpreise aus SelectLine verwenden ist aktiv. Dann rechnet die SelectLine die Preise selbst, und Abweichungen zum Shop sind möglich.
Der Versand wird nicht gemeldet
| Prüfpunkt | Hinweis |
|---|---|
| Belegtyp Versand hinterlegt | ohne diese Angabe wird nichts gemeldet |
| Beleg gedruckt | der Druck löst die Meldung aus |
| Paketnummer vorhanden | bei aktivem Nur Lieferstatus senden, wenn Paketnummer |
| Kennung im Feld Ihr Auftrag | ohne sfy_… findet die Schnittstelle den Beleg nicht |
| offenes Fulfillment in Shopify | wurde im Shop schon manuell versendet, unterbleibt die Meldung |
| Trackingnummern importieren | ist diese Einstellung aktiv, wird nichts gemeldet |
Regelmäßige Kontrolle
Zwei Auswertungen, die sich im Alltag bewährt haben:
- Bestellungen mit ImportError: im Shopify-Adminbereich nach diesem Tag filtern. Die Liste sollte leer sein; jeder Eintrag ist eine Bestellung, die nicht im ERP steht.
- Freigegebene Artikel ohne Shop-Eintrag: die Anzahl der Artikel mit Freigabekennzeichen mit der Produktanzahl im Shop vergleichen. Die Differenz sind die Artikel mit unvollständigen Daten.
Wenn es dabei bleibt
Wenden Sie sich an den Support und halten Sie bereit:
- die betroffene Artikel-, Kunden- oder Bestellnummer
- den Auszug aus dem Protokoll zum Zeitpunkt des Laufs
- welche Aufgabe zuletzt gelaufen ist
- ob zwischenzeitlich im Shopify-Adminbereich Produkte geändert wurden
Häufige Fragen
Muss ich im Shopify-Adminbereich noch etwas pflegen?
Im Normalfall nicht. Produkte, Preise, Bestände, Sammlungen, Metafelder und Kunden kommen aus der SelectLine. Im Shop pflegt man das, was dort hingehört: Navigation, Inhaltsseiten, Theme, Versandprofile, Zahlungsarten, Steuerregeln und Märkte.
Was passiert, wenn ich ein Produkt im Shop von Hand ändere?
Bei der nächsten Übertragung wird die Änderung überschrieben. Das betrifft Titel, Beschreibung, Preise, Bestand, Bilder, Metafelder und Sammlungszuordnungen.
Wer Texte oder Bilder im Shop redaktionell pflegen möchte, nutzt Nur neue Artikel hochladen — dann bleiben bestehende Produkte unangetastet.
Darf ich Produkte im Shop löschen?
Besser nicht. Nach dem Löschen zeigt der Cache auf ein Produkt, das es nicht mehr gibt, und der Artikel entsteht doppelt.
Wenn doch: anschließend Cache aktualisieren starten. Der bessere Weg ist, das Freigabekennzeichen in der SelectLine zu entfernen — dann wird das Produkt archiviert und alles bleibt konsistent.
Wie bekomme ich einen Artikel aus dem Shop heraus?
Das Freigabekennzeichen entfernen. Der Artikel wird dann archiviert, nicht gelöscht. Damit bleiben bestehende Bestellungen und die Adresse der Produktseite gültig.
Warum ist mein Variantenartikel nicht im Shop?
Wahrscheinlich hat er mehr als drei Merkmale — Shopify erlaubt nur drei. Der Artikel wird dann vollständig abgewiesen. Im Protokoll steht der Hinweis.
Warum stehen die Größen in der falschen Reihenfolge?
Die Optionswerte werden alphabetisch nach Merkmalsbezeichnung übertragen, also
L, M, S, XL. Die gewünschte Reihenfolge lässt sich im Shopify-Adminbereich am Produkt
einstellen und wird von der Schnittstelle nicht überschrieben.
Ein Kunde findet einen Artikel in der Sammlung nicht, obwohl er zur Untergruppe gehört
Sollte nicht vorkommen: Ein Artikel wird allen Sammlungen seines Zweigs zugeordnet. Wenn doch, den Artikel einmal neu exportieren.
Der umgekehrte Fall kommt häufiger vor — ein Artikel steht zusätzlich in einer alten Sammlung, weil er in der SelectLine die Gruppe gewechselt hat. Altzuordnungen werden nicht entfernt und müssen im Adminbereich aufgeräumt werden.
Sehen B2B-Kunden ihre eigenen Preise?
Über Märkte und Kataloge, ja. Je Katalog wird eine SelectLine-Preisgruppe zugeordnet — siehe Sprachen und Märkte. Kundenindividuelle Preise je Kunde kennt Shopify nicht.
Warum steht bei einem Artikel ein Bestand von 2, obwohl 2,7 Meter da sind?
Der Bestand wird ganzzahlig an den Shop übergeben und dabei abgeschnitten. Bei Artikeln in Bruchteilen ist das eine bewusste Sicherheitsreserve.
Kann ich einen Zeitraum erneut übertragen?
Ja. Die Schnittstelle merkt sich zu jeder Aufgabe, bis wann sie zuletzt gelaufen ist. Dieser Stand lässt sich zurücksetzen — das erfordert einen Eingriff in die Konfiguration bei gestopptem Dienst, bitte über den Support.
Für Artikel, Preise und Bestände geht es einfacher: Dafür genügen die Vollläufe.
Wie lange dauert eine Vollübertragung?
Das hängt an der Artikelanzahl, an den Bildern und am Anfragekontingent von Shopify. Als Anhaltspunkt: Ein Vollauf ohne Bilder ist ein Vielfaches schneller als einer mit Bildern. Beschleunigen lässt sich das nicht — das Tempo gibt Shopify vor.
Was bedeutet die Kennung sfy_… im Feld „Ihr Auftrag"?
Daran erkennt die Schnittstelle Belege, die aus dem Shop stammen. Enthalten sind die Bestellnummer und die interne Shopify-Nummer.
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.
Kann die Schnittstelle eine Bestellung im Shop ändern?
Ja, wenn ein Belegtyp Bestelländerungen hinterlegt ist. Dann werden Mengenänderungen, entfernte und hinzugefügte Positionen sowie geänderte Versandkosten aus der SelectLine zurück in die Bestellung geschrieben. Siehe Versand und Rückmeldungen.
Ohne diese Einstellung verändert die Schnittstelle Bestellungen nur im Status.
Werden Retouren automatisch verarbeitet?
Nur, wenn die Gutschriftverarbeitung ausdrücklich eingeschaltet ist — standardmäßig ist sie aus. Siehe Gutschriften und Storni.
Wer hat die Änderungen im Shop vorgenommen?
Die Schnittstelle arbeitet mit der eigenen App, die bei der Einrichtung im Shopify-Adminbereich angelegt wurde. In der Änderungshistorie erscheint deshalb diese App und nicht ein einzelner Mitarbeiter.
Wo finde ich heraus, was gerade läuft?
Shopify → Zeitsteuerung. Dort steht zu jeder Aufgabe, ob sie läuft oder wartet, wann sie zuletzt gelaufen ist und wann sie das nächste Mal fällig ist. Darunter das Protokoll.