ich habe hier eine kleine Herausforderung bei deren Lösung ich mich über ein paar Tipps freuen würde.
Es geht um einen gastronomischen Betrieb der derzeit produkte mit local delivery und Store Pickup vertreibt, so weit so gut.
Nun kommen noch 2 oder 3 Filialen hinzu. Die Anforderung sind nun, das die Produktpreise pro Filiale gesetzt werden sollen, das es für den Endkunden die Möglichkeit geben soll mittels einer PLZ Abfrage zu prüfen ob er beliefert werden kann, und die Kundendaten inkl. Passwort sollten identisch sein.
Der erste Gedanke war einfach unterschiedliche Standorte anzulegen, hier scheiterte es an den Produktpreisen.
Die nächste Möglichkeit mit mehreren Stores zu arbeiten löst zwar das Problem mit den Produktpreisen, wirft aber die Problematik mit unterschiedlichen Kundenprofilen auf.
Danke für deine Angaben und das kann ich voll verstehen, dass 1 Online Shop weit praktischer wäre für eine Online Präsenz für alle 3 Filialen und dieses Thema können wir hier gerne etwas ausbauen und analysieren. Dazu habe ich aber ein paar weitere Fragen um euren genauen Use-Case besser zu verstehen. Die erste Frage wäre ob du schon ein Shop mit uns hast, und wenn ja, wie hast du dieses Shop gestaltet mit Bezug auf deine 3 Filialen? Sollen Kunden praktisch für Home-Delivery oder Pickup im Online Shop bestellen können, wie z. B. auf Lieferando? Wäre es ein ähnliches Business Modell?
Wollt ihr also alle 3 Filialen im einen Online Schaufenster Shop anzeigen samt unterschiedliche Produkt Preise pro Filiale, aber die gleichen Produkte? Das wird leider schwierig da Shopify pro Produkt/Variante nur einen Preis anzeigen kann, sprich, nicht multiple Preise-Varianten für ein Produkt.
Und möchtest du dass die Kunden ihre PLZ im Shop auf Lieferung abfragen können, ist das richtig? Dazu habe ich ein paar Apps hier:
Oder haben alle Filialen dieselben Produkte und Preise? Wenn ja, dann wird das einfacher mit einem Shop. Wenn nein, dann wirst du ggf. ein Shop pro Filiale aufbauen müssen.
es gibt einen Shop, der im Moment in einer Filiale aktiv ist.
Hier kommen local pickup und local delivery zum einsatz.
Wenn nun die zweite Filiale eröffnet brauchen wir also einen neuen Shop, da zwar die Produkte identisch sind, aber nicht die Preise.
Gibt es denn die Möglichkeit die Kundendaten inkl. Passwörtern zwischen den Shops synchron zu halten oder die Kundendaten in einer externen DB zu speichern sodass Sie in allen Shops synchron sind?
Ja, aufgrund der andren Preise wird ein separates Shop notwendig sein. Du kannst aber alle Stammdaten zwischen den Shop synchronisieren und zwar haben wir tolle Plugins dafür die du gerne zum Shop hinzufügen zum testen:
Die beste App vom @Renars → Excelify = Matrixify (Sync → Products, Collections, Customers, Discounts, Draft Orders, Orders, Payouts, Pages, Blogs, Redirects, Activity, Metafields etc.)
Danke für die Apps, aber es geht mir darum das die Kundendaten automatisch in Echtzeit synchronisiert werden oder dass sich alle Shops die Kundendaten aus einer zentralen Instanz ziehen können.
Ja, hier gibt es einige technische Fragen die gestellt werden müssen beim Echtzeit Sync zwischen den verschiedenen Shops, da das ganze nicht so einfach ist.
Zum Beispiel “das jeder Kunde für alle Shops nur ein einziges Login hat egal ob er sich in Store1 oder Store231 einloggt” - das geht nicht so einfach denn wie behandelt man z. B. die folgende “relational-database” Probleme und Szenarien:
Neukunden haben entweder keine Kundenkonto-registrierung (Gastkunden) oder doch (registrierte Kunden). Was ist mit Neukunden ohne Kontoerstellung - wie soll das synchronisiert werden, oder welche Regeln werden im Backend der API Anbindung einprogrammiert um das steuern zu können?
Welchen Data-Mapping-Workflow mit mehreren Bedingungen und Validierungsprüfungen um den Neukunden-Datensatz zu erstellen (über alle Shops), werdet ihr in der Anbindung einprogrammieren, sobald eine neue Bestellung in einem der Shops erstellt wird?
Sind die ganzen Flows bi-direktional? Was ist der Nachteil einer bidirektionalen Synchronisierung zwischen den Shops, wenn man Kunden hat, die sich nur als Gäste anmelden?
Wie werden die Bestellungen die mit alle Kunden verbunden sind, mit oder ohne Kontoregistrierungen, synchronisiert? Hier gibt es ja zwei verschiedene Flows dei verbunden werden müssen, eine zur Verwaltung der Kundenintegration und eine zur Verwaltung der Order-integration.
Wollt ihr dafür Webhooks verwenden und wenn ja, wie?
Wie sieht es mit DSGVO aus? Derzeit können keine Kundenkontos einfach so erstellt werden ohne explizite Einwilligung der Kunden, ansonsten kann es in extremen Fällen zu Abmahnungen oder Anzeigen kommen?
Deswegen währe es sinnvoller, wenn es eine Möglichkeit gäbe, eine zentrale Instanz zu haben, aus der alle Daten kommen, inkl. Zugangsberechtigung.
Würde hier Multipass helfen und falls ja, gäbe es eine Möglichkeit dies außerhalb von Shopify plus zu nutzen?
Ein Order Sync ist nicht erforderlich, es geht lediglich darum das ein Kunde die Möglichkeit bekommt, in München und Augsburg z.B. den Login mit den Ihm bekannten Daten durchzuführen und jeweils lokal bestellen zu können.
Wenn es Gast Bestellungen gibt ist dies nicht relevant, da hier kein Kundenkonto angelegt wird.
Eine Zentrale Instanz ist definitiv eine gute Lösung für die zentrale Verwaltung der Stammdaten, wie z. B. die Kundendaten.
Bzgl. Multipass, dies is t in der Tat ein Feature des Plus Plans. Angenommen, du bist der Besitzer eines Website-Forums. Alle Benutzer müssen sich in das Forum einloggen, um Beiträge zu leisten. Mitglieder des Forums können dann ein Forum-T-Shirt über deinen Shopify-Shop kaufen. Leider müssen sich die Benutzer zuerst im Forum anmelden und dann in im Shopify-Shop einloggen, bevor sie ein T-Shirt kaufen können.
Multipass-Login ist für Shopbetreiber, die eine separate Website und einen Shopify-Shop haben. Es leitet die Benutzer von der Website zum Shopify-Shop um und meldet sie nahtlos mit derselben E-Mail-Adresse an, die sie für die Anmeldung auf der ursprünglichen Website verwendet haben. Wenn noch kein Konto mit dieser E-Mail-Adresse existiert, wird eines erstellt. Es besteht also keine Notwendigkeit, Kundendatenbanken zu synchronisieren.
Sobald Multipass aktiviert ist, wird ein Geheimnis mit dir geteilt dass du benötigst, um Tokens zu generieren, mit denen die Kunden sich im Shop anmelden können.
Vielleicht interessierst du dich für unsere Experten die ggf. ein paar Tricks mit solchen Use-Cases und externen Integrationen haben. @r8r und @tewe sind hier in der Community zu erreichen. Ansonsten haben wir auch ein paar Partner Agenturen die gerne beraten können um euch mit diesen Implementationsprojekt zu helfen? Wäre es erwägenswert eine Anfrage an diese Partner zu schicken?
Gabes Frageliste ist ein guter Ausgangspunkt – ich gehe auch mit seiner Einschätzung einher, dass die Umsetzung einer Art “SSO”-Lösung mit nicht-Plus-Shops nicht umsetzbar ist; zumindest nicht, wenn Du tatsächlich Kundenkonten möchtest.
Das Problem ist, dass – meines Wissens (und hoffentlich ist das noch so) – über die APIs die Kundenpasswörter nicht dekompiliert werden können. Insofern hängt sich’s da schon auf, sobald Kund*innen in einem der Stores ihr Passwort ändern; das kannst Du nicht synchron halten – weder über andere Stores, noch mit einem externen “Single point of truth”. Wenn Du ein externes System hast, das die Passwörter kennt (was nicht gut wäre), dann könntest Du zumindest in allen Shops automatisiert die entsprechenden Kundenkonten anlegen. Ob das mit (Passwort-)Updates auch so leicht funktioniert, das kann ich leider nicht beantworten; gebraucht hab ich das noch nie und die Doku erwähnt das nicht explizit.
@Gabe kann man Multipass über mehrere Stores parallel ziehen?
Hmmm, vielleicht hilft der Text aus dem Developer Doc, Mario:
Shopify verwendet E-Mail-Adressen als eindeutige Bezeichner für Kunden eines Shops. Bei der Registrierung von Kunden in Shopify muss der Händler in den folgenden Fällen den eindeutigen Bezeichner im Feld “Bezeichner” festlegen:
Die Site verwendet andere Bezeichner (z. B. Benutzernamen)
Zwei verschiedene Benutzer der Site könnten mit der gleichen E-Mail-Adresse registriert sein
Wenn die E-Mail-Adresse immer eindeutig ist, ist das Setzen des Feldes “Bezeichner” nicht erforderlich.
Nur ein Shopify-Konto kann eine bestimmte E-Mail-Adresse verwenden. Die Registrierung eines zweiten Kunden mit der gleichen E-Mail-Adresse (auch mit einem anderen “Bezeichner”) führt zu einem Fehler.
Q: If I pass an address in my multipass request for an existing customer who already has a stored address, which address takes precedence, or is the user presented with all options? A: The current behaviour is to give preference to any data passed in the multipass login request, so the address passed in the request would be presented to the customer. Unfortunately this behaviour means any existing addresses associated with the customer will be overwritten.
Q: Can I use multipass to access customer or update customer information? A: Aside passing data (address, tags, name) during the multipass login which overwrites existing data, it is not possible to update or access any customer information using multipass. Context/workaround: Create a customerAccessToken using the customerAccessTokenCreateWithMultipass mutation, and use the token to update or access customer data.
Q: Can I use the multipass identifier in lieu of the email, if the external login I’m using doesn’t provide access to users’ emails? A: Shopify uses email as the unique identifier for customer accounts on stores, and users have to have an email before they can be logged in to Shopify. Context/workaround: You can append the user’s identifier to an email domain. For example, {identifier}@example.com every time you use multipass to log the user in to your store.
Q: If I specify that after multipass login a customer should be redirected to checkout, would the customer’s information be prefilled for them? A: Yes, so far as that logged in user (existing) has an address associated with their account, their data will be prefilled for them. For new users, you can pass the address in the mulitpass request and the address data would be pre-populated after the user is logged in