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 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://.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 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 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 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 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 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 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 Preise Bestand und Verfügbarkeit 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 Sachmerkmale und Extrafelder Preise 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 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 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 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 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 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 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 E-Mail 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 Bestellungen 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 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__ 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__ 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 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 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 Zeitplan der Übertragungen 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.