Erstberatung
Einkaufswagen
Ihr Einkaufswagen ist im Moment leer.
Google Rating
5.0 138 Rezensionen seit Februar 2023

Intern

Handbuch lvate.de

Dieser Bereich ist passwortgeschützt. Bitte Zugangsdaten eingeben.

Internes Handbuch

Handbuch lvate.de

Übersicht

Diese Dokumentation beschreibt Aufbau und Pflege von lvate.de im Shopify Admin. lvate.de ist kein klassischer Onlineshop. Die Website basiert auf Behandlungsseiten (Treatments), Standortseiten, Content-Bereichen und einem an Clinicore angebundenen Buchungssystem.

Zweck dieses Handbuchs

  • Pflege von Inhalten, Treatments und Navigation
  • Verständnis der technischen Zusammenhänge zwischen Shopify, Theme und Clinicore
  • Nachvollziehbare Abläufe für wiederkehrende Aufgaben

Schnellzugriff im Shopify Admin

  • Treatments: Products
  • Collections: Products → Collections
  • Standortseiten: Online Store → Pages
  • Navigation: Online Store → Navigation
  • Metaobjects: Settings → Custom data
  • Expertenwissen: Blog posts → Blog news
  • Jobs: Blog posts → Blog jobs
  • Gutscheine: Products → Gift cards

Terminologie: Menü, Collection und Buchungs-Tag

lvate nutzt drei getrennte Systeme für die Einordnung von Treatments. Sie dürfen nicht verwechselt werden:

  • Navigation / Mega-Menü: Was Besucher im Header-Menü sehen (z. B. „Muskelrelaxans“). Pflege unter Online Store → Navigation und Theme-Editor → Header.
  • Collection: Gruppierung auf Übersichtsseiten (z. B. Collection „Muskelrelaxans“ mit Template collection.muskelrelaxans.json). Pflege unter Products → Collections.
  • Buchungs-Tag: Kategorie im Buchungsmodal (z. B. „Botox“). Pflege am Produkt unter Tags. Muss exakt einem erlaubten Tag entsprechen.

Beispiele:

  • Menü „Muskelrelaxans“ → Collection muskelrelaxans → Buchungs-Tag Botox
  • Menü „Lasertherapien“ → Collection lasertherapien → Buchungs-Tag Laser
  • Menü „Hyaluron“ → Collection hyaluron → Buchungs-Tag Hyaluronsäure
  • Chirurgie → Collection surgery-face oder alle-gesichtschirurgie → Buchungs-Tag Gesichtschirurgie

Ein Treatment kann im Menü sichtbar, in einer Collection gelistet und trotzdem im Buchungsmodal unsichtbar sein (oder umgekehrt). Alle drei Ebenen separat prüfen.

Zugang und Sichtbarkeit

In den Section-Einstellungen ein Zugangspasswort hinterlegen. Diese Seite nicht in der öffentlichen Navigation verlinken. Für Suchmaschinen ist die Seite mit noindex ausgeschlossen.

Treatments: Übersicht

Im Shopify Admin entsprechen Treatments den Products. Jedes Treatment hat eine eigene Produktseite, kann in Collections und Navigation erscheinen und im Buchungsflow buchbar sein.

Treatments: Anlegen & Bearbeiten

Neues Treatment anlegen

  1. Shopify Admin → ProductsAdd product
  2. Title, Description und Price eintragen
  3. Variant SKU = Clinicore Service-ID setzen (siehe Abschnitt unten)
  4. Theme template rechts: passende Vorlage wählen (z. B. von ähnlichem Treatment)
  5. Tags: Buchungs-Kategorie setzen (siehe Abschnitt Tags)
  6. Options: locations und reihenfolge anlegen
  7. Metafelder ausfüllen (Abschnitt Metafelder)
  8. Status Active, Speichern
  9. Customize → Section-Inhalte und Bilder prüfen
  10. In Collection und Navigation einbinden
  11. Testbuchung auf Staging

Bestehendes Treatment bearbeiten

  1. Shopify Admin → Products → Treatment suchen und öffnen
  2. Texte, Preis, SKU, Tags, Optionen oder Metafelder anpassen
  3. Speichern
  4. Für Bilder/Section-Layout: Customize (Theme-Editor)
  5. Template nur wechseln, wenn sich der Seitenaufbau grundlegend ändert

Treatments: SKU & Clinicore

Clinicore Service-ID (Variant SKU) setzen

Die SKU muss 1:1 der numerischen Service-ID aus Clinicore entsprechen. Ohne korrekte SKU keine Termine im Buchungsflow.

  1. Referenz: Vergleichbares Treatment in Products öffnen → unter Variants die SKU ablesen
  2. Oder Clinicore: Leistungen/Services → Service-ID ablesen (z. B. 4, 55, 104)
  3. Shopify Admin → Products → Produkt → Variants → Feld SKU eintragen
  4. Speichern

Feste Erstberatungs-IDs: minimal-invasiv 55, chirurgisch 104.

Clinicore-Voraussetzungen: Leistung muss Standort, Ärzte und buchbare Slots zugeordnet haben. Neue Leistung zuerst in Clinicore anlegen, dann SKU in Shopify.

Treatments: Produkt-Template

Produkt-Template zuweisen

Jedes lvate-Treatment nutzt eine eigene Theme-Vorlage (product.[name].json). Sie steuert Layout, Sections und Module der Produktseite.

  1. Shopify Admin → Products → Produkt öffnen
  2. Rechts: Theme template
  3. Passende Vorlage aus Dropdown wählen (bei neuem Treatment: Vorlage eines ähnlichen Treatments)
  4. Speichern
  5. Customize → Inhalte der Sections bearbeiten

Neues Layout nötig? Neue Datei product.[name].json im Theme anlegen oder Vorlage duplizieren. Erst nach Theme-Deployment im Dropdown sichtbar.

Theme-Editor: Was wo gepflegt wird

Am Produkt (Shopify Admin → Metafelder): Detailkarten (Dauer, Regeneration, …), Preis-Popup, surgery-Schalter, Standort-Links, buchungstitel.

Im Theme-Editor (Customize): Hero, Galerie, Textblöcke, CTA, verwandte Treatments, Sections mit fest eingebundenen Apps.

Häufige Sections auf Treatment-Seiten

  • Produkt-Hero / Galerie: Bilder und Haupttexte im Theme-Editor
  • Detailkarten: Inhalte aus Metafeldern (faq/custom), nicht im Editor
  • FAQ (Simesy / HelpLab): Wenn im Template eine App-Section eingebunden ist, FAQs in der jeweiligen App pflegen, nicht im Metafeld frequent_questions
  • Operierende Ärzte: Section operierende-aerzte auf Chirurgie-Templates. Ärzte als Blöcke mit Name, Bild, Link zur Arzt-Page. Das ist getrennt vom Metaobject arzt (Deep Links Buchung)
  • ProvenExpert: Nur bei surgery = true. Bewertungswidget, API-Einstellungen in Theme Settings
  • Chirurgie-Kontakt / surgery-info-card: Erscheint bei OPs zusätzlich zum normalen Kontaktblock
  • Verwandte Collections / Treatments: Collection-Auswahl in Section-Einstellungen

FAQs: App oder Metafeld?

  • Template enthält Simesy/HelpLab-Block → FAQs in der App pflegen
  • Template nutzt FAQ-Tab aus Metafeld frequent_questions → Metafeld am Produkt pflegen
  • Ältere Templates: Metafeld treatmentDurability (faq) für Haltbarkeit im FAQ-Tab

Treatments: Metafelder & surgery

Metafelder am Treatment pflegen

  1. Shopify Admin → Products → Produkt öffnen
  2. Nach unten scrollen zu Metafelder (Custom data)
  3. Gewünschte Felder ausfüllen
  4. Speichern

Alle Metafelder einzeln erklärt: Abschnitt Metafelder.

surgery (Chirurgie-Darstellung) setzen

Schalter für andere Darstellung bei OPs (Preis „Erstberatung ab“, Accordion-Detailkarten, Breadcrumb Chirurgie, ProvenExpert, Chirurgie-Kontakt).

  1. Products → Produkt → Metafelder → surgery
  2. true nur bei OPs, false bei minimal-invasiven Treatments
  3. Speichern

Optional: surgery_tags für Schlagworte (kommagetrennt), nur wenn surgery aktiv.

Treatments: Tags & Optionen

Buchungs-Tag setzen

  1. Products → Produkt → Bereich Tags
  2. Exakt einen Kategorie-Tag setzen: Botox, Kollagenstimulation, Skinbooster, Hyaluronsäure, Laser, Kosmetik, Infusionen, Dermatologie oder Gesichtschirurgie
  3. Speichern

Hinweis: Tag im Buchungsmodal (z. B. Botox) ≠ Menü-Name (z. B. Muskelrelaxans). Ideal: nur ein Buchungs-Tag pro Produkt.

Option locations (Standort-Buchbarkeit)

  1. Products → Produkt → VariantsOptions
  2. Option locations anlegen oder bearbeiten (Name exakt „locations“)
  3. Werte: München, Düsseldorf (Schreibweise konsistent)
  4. Speichern

Ohne locations erscheint das Treatment im Buchungsflow an keinem Standort.

Option reihenfolge (Sortierung im Modal)

  1. Products → Produkt → Options
  2. Option reihenfolge anlegen oder bearbeiten
  3. Wert: Zahl, z. B. 1, 2, 3 (niedriger = weiter oben in der Kategorie)
  4. Speichern

Treatments: Collection & Navigation

Collection und Navigation

  1. Collection: Products → Produkt → rechts Collections → passende Collection wählen
  2. Navigation: Online Store → Navigation → Main menu → Collection oder Produkt verlinken
  3. Details Collections: eigener Abschnitt Collections pflegen
  4. Details Navigation: Abschnitt Navigation und Mega-Menü

Wichtig: Menü-Sichtbarkeit, Collection-Zuordnung und Buchbarkeit im Modal sind drei getrennte Systeme. Alle drei prüfen.

Treatments: Prüfliste

Prüfliste nach jeder Änderung

  • Theme template zugewiesen, Seite korrekt aufgebaut
  • Variant SKU = Clinicore Service-ID
  • Buchungs-Tag gesetzt
  • Option locations gepflegt
  • Metafelder inkl. Preis-Popup ausgefüllt
  • surgery korrekt (true/false)
  • Collection und Navigation
  • Testbuchung auf Staging

Collections pflegen

Collections gruppieren Treatments auf Übersichtsseiten (z. B. Muskelrelaxans, Lasertherapien, Chirurgie). Sie steuern nicht die Buchbarkeit im Modal. Dafür sind Produkt-Tags und Option locations zuständig.

Collection anlegen oder bearbeiten

  1. Shopify Admin → Products → Collections
  2. Bestehende Collection öffnen oder Create collection
  3. Titel und Beschreibung pflegen
  4. Produkte manuell hinzufügen oder automatische Regeln definieren
  5. Speichern

Treatment einer Collection zuweisen

Variante A: Products → Produkt → rechts Collections → Collection anhaken → Speichern

Variante B: Collections → Collection öffnen → Produkte hinzufügen

Collection-Template wählen

Jede Collection kann ein eigenes Theme-Template nutzen. Das steuert Layout, Hero, Subnavigation und Karten-Stil.

  1. Collections → Collection öffnen
  2. Rechts: Theme template
  3. Passendes Template wählen (z. B. muskelrelaxans, lasertherapien, hyaluron, surgery-face)
  4. Speichern
  5. Customize → Section-Inhalte prüfen (Titel, Texte, Bilder)

Bekannte Templates im Theme: muskelrelaxans, lasertherapien, hyaluron, skinbooster-treatments, cosmetology, dermatologie, surgery-face, alle-gesichtschirurgie, lvate-drips, alle-treatments und weitere.

Badges auf Treatment-Karten

Badges (z. B. „Neu“) erscheinen auf Collection-Karten, wenn am Produkt beide Metafelder gesetzt sind:

  • badge (Text, z. B. „Neu“)
  • badge_class (CSS-Klasse, Standard: label-style-overlay)

Die Collection-Section muss den Label-Stil „Overlay“ unterstützen, sonst wird das Badge nicht sichtbar. Details: Abschnitt Metafelder → badge / badge_class.

Collection im Menü verlinken

  1. Online Store → Navigation → Main menu
  2. Menüpunkt auf Collection setzen (nicht auf einzelnes Produkt, wenn Übersicht gewünscht)
  3. Speichern und Desktop/Mobile prüfen

Für Mega-Menü-Promos: Theme-Editor → Header → Block Mega menu. Siehe Abschnitt Navigation.

Featured Collection auf anderen Seiten

Standortseiten und Produktseiten können Treatments über die Section Featured Collection Switcher anzeigen. Dort wird nur die Collection ausgewählt. Treatments selbst werden unter Products gepflegt.

Typische Fehler

  • Treatment in Collection, aber nicht im Menü verlinkt (oder umgekehrt)
  • Collection-Template passt nicht zur Kategorie (falsches Layout)
  • Badge am Produkt gesetzt, aber badge_class fehlt oder Section unterstützt Overlay nicht
  • Collection sichtbar, Treatment im Buchungsmodal fehlt (Tags/locations prüfen)

Prüfliste

  • Alle aktiven Treatments in passender Collection
  • Richtiges Collection-Template gesetzt
  • Collection im Main menu verlinkt
  • Karten zeigen Bild, Titel, Preis und ggf. Badge korrekt
  • Buchbarkeit im Modal separat geprüft

Metafelder: Übersicht

Metafelder sind Zusatzfelder am Produkt. Das Theme liest sie für Buchung, Preisanzeige, Detailkarten und Layout. Pflege ausschließlich im Shopify Admin, nicht im Theme-Editor.

Pfad (für alle Felder): Shopify Admin → Products → Produkt öffnen → Metafelder

Allgemeine Hinweise

  • Leeres Feld = Information erscheint in der Regel nicht auf der Seite
  • Schalter (price_from, surgery): explizit true oder false setzen
  • Namespaces: custom, faq, product

Metafelder: Buchung & Preis

Metafelder einzeln

1. buchungstitel (custom, Text)

Zweck: Name des Treatments im Buchungsmodal. Wird an Clinicore übergeben.

Schritte:

  1. Produkt öffnen → Metafelder → buchungstitel
  2. Kurzen Anzeigenamen eintragen
  3. Speichern

Worauf achten: Wenn leer, wird der Produkttitel verwendet. Titel und buchungstitel dürfen unterschiedlich sein.

2. price_from (custom, Schalter)

Zweck: Steuert auf der Produktseite, ob „ab“ vor dem Preis steht.

Schritte:

  1. Metafelder → price_from → true (Mindestpreis) oder false (Festpreis)
  2. Speichern

Worauf achten: Wirkt auf Produktseite, nicht im Buchungsmodal (dort immer „ab“ bei nicht-chirurgischen Treatments).

3. popup_headline (custom, Text)

Zweck: Überschrift im Preis-Popup („Wie sich der Preis zusammensetzt“) auf der Produktseite.

Schritte:

  1. Metafelder → popup_headline eintragen
  2. Speichern

Worauf achten: Immer zusammen mit popup_beschreibung pflegen. Text kommt nicht aus dem Theme-Editor.

4. popup_beschreibung (custom, Text)

Zweck: Erklärung im Preis-Popup, warum der Preis variiert oder was enthalten ist.

Schritte:

  1. Metafelder → popup_beschreibung eintragen
  2. Speichern

Worauf achten: Nur einfacher Text. Medizinische/preisliche Aussagen abstimmen.

5. surgery (custom, Schalter)

Zweck: Legt fest, ob das Treatment die chirurgische oder minimal-invasive Darstellung erhält (Layout, Preis-Text, Navigation, Kontakt).

Schritte:

  1. Metafelder → surgery → true (OP) oder false (minimal-invasiv)
  2. Speichern
  3. Produktseite und Buchungsmodal prüfen

Worauf achten: Nur bei OPs true. Erstberatung chirurgisch: SKU 104. Details: Abschnitt Treatments.

6. surgery_tags (custom, Text)

Zweck: Schlagworte auf chirurgischen Produktseiten (z. B. „Gesicht“, „Körper“).

Schritte:

  1. Metafelder → surgery_tags
  2. Tags kommagetrennt eintragen
  3. Speichern

Worauf achten: Nur wenn surgery = true. Keine Wirkung auf Buchungsflow.

Metafelder: Detailkarten

Metafelder einzeln

7. treatment (faq, Text)

Zweck: Behandlungsdauer. Detailkarte „Dauer“ und Anzeige im Buchungsmodal.

Schritte:

  1. Metafelder → treatment (faq)
  2. Format z. B. „30 Minuten“ eintragen
  3. Speichern

Worauf achten: Einheitliches Format verwenden.

8. regeneration (faq, Text)

Zweck: Regenerations- bzw. Ausfallzeit. Detailkarte „Regeneration“.

Schritte:

  1. Metafelder → regeneration
  2. Text eintragen
  3. Speichern

Worauf achten: Nur wenn relevant. Realistische Angaben.

9. onsetOfAction (faq, Text)

Zweck: Wirkeintritt. Detailkarte „Wirkeintritt“.

Schritte:

  1. Metafelder → onsetOfAction
  2. Text eintragen
  3. Speichern

Worauf achten: Typisch bei Injectables. Bei OPs meist nicht nötig.

10. wirkstoff (custom, Text)

Zweck: Wirkstoff oder Produktname. Detailkarte „Wirkstoff“.

Schritte:

  1. Metafelder → wirkstoff
  2. Eintragen
  3. Speichern

Worauf achten: Markennamen korrekt (®, ™).

11. haltbarkeit (custom, Text)

Zweck: Wirkdauer des Ergebnisses. Detailkarte „Haltbarkeit“.

Schritte:

  1. Metafelder → haltbarkeit
  2. Eintragen
  3. Speichern

Worauf achten: Vorsichtig formulieren, z. B. „6 bis 12 Monate“.

12. geeignet (custom, Text)

Zweck: Zielgruppe / Indikation. Detailkarte „Geeignet für“.

Schritte:

  1. Metafelder → geeignet
  2. Eintragen
  3. Speichern

Worauf achten: Kurz und sachlich.

13. schmerzen (custom, Text)

Zweck: Schmerzlevel oder Betäubung. Detailkarte „Schmerzen“.

Schritte:

  1. Metafelder → schmerzen
  2. Eintragen
  3. Speichern

Worauf achten: Einheitliche Formulierungen im Team.

14. laser (custom, Text)

Zweck: Laser- oder Geräteinformation. Detailkarte „Laser“.

Schritte:

  1. Metafelder → laser
  2. Eintragen
  3. Speichern

Worauf achten: Nur bei Laser-Treatments.

15. treatmentDurability (faq, Text)

Zweck: Haltbarkeit des Treatment-Ergebnisses. Wird in älteren Produkt-Templates im FAQ-Tab angezeigt.

Schritte:

  1. Metafelder → treatmentDurability (Namespace faq)
  2. Text eintragen
  3. Speichern

Worauf achten: Nur relevant, wenn das Template den FAQ-Tab nutzt. Bei FAQ-Apps (Simesy/HelpLab) stattdessen in der App pflegen.

15b. zielstruktur (custom, Text)

Zweck: Behandelte Hautschicht. Detailkarte „Zielstruktur“.

Schritte:

  1. Metafelder → zielstruktur
  2. Eintragen
  3. Speichern

Worauf achten: Verständlich für Laien formulieren.

Metafelder: Chirurgie

Metafelder einzeln

16. dauer_der_op (custom, Text)

Zweck: Dauer des operativen Eingriffs. Detailkarte „Dauer der OP“.

Schritte:

  1. Metafelder → dauer_der_op
  2. Eintragen
  3. Speichern

Worauf achten: Nicht mit treatment (Beratungsdauer) verwechseln.

17. sportunfahigkeit (custom, Text)

Zweck: Sportpause nach Behandlung. Detailkarte „Sportunfähigkeit“.

Schritte:

  1. Metafelder → sportunfahigkeit
  2. Eintragen
  3. Speichern

Worauf achten: Vor allem bei OPs.

18. gesellschaftsfahigkeit (custom, Text)

Zweck: Wann wieder gesellschaftsfähig. Detailkarte „Gesellschaftsfähigkeit“.

Schritte:

  1. Metafelder → gesellschaftsfahigkeit
  2. Eintragen
  3. Speichern

Worauf achten: Realistische Zeiträume.

19. klinikaufenthalt (custom, Text)

Zweck: Klinikaufenthalt-Dauer. Detailkarte „Klinikaufenthalt“.

Schritte:

  1. Metafelder → klinikaufenthalt
  2. Eintragen
  3. Speichern

Worauf achten: Nur bei relevanten Eingriffen.

20. narkoseart (custom, Text)

Zweck: Art der Narkose/Sedierung. Detailkarte „Narkoseart“.

Schritte:

  1. Metafelder → narkoseart
  2. Eintragen
  3. Speichern

Worauf achten: Medizinisch korrekt.

21. kosten (custom, Text)

Zweck: Zusätzliche Kostenhinweise neben dem Shopify-Preis. Detailkarte „Kosten“.

Schritte:

  1. Metafelder → kosten
  2. Eintragen
  3. Speichern

Worauf achten: Ersetzt nicht den Produktpreis in Shopify.

22. sichtbare_ergebnisse (custom, Text)

Zweck: Wann Ergebnisse sichtbar werden. Detailkarte „Sichtbare Ergebnisse“.

Schritte:

  1. Metafelder → sichtbare_ergebnisse
  2. Eintragen
  3. Speichern

Worauf achten: Besonders bei OPs wichtig.

23. nachbehandlung (custom, Text)

Zweck: Nachsorge-Hinweise. Detailkarte „Nachbehandlung“.

Schritte:

  1. Metafelder → nachbehandlung
  2. Eintragen
  3. Speichern

Worauf achten: Klar und verständlich.

24. vorteile (custom, Text)

Zweck: Vorteile der Methode. Detailkarte „Vorteile“.

Schritte:

  1. Metafelder → vorteile
  2. Eintragen
  3. Speichern

Worauf achten: Sachlich, keine übertriebenen Versprechen.

Metafelder: Standort & Layout

Metafelder einzeln

25. standort (custom, Metaobject)

Zweck: Verknüpfung mit Standort-Metaobjekten. Detailkarte „Location“ mit Links.

Schritte:

  1. Metafelder → standort
  2. Standort-Metaobject(s) auswählen
  3. Speichern

Worauf achten: Bevorzugte Methode. Metaobjects unter Settings → Custom data → standort pflegen.

26. location (custom, Text)

Zweck: Fallback-Standorte als Text, kommagetrennt (z. B. „München, Düsseldorf“).

Schritte:

  1. Metafelder → location
  2. Stadtnamen eintragen
  3. Speichern

Worauf achten: Schreibweise muss zu Metaobject-Namen passen. Wenn möglich standort nutzen.

27. badge (custom, Text)

Zweck: Badge-Text auf Treatment-Karten in Collections (z. B. „Neu“).

Schritte:

  1. Metafelder → badge
  2. Text eintragen
  3. Speichern

Worauf achten: Nur sichtbar mit badge_class.

28. badge_class (custom, Text)

Zweck: CSS-Klasse für das Badge auf Collection-Karten.

Schritte:

  1. Metafelder → badge_class
  2. Wert label-style-overlay eintragen (Standard)
  3. Speichern

Worauf achten: Funktioniert nur zusammen mit gesetztem badge-Text. Die Collection-Section muss Overlay-Badges unterstützen. Ohne passende Klasse bleibt das Badge unsichtbar.

29. verlauf (custom, Text/Farbe)

Zweck: Farbverlauf über Produktbildern in Listen und Galerie.

Schritte:

  1. Metafelder → verlauf
  2. Wert setzen oder leer lassen
  3. Speichern

Worauf achten: Nur wenn passend zum Bild.

30. treatment_details_headline (custom, Text)

Zweck: Überschrift über dem ausführlichen Behandlungstext.

Schritte:

  1. Metafelder → treatment_details_headline
  2. Eintragen
  3. Speichern

Worauf achten: Wenn leer, keine Headline. Größe hängt von surgery ab.

31. treatment_details (product, Rich Text)

Zweck: Ausführlicher Behandlungstext mit Formatierung.

Schritte:

  1. Metafelder → treatment_details (product)
  2. Text formatieren
  3. Speichern

Worauf achten: Namespace product, nicht custom.

32. frequent_questions (product, Rich Text)

Zweck: FAQ-Inhalt für FAQ-Section auf Produktseiten.

Schritte:

  1. Metafelder → frequent_questions (product)
  2. FAQ-Text eintragen
  3. Speichern

Worauf achten: Nicht jedes Template nutzt dieses Feld. Manche nutzen FAQ-Apps.

Metafelder: Fehler & Prüfliste

Typische Fehler

  • Preis-Popup leer: popup_headline oder popup_beschreibung fehlt
  • Kein „ab“ auf Produktseite: price_from nicht true
  • Falscher Buchungsname: buchungstitel fehlt oder veraltet
  • Detailkarte fehlt: Feld leer oder falscher Namespace
  • Standort ohne Link: location-Text passt nicht zu Metaobject
  • Falsche Darstellung: surgery fälschlich true

Prüfliste Metafelder

  • Relevante Felder ausgefüllt, irrelevante leer
  • buchungstitel, popup_*, price_from, surgery geprüft
  • Produktseite im Browser: Detailkarten, Popup, Buchungsmodal

Buchung: Übersicht

Das Buchungstool ist direkt in lvate.de integriert. Kunden buchen über ein Modal-Fenster, das Termine aus Clinicore lädt und die Buchung wieder an Clinicore zurückgibt. Es gibt keinen separaten Buchungs-Shop.

Zwei Buchungswege

Globaler Flow (Button „Termin buchen“ im Header): Standort → Treatment → Datum/Uhrzeit → Kontaktdaten → SMS → Bestätigung

Flow ab Produktseite (Button auf der Treatment-Seite): Das Treatment ist bereits gewählt. Der Ablauf beginnt bei der Standortwahl, danach Datum/Uhrzeit → Kontaktdaten → SMS → Bestätigung.

Schrittübersicht (globaler Flow)

  1. Standort wählen (kein Navigationspunkt, Vorschritt)
  2. Treatment wählen (Nav: „Treatment“)
  3. Tag und Uhrzeit wählen (Nav: „Tag & Uhrzeit“)
  4. Kontaktdaten (Nav: „Kontaktdaten“)
  5. SMS-Bestätigung (kein Navigationspunkt)
  6. Bestätigung (Erfolgsseite im Modal)

Ab der Produktseite entfällt Schritt 2 in der Navigation. Mobile zeigt dort nur noch zwei Schritte an.

Schritt 1: Standort

Schritt 1: Standort wählen

Darstellung im Modal: Liste der Boutiquen mit Name und Adresse. Überschrift: „Wähle deine Boutique“. Nur Standorte, an denen mindestens ein Treatment buchbar ist, sind klickbar.

Was passiert technisch: Das Theme lädt die Shopify Locations und liest aus Adresszeile 2 die Clinicore Location-ID. Diese ID wird für alle weiteren API-Aufrufe (Treatments, Ärzte, Termine) verwendet.

Standortname und Adresse im Modal ändern

  1. Shopify Admin → Settings → Locations
  2. Standort öffnen (z. B. München)
  3. Location name, Address line 1, City, ZIP bearbeiten
  4. Speichern

Clinicore-Verknüpfung (Adresszeile 2)

  1. Shopify Admin → Settings → Locations
  2. Standort öffnen
  3. Address line 2 = numerische Clinicore Location-ID eintragen
  4. Speichern. Nur mit Rücksicht auf Clinicore ändern

Standort für ein Treatment freischalten

  1. Shopify Admin → Products → Produkt öffnen
  2. Option locations → Stadt eintragen (z. B. München)
  3. Speichern

Standort-Bilder im Buchungsmodal (wichtig)

Die Bilder neben den Standort-Karten im Buchungsmodal werden nicht in Settings → Locations hochgeladen und nicht im Theme-Editor geplegt. Das Theme lädt sie automatisch anhand des Location-Namens aus Settings → Locations.

So funktioniert die Bild-Zuordnung:

  1. Shopify liefert den Standortnamen aus Settings → Locations (Feld Location name)
  2. Das Theme wandelt den Namen in einen Dateinamen um (Umlaute ersetzen, Leerzeichen entfernen)
  3. Das Bild wird von der URL https://lvate.de/cdn/shop/files/[Dateiname].png geladen

Regeln für den Dateinamen (Schritt für Schritt):

  1. Den exakten Location name aus Settings → Locations nehmen
  2. Umlaute ersetzen: ä→ae, ö→oe, ü→ue, ß→ss
  3. Jedes Wort mit Großbuchstabe beginnen (z. B. Muenchen, Duesseldorf)
  4. Leerzeichen durch Unterstrich ersetzen (nur bei mehrteiligen Namen nötig)
  5. Sonderzeichen entfernen
  6. Dateiendung: .png

Beispiele (Location name → Dateiname):

  • „München“ → Muenchen.png
  • „Düsseldorf“ → Duesseldorf.png
  • „Hamburg“ → Hamburg.png

So lädst du das Bild hoch:

  1. Shopify Admin → Content → Files
  2. Upload files klicken
  3. PNG-Datei mit exakt dem abgeleiteten Namen hochladen (z. B. Muenchen.png)
  4. Speichern und nach wenigen Minuten im Buchungsmodal prüfen

Worauf achten:

  • Falscher Dateiname = kein Bild oder kaputtes Bild im Modal. München.png funktioniert nicht, korrekt ist Muenchen.png
  • Der Location name in Settings → Locations muss exakt zum erwarteten Dateinamen passen. Bei Umbenennung der Location auch Dateiname prüfen
  • Empfohlenes Format: PNG, Querformat, mind. 800 px Breite
  • Adresse und Name im Modal kommen aus Settings → Locations. Nur das Bild kommt aus Content → Files

Überschrift „Wähle deine Boutique“ ändern

locales/de.jsonbooking.headings.choose_boutique. Theme-Deployment nötig.

Clinicore: Standort, Ärzte, Services und Slots müssen dort gepflegt sein.

Schritt 2: Treatment

Schritt 2: Treatment wählen (nur globaler Flow)

Darstellung im Modal: Akkordeons nach Kategorie (z. B. Botox, Hyaluronsäure, Laser). In jedem Akkordeon die buchbaren Treatments mit Preis. Oben ein Dropdown zum Wechseln des Standorts. Zwei feste Buttons für die Erstberatung (minimal-invasiv und chirurgisch).

Voraussetzung: Treatment erscheint im Modal

Alle folgenden Punkte müssen am Produkt erfüllt sein:

  • Status Active
  • Variant SKU = Clinicore Service-ID
  • Passender Produkt-Tag (Buchungs-Kategorie)
  • Option locations enthält den gewählten Standort

Treatment in eine Kategorie einordnen (Produkt-Tag)

  1. Shopify Admin → Products
  2. Produkt öffnen
  3. Im Bereich Tags den Kategorie-Tag setzen
  4. Tag muss exakt einem erlaubten Namen entsprechen (Groß-/Kleinschreibung beachten)
  5. Speichern

Erlaubte Tags (= Kategoriename im Modal): Botox, Kollagenstimulation, Skinbooster, Hyaluronsäure, Laser, Kosmetik, Infusionen, Dermatologie, Gesichtschirurgie

Hinweis: Pro Produkt idealerweise nur ein Buchungs-Tag setzen. Mehrere Tags können die Zuordnung stören.

Reihenfolge innerhalb einer Kategorie ändern

  1. Shopify Admin → Products → Produkt öffnen
  2. Scrollen zu Variants → Bereich Options
  3. Option reihenfolge anlegen oder bearbeiten (Name exakt „reihenfolge“)
  4. Als Wert eine Zahl eintragen, z. B. 1, 2, 3 (niedrigere Zahl = weiter oben)
  5. Speichern

Anzeigename im Buchungsmodal ändern

  1. Shopify Admin → Products → Produkt öffnen
  2. Metafelder → buchungstitel (custom)
  3. Text eintragen (kurzer Name für das Modal)
  4. Speichern. Wenn leer, wird der Produkttitel verwendet

Preis im Buchungsmodal ändern

  1. Shopify Admin → Products → Produkt öffnen
  2. Feld Price bei der Variante anpassen
  3. Speichern

Prefix „ab“ oder „Erstberatung ab“ wird automatisch gesetzt. Details: Abschnitt Preise im Buchungssystem.

Chirurgie-Darstellung im Modal (Metafeld surgery)

  1. Shopify Admin → Products → Produkt öffnen
  2. Metafelder → surgery auf true (OP) oder false (minimal-invasiv)
  3. Speichern

Bei surgery = true erscheint „Erstberatung ab“ statt nur „ab“. Siehe auch Abschnitt Treatments → Metafeld surgery.

Treatment an Standort koppeln (Option locations)

  1. Shopify Admin → Products → Produkt öffnen
  2. Option locations anlegen oder bearbeiten
  3. Stadt eintragen, z. B. München, Düsseldorf (Schreibweise konsistent halten)
  4. Speichern

Ohne passenden Eintrag erscheint das Treatment an diesem Standort nicht.

Reihenfolge der Kategorien ändern

Nicht im Shopify Admin möglich. Die Kategorie-Reihenfolge ist fest im Theme-Code hinterlegt:

Botox → Kollagenstimulation → Skinbooster → Hyaluronsäure → Laser → Kosmetik → Infusionen → Dermatologie → Gesichtschirurgie

Änderung nur über Theme-Code in snippets/modal-treatment.liquid (Array categoryOrder). Unbekannte Tags erscheinen alphabetisch am Ende.

Erstberatung-Buttons ändern

Nicht über einzelne Produkte steuerbar. Die beiden Buttons sind fest im Theme:

  • Minimal-invasiv: SKU 55, Preis 75 €
  • Chirurgisch: SKU 104, Preis 75 €

Text, Preis oder SKUs ändern: Theme-Code modal-treatment.liquid. Leistungen müssen in Clinicore existieren.

Überschrift des Schritts ändern („Wähle ein Treatment“)

Nicht im Shopify Admin. Text liegt in locales/de.json unter booking.headings.choose_treatment. Änderung erfordert Theme-Deployment.

Schritt 3: Datum & Uhrzeit

Schritt 3: Tag und Uhrzeit wählen

Darstellung im Modal: Kalender mit Terminen (30-Min-Raster, 09:00 bis 20:30 Uhr). Dropdown „Behandler/in (optional)“. Schnellnavigation (Nächster Termin, In 2 Wochen …). Sonntags: „Boutique geschlossen“.

Verfügbare Termine pflegen

Termine kommen aus Clinicore, nicht aus Shopify.

  1. Clinicore Admin → Leistung dem Standort und Ärzten zuordnen
  2. Buchbare Slots / Öffnungszeiten hinterlegen
  3. Variant SKU im Shopify-Produkt muss zur Clinicore Service-ID passen

Reihenfolge der Ärzte im Dropdown ändern

  1. Shopify Admin → Settings → Custom data → Metaobjects
  2. Metaobject doc_sequence öffnen (Handle: doc-sequence-2pjibdo6)
  3. Feld muc oder dus bearbeiten: Liste der Arztnamen in gewünschter Reihenfolge
  4. Namen müssen exakt mit Clinicore übereinstimmen
  5. Speichern

Behandlungsdauer im Modal anzeigen (nur Produktflow)

  1. Shopify Admin → Products → Produkt öffnen
  2. Metafeld treatment (Namespace faq) pflegen, z. B. „30 Minuten“
  3. Speichern

Kalender-Texte ändern (Schnellnavigation, „Boutique geschlossen“)

Nicht im Shopify Admin. Texte in locales/de.json unter booking.buttons und booking.messages.boutique_closed. Theme-Deployment nötig.

Was in Clinicore liegt: Ärzte, Services, Slots, Öffnungszeiten.

Schritt 4: Kontaktdaten

Schritt 4: Kontaktdaten

Darstellung im Modal: Termin-Zusammenfassung (Datum, Uhrzeit, Arzt, Treatment, Preis). Formular mit Vorname, Nachname, Geburtstag, E-Mail, Telefon. Zwei Pflicht-Checkboxen. Button „Termin verbindlich buchen“.

Formular-Texte ändern (Labels, Platzhalter)

Nicht im Shopify Admin.

  1. Theme-Datei locales/de.json öffnen
  2. Bereich booking.labels und booking.placeholders bearbeiten
  3. Theme deployen / syncen

Stornobedingungen-Text ändern

  1. Theme-Datei locales/de.json öffnen
  2. Schlüssel booking.messages.cancellation_policy bearbeiten
  3. Theme deployen

Die Durchsetzung (24h, 75 € Ausfallvergütung) erfolgt in Clinicore, nicht in Shopify.

Datenschutz-Checkbox-Text ändern

  1. locales/de.jsonbooking.messages.privacy_agreement
  2. Theme deployen

Beim Absenden: Theme sendet Daten an Clinicore (POST /api/scheduler/appointments). Clinicore legt Termin an und löst SMS aus.

Schritt 5: SMS

Schritt 5: SMS-Bestätigung

Darstellung im Modal: Hinweis, dass ein Code per SMS gesendet wurde. Eingabefeld für den Bestätigungscode. Button „Code noch einmal senden“.

SMS-Texte im Modal ändern

  1. locales/de.jsonbooking.messages.sms_sent, enter_verification_code
  2. Button-Text: booking.buttons.resend_code
  3. Theme deployen

SMS-Versand: Vollständig in Clinicore (Inhalt, Versand, Code-Prüfung). Nicht in Shopify änderbar.

Schritt 6: Bestätigung

Schritt 6: Bestätigung

Darstellung im Modal: Erfolgsmeldung „Buchung erfolgreich“, Termindetails, Arztname und -bild. Button „Fenster schliessen“.

Erfolgs-Texte ändern

  1. locales/de.jsonbooking.messages.booking_successful_title
  2. booking.messages.booking_successful_subtitle
  3. Theme deployen

Buchung: Einstiegspunkte

Einstiegspunkte ins Buchungstool

Header-Button „Termin buchen“: Öffnet den globalen Flow (alle Standorte).

Standort-Buchungsseiten (auto-booking)

  • /pages/buchung-muc (München vorgewählt)
  • /pages/buchung-dus (Düsseldorf vorgewählt)
  • /pages/buchung-2 (kein Standort vorgewählt)

Die Section auto-booking öffnet das Modal automatisch beim Seitenaufruf. Titel und Button-Text sind im Theme-Editor der jeweiligen Page anpassbar.

Technisches Mapping in der Section (fest im Theme-Code):

  • muc / muenchen → Clinicore Location-ID 2
  • dus / dusseldorf / duesseldorf → Clinicore Location-ID 1
  • alle → kein Standort vorgewählt

Neue Standort-Buchungsseite oder geänderte Clinicore-IDs erfordern Anpassung im Theme-Code (sections/auto-booking.liquid).

Produktseite: Buchungs-Button öffnet den Produkt-Flow. Treatment, SKU und Standorte kommen aus dem Produkt.

Deep Links: URL-Parameter ?arzt=slug&service=SKU&standort=muc. Details: Abschnitt Ärzte & Deep Links.

Hash-Link: #buchung auf beliebigen Seiten öffnet das globale Modal.

Buchung: Ärzte & Deep Links

Deep Links öffnen das Buchungsmodal mit vorgewähltem Arzt, Treatment (Service) und Standort. Der Kunde landet direkt im Kalender (Schritt 3).

Metaobject arzt pflegen

Pfad: Shopify Admin → Settings → Custom data → Metaobjects → arzt

Felder:

  • name (Text): Anzeigename, exakt wie in Clinicore
  • clinicore_id (Text): numerische Arzt-ID aus Clinicore
  • standort (Text, optional): Referenz muc oder dus
  • default_service (Text, optional): Standard-SKU, z. B. 55 für Erstberatung

Der Handle des Metaobjects ist der URL-Slug (z. B. dr-surina-frey).

Deep-Link-URL aufbauen

Alle drei Parameter sind Pflicht:

  • arzt = Metaobject-Handle (Slug)
  • service = Variant SKU / Clinicore Service-ID
  • standort = muc, dus, muenchen oder duesseldorf

Beispiele:

  • /pages/buchung-muc?arzt=dr-surina-frey&service=4&standort=muc
  • /?arzt=dr-surina-frey&service=55&standort=dus

Neuen Arzt für Deep Links anlegen

  1. Clinicore: Arzt-ID und buchbare Leistungen prüfen
  2. Settings → Custom data → Metaobjects → arzt → Eintrag anlegen
  3. Handle (= Slug) festlegen, Felder ausfüllen
  4. Deep-Link-URL testen auf Staging
  5. Optional: Arzt-Profilseite (Page mit Template dr-*) verlinken

Abgrenzung: Section Operierende Ärzte auf Produktseiten und Section Experts auf Standortseiten sind redaktionelle Darstellung. Das Metaobject arzt steuert die technische Buchungs-Verknüpfung.

doc_sequence (Ärzte-Reihenfolge)

Separates Metaobject für Reihenfolge im Dropdown und Slot-Priorität. Handle: doc-sequence-2pjibdo6. Felder muc und dus: Liste der Arztnamen in gewünschter Reihenfolge. Details: Schritt 3 und Abschnitt Übersicht & Systeme.

Buchung: Staging & Veröffentlichung

Änderungen am Buchungssystem sollten immer zuerst auf Staging getestet werden, bevor das Theme live geht.

Was beim Testen wichtig ist

Das Buchungsmodal lädt Produkte und Standorte über die Shopify Admin API. Im Theme-Code ist die Datenquelle an den Store gekoppelt, der im Code hinterlegt ist. Beim lokalen Entwickeln mit shopify theme dev werden Theme-Änderungen sofort im Dev-Theme sichtbar.

Typischer Ablauf bei Treatment-Änderungen

  1. Änderung im Shopify Admin (Produkt, Tag, SKU, locations) → sofort im Store-Datenbestand
  2. Änderung im Theme (Modal, Texte, Sortierung) → Theme syncen/deployen
  3. Testbuchung auf Staging: globaler Flow, Produktflow, Deep Link
  4. Schritte 1 bis 6 inkl. SMS und Bestätigung durchspielen
  5. Erst danach Theme live schalten

Was im Shopify Admin sofort wirkt

  • Produktpreis, Tags, Optionen, Metafelder, Locations
  • Metaobjects (arzt, doc_sequence, standort)
  • Gift Cards, Pages, Navigation

Was Theme-Deployment braucht

  • Texte in locales/de.json (booking.*)
  • Kategorie-Reihenfolge, Erstberatungs-Buttons (75 €, SKU 55/104)
  • auto-booking Standort-Mapping
  • Neue Produkt- oder Collection-Templates

Prüfliste vor Live-Gang

  • Testbuchung Staging: mindestens ein Treatment pro Standort
  • SKU und Location-ID gegen Clinicore geprüft
  • Neue Treatments: Tag, locations, Collection, Menü, Modal-Sichtbarkeit
  • Bei Deep Links: Metaobject arzt getestet

Buchung: Preise

Preise im Buchungssystem

Die Preise, die Kunden im Buchungsflow und auf Treatment-Seiten sehen, kommen fast vollständig aus Shopify, nicht aus Clinicore. Clinicore steuert Termine und Services, aber nicht die Preisanzeige auf der Website.

1. Treatment-Preise (normaler Fall)

Quelle: Shopify Admin → Products → Produkt → Price (Variantenpreis)

Wo sichtbar:

  • Buchungsmodal: Treatment-Liste, Zusammenfassung in Kontaktdaten, Bestätigungsseite
  • Produktseite: Preis neben dem Buchungs-Button
  • Produktseite: Preis-Popup („Wie sich der Preis zusammensetzt“)

Technisch: Das Theme liest den Preis über die Shopify API aus der ersten Variante (variants[0].price).

2. Prefix vor dem Preis („ab“ / „Erstberatung ab“)

Im Buchungsmodal:

  • Nicht-chirurgische Treatments: immer Prefix „ab“
  • Chirurgische Treatments (surgery = true): Prefix „Erstberatung ab“

Auf der Produktseite (außerhalb Buchungsmodal): Metafeld price_from steuert, ob „ab“ vor dem Preis angezeigt wird. Metafeld surgery steuert „Erstberatung ab“.

Wichtig: Im Buchungsmodal wird price_from derzeit nicht ausgewertet. Dort erscheint bei nicht-chirurgischen Treatments immer „ab“, sofern ein Preis gesetzt ist.

3. Erstberatung (feste Buttons im Modal)

Quelle: Fest im Theme-Code hinterlegt, nicht aus dem Shopify-Produktpreis.

  • Minimal-invasive Erstberatung (SKU 55): 75,00 €
  • Chirurgische Erstberatung (SKU 104): 75,00 €

Preisänderung der Erstberatung erfordert Anpassung im Theme-Code (modal-treatment.liquid, Attribute data-price).

4. Preis-Popup auf der Produktseite

Quelle: Metafelder am Produkt.

  • popup_headline: Überschrift des Popups
  • popup_beschreibung: Erklärung, wie sich der Preis zusammensetzt

Details im Abschnitt Metafelder.

5. Zusätzliche Kostenhinweise (Detailkarte)

Quelle: Metafeld kosten am Produkt. Ergänzt den Shopify-Preis auf der Produktseite, ersetzt ihn nicht.

6. Was Clinicore nicht liefert

Clinicore liefert keine Preise für die Website-Anzeige. Die angezeigten Preise sind redaktionell in Shopify gepflegt.

Preis ändern: Kurzanleitung

  • Treatment-Preis im Buchungsflow: Shopify Admin → Products → Price anpassen
  • „ab“ auf Produktseite: Metafeld price_from
  • Preis-Erklärung (Popup): Metafelder popup_headline und popup_beschreibung
  • Erstberatung 75 €: Theme-Code (modal-treatment.liquid)
  • Stornogebühr 75 € (Hinweistext): Theme-Locale. Durchsetzung in Clinicore

Buchung: Übersicht & Systeme

Dieser Abschnitt fasst zusammen, wer welchen Teil des Buchungsflows steuert. In den Schritten 1 bis 6 steht jeweils der Detailablauf. Hier geht es um die Gesamtlogik: Was muss stimmen, damit ein Treatment im Modal erscheint, in der richtigen Reihenfolge steht und buchbar ist.

Darstellung im Modal (Kurzüberblick)

  1. Standort wählen (Schritt 1): Liste der Boutiquen
  2. Treatment wählen (Schritt 2): Akkordeons nach Kategorie (Botox, Laser, …), darin die einzelnen Treatments
  3. Termin wählen (Schritt 3): Kalender mit freien Slots, optional Arzt-Dropdown
  4. Daten eingeben, SMS, Bestätigung (Schritte 4 bis 6)

Ob ein Treatment in Schritt 2 sichtbar ist und an welcher Stelle es steht, hängt von mehreren Einstellungen in Shopify und Clinicore ab. Im Folgenden je Thema: Was passiert → Ursache → wo ändern.

Reihenfolge und Sichtbarkeit im Detail

Treatment erscheint an einem Standort nicht

Was passiert: Nach Standortwahl fehlt das Treatment in Schritt 2, obwohl es aktiv ist.

Ursache: Die Produktoption locations enthält den gewählten Standort nicht (z. B. „München“).

Schritte:

  1. Shopify Admin → Products → Produkt öffnen
  2. Variants → Option locations prüfen
  3. Standort-Wert ergänzen (Schreibweise wie in Settings → Locations)
  4. Speichern

Treatment erscheint in falscher Kategorie oder gar nicht

Was passiert: Treatment liegt unter „Laser“, sollte aber unter „Botox“ stehen, oder es fehlt komplett.

Ursache: Der Produkt-Tag bestimmt die Kategorie im Modal. Fehlt der Tag oder weicht die Schreibweise ab, wird das Treatment nicht korrekt einsortiert.

Erlaubte Tags: Botox, Kollagenstimulation, Skinbooster, Hyaluronsäure, Laser, Kosmetik, Infusionen, Dermatologie, Gesichtschirurgie.

Schritte:

  1. Shopify Admin → Products → Produkt → Tags
  2. Exakt einen Kategorie-Tag setzen
  3. Speichern

Worauf achten: Tag im Modal (z. B. „Botox“) ist nicht immer identisch mit dem Menünamen (z. B. „Muskelrelaxans“). Pro Produkt idealerweise nur ein Buchungs-Tag.

Reihenfolge der Kategorien im Modal

Was passiert: Die Akkordeon-Reihenfolge (z. B. Botox vor Laser) ist für alle Standorte gleich und lässt sich nicht im Shopify Admin ändern.

Ursache: Die Sortierung ist fest im Theme-Code hinterlegt (snippets/modal-treatment.liquid, Array categoryOrder).

Feste Reihenfolge: Botox → Kollagenstimulation → Skinbooster → Hyaluronsäure → Laser → Kosmetik → Infusionen → Dermatologie → Gesichtschirurgie.

Änderung: Nur über Theme-Entwicklung und Deployment. Unbekannte Tags landen alphabetisch am Ende.

Reihenfolge der Treatments innerhalb einer Kategorie

Was passiert: Zwei Treatments in derselben Kategorie erscheinen in ungewohnter Reihenfolge.

Ursache: Sortierung über die Produktoption reihenfolge (numerischer Wert, aufsteigend).

Schritte:

  1. Shopify Admin → Products → Produkt → Variants → Option reihenfolge
  2. Kleinere Zahl = weiter oben (z. B. 1 vor 2 vor 10)
  3. Speichern

Reihenfolge der Ärzte im Dropdown (Schritt 3)

Was passiert: Ärzte erscheinen im Dropdown „Behandler/in“ in fester Reihenfolge.

Ursache: Metaobject doc_sequence (Handle: doc-sequence-2pjibdo6) mit getrennten Listen für München (muc) und Düsseldorf (dus).

Schritte:

  1. Shopify Admin → Settings → Custom data → Metaobjects
  2. doc_sequence öffnen
  3. Feld muc oder dus bearbeiten: Arztnamen in gewünschter Reihenfolge
  4. Namen müssen exakt zu Clinicore passen
  5. Speichern

Slot-Priorität bei gleicher Uhrzeit

Was passiert: Wenn mehrere Ärzte denselben Slot anbieten und der Kunde „Alle“ wählt, entscheidet das System, welcher Slot angezeigt wird.

Ursache: Dieselbe doc_sequence-Liste. Der Arzt, der weiter oben steht, hat Priorität.

Pflege: Wie oben unter doc_sequence. Reihenfolge dort beeinflusst Dropdown und Slot-Auswahl.

Keine Termine im Kalender

Was passiert: Treatment ist sichtbar, aber Schritt 3 zeigt keine freien Zeiten.

Ursache: Termine kommen aus Clinicore, nicht aus Shopify. Häufige Gründe: keine Slots hinterlegt, Leistung nicht dem Arzt/Standort zugeordnet, falsche Service-ID.

Schritte:

  1. Clinicore Admin → Leistung, Standort, Ärzte und Slots prüfen
  2. Shopify → Variant SKU muss zur Clinicore Service-ID passen
  3. Settings → Locations → Adresszeile 2 = Clinicore Location-ID

Service grundsätzlich nicht buchbar

Was passiert: Buchung bricht ab oder Clinicore lehnt den Service ab.

Ursache: Die Variant SKU in Shopify ist die Clinicore Service-ID. Stimmt sie nicht, findet das System die Leistung nicht.

Schritte:

  1. Shopify Admin → Products → Variants → SKU prüfen
  2. Mit Clinicore Service-ID abgleichen
  3. Speichern und Testbuchung auf Staging

Welches System ist wofür zuständig?

Shopify Admin steuert, was im Modal angezeigt wird und in welcher Reihenfolge (Produkte, Tags, Optionen, Metafelder, Locations, Metaobjects wie doc_sequence und arzt).

Theme steuert, wie es aussieht und technisch angebunden ist: Modal-Aufbau, Texte (locales/de.json), feste Kategorie-Reihenfolge, Erstberatungs-Buttons (SKU 55 und 104), Kalenderdarstellung, API-Aufrufe an Clinicore, Deep-Links zu Ärzten.

Clinicore steuert, ob und wann gebucht werden kann: Services, Standorte, Ärzte, verfügbare Slots, Terminspeicherung, SMS-Versand, Stornoregeln und Ausfallgebühr (75 €, 24h).

Prüfliste nach Änderungen am Buchungssystem

Vor Veröffentlichung oder nach größeren Anpassungen diese Punkte auf Staging durchgehen:

  • Variant SKU = Clinicore Service-ID für jedes buchbare Treatment
  • Location Adresszeile 2 = Clinicore Location-ID (Settings → Locations)
  • Produkt-Tag gesetzt und Schreibweise exakt wie erlaubte Kategorie
  • Option locations für jeden buchbaren Standort gepflegt
  • Option reihenfolge gesetzt, wenn die Sortierung innerhalb der Kategorie wichtig ist
  • Testbuchung: globaler Flow (Header-Button) und Produktflow (Button auf Treatment-Seite)
  • SMS-Code und Bestätigungsseite (Schritte 5 und 6) vollständig durchspielen
  • Bei Arzt-Deep-Links: Metaobject arzt und Clinicore-ID prüfen

Standorte pflegen

Standort-Inhalte bei lvate.de liegen an drei Stellen, die getrennt voneinander gepflegt werden müssen:

  • Standortseiten (Online Store → Pages): Sichtbare Boutique-Seite mit Texten, Bildern, Team und Adresse für Besucher
  • Shopify Locations (Settings → Locations): Technische Standortdaten für das Buchungstool und Adressanzeige im Buchungsmodal
  • Metaobjects standort (Settings → Custom data): Verknüpfung von Treatments mit Standortlinks auf Produktseiten

Adresse, Telefon und Öffnungszeiten auf der Standortseite sind nicht automatisch mit Settings → Locations verknüpft. Beide Orte müssen bei Änderungen einzeln aktualisiert werden.

Bestehende Standortseiten

  • München: Page mit Template standort-muc
  • Düsseldorf: Page mit Template standort-dusseldorf
  • Hamburg: Page mit Template standort-hamburg (Standortseite live, Buchung derzeit nicht aktiv)

Shopify Locations (Settings → Locations)

Pfad: Shopify Admin → Settings → Locations

Diese Einstellung steuert primär das Buchungstool, nicht den sichtbaren Text auf der Standortseite.

Einzelne Felder und Zweck

1. Location name (Standortname)

Zweck: Name im Buchungsmodal (z. B. „München“, „Düsseldorf“). Wird auch für die Bild-Zuordnung im Buchungsmodal verwendet (siehe Abschnitt „Bilder fürs Buchungsmodal“).

Worauf achten: Schreibweise konsistent halten. Muss zu Produkt-Option locations und Metaobject-Namen passen.

2. Address line 1 (Adresszeile 1)

Zweck: Straße und Hausnummer im Buchungsmodal unter dem Standortnamen.

Worauf achten: Wird auf der Standortseite selbst nicht automatisch übernommen. Icon-Block auf der Page separat pflegen.

3. City, ZIP, Country

Zweck: PLZ und Stadt im Buchungsmodal.

4. Address line 2 (Adresszeile 2)

Zweck: Enthält die Clinicore Location-ID (numerisch). Diese Verknüpfung ist für den gesamten Buchungsflow zwingend erforderlich.

Worauf achten: Nur mit Rücksicht auf Clinicore ändern. Falsche ID = keine Termine oder Buchungsfehler. Nicht mit der postalischen Adresse verwechseln.

5. Phone / E-Mail

Zweck: Interne Shopify-Location-Daten. Die Kontaktdaten auf der Standortseite werden separat in der Section Icon Blocks gepflegt.

Standortseite im Theme-Editor bearbeiten

Pfad: Online Store → Pages → gewünschte Standortseite → Customize

Die Standortseite besteht aus mehreren Sections. Jede Section wird einzeln angeklickt und bearbeitet.

Section: Header Location (Hero-Bereich)

Was sichtbar ist: Großes Hero-Bild oben auf der Seite mit Überschrift (z. B. „Boutique“ + „München“).

Was ändern: Section anklicken → Block Slide bearbeiten.

  • Image: Hero-Hauptbild. Über „Auswählen“ hochladen oder aus der Mediathek wählen
  • Image 2: Optionales zweites Bild (Overlay-Variante)
  • Heading: Erste Zeile der Überschrift (z. B. „Boutique“)
  • Heading 2: Zweite Zeile (z. B. „München“)
  • Heading style: Primär oder Sekundär (Farbe/Stil)

Bilder hochladen: Beim Klick auf ImageUpload oder Datei auswählen. Bilder landen automatisch unter Content → Files im Shopify Admin. Es ist keine manuelle Benennung nötig, aber aussagekräftige Dateinamen erleichtern die Wiederverwendung in der Mediathek (z. B. nahaufnahme-sofa-braun-beistelltisch-marmor.jpg).

Empfehlung: Querformat, hohe Auflösung (mind. 1920 px Breite), JPG oder WebP.

Section: Icon Blocks (Adresse, Öffnungszeiten, Kontakt)

Was sichtbar ist: Drei Kacheln nebeneinander mit Icon, Label und Text: Location (Adresse), Öffnungszeiten, Kontakt (Telefon/E-Mail).

Was ändern: Section Icon Blocks anklicken → einzelne Blöcke Icon Block bearbeiten.

Pro Block:

  • Icon image: Icon für Desktop (optional)
  • Icon mobile: Icon für Mobile (wird auf Standortseiten genutzt, z. B. icon-MUC-black.png, oeffnungszeiten.svg, kontakt.svg)
  • Eyebrow: Kleines Label über dem Text (z. B. „Location“, „Öffnungszeiten“, „Kontakt“)
  • Heading: Haupttext (z. B. „Ottostraße 1, 80333 München“ oder Telefonnummer)
  • Text: Zusatztext (optional, meist leer)

Wichtig: Hier steht die Adresse, die Besucher auf der Standortseite sehen. Bei Umzug oder geänderten Öffnungszeiten diesen Block anpassen. Das ist unabhängig von Settings → Locations.

Section: Text Headline (Einleitungstext)

Was sichtbar ist: Subtitle + Headline + Fließtext unter den Icon Blocks.

Was ändern: Felder Subheading, Heading, Text in der Section.

Section: Text & Image

Was sichtbar ist: Textblock mit optionalem Bild links oder rechts.

Was ändern: Bild über Image-Picker hochladen, Titel und Text im Editor pflegen. Layout (links/rechts) über Section-Einstellung Layout.

Section: Experts (Ärzteteam)

Was sichtbar ist: Kacheln mit Portrait, Name, Kurzbeschreibung und „Mehr“-Button. Klick öffnet Modal mit ausführlichem Profiltext.

Was ändern: Section Experts → Block Column hinzufügen, entfernen oder bearbeiten.

Pro Person (Block Column):

  • Image: Portrait-Foto (hochladen über Image-Picker). Empfehlung: einheitliches Format, ähnlicher Bildausschnitt wie bestehende Portraits
  • Eyebrow: Optional, z. B. „Medical expert“
  • Title: Name
  • Description: Kurztext auf der Kachel
  • Button text: Meist „Mehr“
  • Modal content: Ausführlicher Text im Popup (Rich Text)

Neue Person: Add blockColumn → Felder ausfüllen → Speichern.

Person entfernen: Block auswählen → Remove block.

Section: Google Reviews

Was sichtbar ist: Bewertungs-Karussell.

Was ändern: Einstellungen in der App Google Reviews im Theme-Editor (Block innerhalb der Apps-Section). Standort-Zuordnung und Widget-Design werden in der App konfiguriert, nicht in Shopify Pages.

Section: Call to Action

Was sichtbar ist: Banner mit Bild, Text und Button (z. B. Link zur Erstberatung).

Was ändern: Bild, Titel, Text, Button-Label und Button-Link in der Section.

Section: Featured Collection Switcher

Was sichtbar ist: Treatment-Empfehlungen aus einer Collection (z. B. „Passend für den Winter“).

Was ändern: Collection auswählen, Titel anpassen. Treatments selbst werden unter Products gepflegt, hier nur die Auswahl der Collection.

Bilder hochladen: zwei Wege

1. Normal über den Theme-Editor (Standortseite, Team, Hero)

Pfad: Customize → Section anklicken → Bildfeld → Upload oder aus Mediathek wählen.

Dateien werden automatisch unter Content → Files gespeichert. Der Dateiname kann frei gewählt werden (Kleinbuchstaben, Bindestriche empfohlen). Shopify generiert intern eine eindeutige URL. Die Benennung im Theme-Editor hat keinen Einfluss auf die Darstellung auf der Seite.

Empfohlene Benennung für die Mediathek:

  • Hero: standort-muenchen-hero.jpg
  • Team: dr-vorname-nachname-portrait.jpg
  • CTA: standort-muenchen-erstberatung.jpg

2. Bilder fürs Buchungsmodal (Standort-Karten)

Besonderheit: Die Standort-Bilder im Buchungsmodal werden nicht über den Theme-Editor hochgeladen. Sie werden automatisch anhand des Standortnamens aus Settings → Locations geladen.

Pfad zum Hochladen: Shopify Admin → Content → FilesUpload files

Dateiname-Regel: Der Name muss exakt aus dem Location-Namen in Settings → Locations abgeleitet werden:

  1. Umlaute ersetzen: ä→ae, ö→oe, ü→ue, ß→ss
  2. Jedes Wort groß schreiben
  3. Leerzeichen durch Unterstrich ersetzen
  4. Dateiendung: .png

Beispiele:

  • Location-Name „München“ → Datei Muenchen.png
  • Location-Name „Düsseldorf“ → Datei Duesseldorf.png

Worauf achten: Wenn die Datei fehlt oder falsch heißt, wird im Buchungsmodal kein Bild oder ein defektes Bild angezeigt. Nach dem Hochladen kann es wenige Minuten dauern, bis die CDN-URL erreichbar ist.

Metaobjects standort (für Treatment-Seiten)

Pfad: Settings → Custom data → Metaobjects → standort

Zweck: Verknüpft Treatments auf Produktseiten mit Standortlinks (Detailkarte „Location“).

Typische Felder: Name (z. B. „München“), URL (Link zur Standortseite).

Worauf achten: Name muss zu Location-Name und Produkt-Metafeld location passen. Wird auf Treatment-Produktseiten über Metafeld standort referenziert.

Standort in der Navigation verlinken

Pfad: Online Store → Navigation → Main menu → Menüpunkt Standorte

Jede Standortseite als Untermenü-Eintrag unter „Standorte“ verlinken. URL = die jeweilige Page (z. B. /pages/muenchen oder der Page-Handle).

Neue Standortseite anlegen

  1. Online Store → Pages → Add page
  2. Titel und URL-Handle setzen
  3. Theme template zuweisen: bestehendes Standort-Template duplizieren oder standort-muc / standort-dusseldorf als Vorlage wählen
  4. Customize → alle Sections mit standortspezifischen Inhalten befüllen (Hero, Icon Blocks, Team, Texte)
  5. Settings → Locations: neue Location anlegen, Adresszeile 2 mit Clinicore-ID füllen
  6. Content → Files: Standort-Bild fürs Buchungsmodal hochladen (korrekter PNG-Name)
  7. Metaobject standort anlegen, falls Treatments verknüpft werden sollen
  8. In Navigation unter Standorte verlinken
  9. Bei Buchungsrelevanz: Clinicore-Standort einrichten, Produkt-Option locations anpassen

Typische Fehler

  • Adresse auf Standortseite aktualisiert, aber Settings → Locations vergessen (Buchungsmodal zeigt alte Adresse)
  • Clinicore-ID in Adresszeile 2 falsch oder leer (Buchung funktioniert nicht)
  • Buchungsmodal-Bild fehlt, weil PNG-Name nicht zur Location passt (z. B. München.png statt Muenchen.png)
  • Google Reviews zeigt falschen Standort (App-Einstellung prüfen)
  • Team-Foto im Experts-Block vergessen hochzuladen

Prüfliste nach Standort-Änderungen

  • Icon Blocks: Adresse, Öffnungszeiten, Telefon, E-Mail korrekt
  • Settings → Locations: Name, Adresszeile 1, PLZ, Stadt, Adresszeile 2 (Clinicore-ID)
  • Content → Files: Buchungsmodal-PNG vorhanden und korrekt benannt
  • Hero-Bild und Team-Fotos aktuell
  • Google Reviews: richtiger Standort in der App
  • Navigation: Link funktioniert
  • Test: Standortseite im Browser und Buchungsmodal (Adresse + Bild) gegenprüfen

Hamburg: Buchung aktivieren (wenn gewünscht)

Die Standortseite Hamburg ist live, die Buchung ist derzeit nicht aktiv. Checkliste für Aktivierung:

  1. Settings → Locations: Location Hamburg mit Clinicore-ID in Adresszeile 2
  2. Clinicore: Standort, Ärzte, Services und Slots einrichten
  3. Content → Files: Hamburg.png fürs Buchungsmodal hochladen
  4. Products: Option locations um „Hamburg“ ergänzen wo buchbar
  5. Metaobject doc_sequence: ggf. neues Feld für Hamburg oder Entwickler fragen
  6. Section auto-booking: Mapping für Hamburg im Theme-Code ergänzen
  7. Testbuchung auf Staging

Navigation und Mega-Menü

Die Hauptnavigation gliedert sich in Treatments, Chirurgie, Beratung, Standorte und Gutscheine. Treatments sind in verschachtelten Mega-Menü-Kategorien organisiert.

Hinweis: Menüname (z. B. Muskelrelaxans) ist nicht gleich Buchungs-Tag (z. B. Botox). Übersicht: Abschnitt Übersicht → Terminologie.

Navigationsmenü pflegen

Pfad: Online Store → Navigation → Main menu

  1. Menüpunkt hinzufügen oder bestehenden bearbeiten
  2. Link auf Collection, Page oder Product setzen
  3. Für Untermenüs: Eintrag unter dem Elternpunkt einrücken (bis zu drei Ebenen)
  4. Änderungen speichern und auf Desktop sowie Mobile prüfen

Mega-Menü und Promos

Pfad: Theme-Editor → Header → Block Mega menu

  • Der Block-Titel muss exakt dem Menüpunkt entsprechen (DE: menu_item, EN: menu_item_en)
  • Promo-Bilder, Texte und Links werden pro Mega-Menü-Block konfiguriert
  • Das Suchfeld im Mega-Menü ist fest eingebaut

Neues Treatment im Menü sichtbar machen

  1. Treatment in die passende Collection legen
  2. Collection oder Produkt im Navigationsmenü verlinken
  3. Desktop- und Mobile-Darstellung prüfen
  4. Separat prüfen: Erscheint das Treatment auch im Buchungsflow? (siehe Abschnitt Treatments)

Wichtiger Hinweis

Menü-Sichtbarkeit und Buchbarkeit im Clinicore-Flow sind zwei getrennte Systeme. Ein Treatment kann im Menü sichtbar sein, aber nicht buchbar, oder umgekehrt. Beides muss unabhängig voneinander geprüft werden.

Layout-Änderungen am Mega-Menü

Strukturelle Anpassungen am Mega-Menü oder an der Mobile-Navigation erfolgen im Theme-Code (Header-Section, Snippets). Menü-Inhalte und Links werden im Shopify Admin unter Navigation gepflegt.

Content: Expertenwissen und Jobs

lvate.de hat zwei redaktionelle Bereiche: Expertenwissen für Fachartikel der Ärzte und Jobs für Stellenausschreibungen.

Expertenwissen (Blog: news)

Pfad: Shopify Admin → Blog posts → Blog news

  1. Add blog post wählen
  2. Titel, Inhalt und Featured Image setzen
  3. Passendes Artikel-Template zuweisen, z. B. treatments-blog-beitrag oder leitfaden-blog-beitrag
  4. Metafelder pflegen: author_name, author_image, category
  5. Artikel veröffentlichen

Die Startseite kann Artikel über die Section Expertenwissen anzeigen. Auswahl manuell oder automatisch aus Blog news.

Jobs (Blog: jobs)

Pfad: Shopify Admin → Blog posts → Blog jobs

  1. Neuen Job-Post anlegen
  2. Artikel-Template blog-beitrag-jobs zuweisen
  3. Inhalt und Featured Image pflegen
  4. Veröffentlichen

Job-Karten zeigen automatisch das Label „Offene Positionen“.

Prüfliste nach Veröffentlichung

  • Richtiger Blog gewählt (news oder jobs)
  • Artikel-Template ist gesetzt
  • Featured Image ist vorhanden
  • Status ist Published, nicht Entwurf
  • Bei Startseiten-Feature: Artikel in Section Expertenwissen ausgewählt

FAQs auf Produktseiten (Hinweis)

Viele Treatment-Templates nutzen FAQ-Apps (Simesy, HelpLab) statt Metafeld frequent_questions. FAQs dann in der App pflegen. Welches System gilt, hängt vom Produkt-Template ab (Abschnitt Produkt-Template).

Neue Artikel-Templates

Abweichende Layouts für Blog-Artikel werden als eigene Artikel-Templates im Theme angelegt (article.[name].json).

Gutscheine

Gutscheine werden über die native Shopify-Funktion Gift Cards abgewickelt.

Bestandteile im System

  • Marketing-Seite: /pages/vouchers (Template vouchers)
  • Gutschein-Produkt: Template gift-card (Kauf durch Kunden)
  • Manuelle Ausstellung: Products → Gift cards → Issue gift card
  • Einlösung: Code im Checkout

Gutschein manuell ausstellen

  1. Shopify Admin → Products → Gift cards
  2. Issue gift card
  3. Betrag eingeben, optional E-Mail für Versand
  4. Code an Empfänger senden

Gutschein zum Kauf anbieten

Falls ein Gutschein-Produkt im Shop verkauft wird: Products → entsprechendes Produkt mit Template gift-card. Nach Kauf erhält der Kunde den Code per E-Mail (Shopify-Standard).

Marketing-Seite bearbeiten

Online Store → Pages → Gutschein-Seite → Customize. Texte, Bilder und CTAs wie bei anderen Pages.

Prüfliste

  • Code im Checkout testbar
  • Marketing-Seite verlinkt im Menü/Footer
  • Betrag und Gültigkeit kommuniziert

Rechtliches

Impressum, Datenschutzerklärung und AGB sind Pflichtseiten. Sie müssen bei relevanten Änderungen am Shop geprüft und bei Bedarf aktualisiert werden.

Pflichtseiten

  • Impressum: /pages/impressum (Template impressum)
  • Datenschutz: /pages/datenschutz (Template datenschutz)
  • AGB: /pages/agb (Template agb)

Die Footer-Links sind im Theme hinterlegt. Der Cookie-Banner wird über Cookiebot gesteuert, nicht über Shopify.

Texte bearbeiten

  1. Online Store → Pages → gewünschte Seite öffnen
  2. Customize wählen
  3. Section Text + Headline bearbeiten
  4. Speichern und Seite im Browser prüfen

Wann Datenschutz prüfen?

  • Neue Tools oder Apps (Clinicore, Analytics, FAQ-Apps)
  • Änderungen am Cookie-Banner in Cookiebot
  • Neue Standorte oder geänderte Kontaktdaten
  • Neue Buchungs- oder Zahlungsanbieter

Bei inhaltlichen Rechtstexten emfehlt sich die Abstimmung mit rechtlicher Beratung.

Technische Systeme

lvate.de besteht aus drei miteinander verbundenen Ebenen. Änderungen an einer Ebene können Auswirkungen auf die anderen haben.

Shopify Admin

Produkte (Treatments), Collections, Pages, Blogs, Navigation, Metafelder, Metaobjects, Gift Cards, Locations. Hier werden Inhalte und Zuordnungen gepflegt. Die meisten redaktionellen Änderungen wirken sofort.

Shopify Theme

Layout, Sections, Produkt-Templates, Buchungsmodal, Mega-Menü, Standortseiten, Locales. Dateien unter templates/, sections/, snippets/, locales/de.json. Änderungen erfordern Sync (shopify theme dev) oder Deployment auf Live-Theme.

Clinicore

Terminvergabe, Ärzte, Services, Slots, SMS, Stornologik. Service-IDs werden als Variant SKU in Shopify gepflegt.

Externe Dienste

  • Cookiebot: Cookie-Banner
  • Google Reviews: Bewertungs-Widgets (Standort- und Produktseiten)
  • Simesy / HelpLab: FAQ auf vielen Produkt-Templates
  • ProvenExpert: Bewertungen auf Chirurgie-Seiten (Theme Settings)

Wichtige Abhängigkeiten

  • Variant SKU = Clinicore Service-ID
  • Location Adresszeile 2 = Clinicore Location-ID
  • Produkt-Tag = Kategorie im Buchungsmodal
  • Menü/Collection ≠ Buchungs-Tag (drei getrennte Systeme)
  • Metaobject arzt = Deep Links Buchung
  • Metaobject doc_sequence = Ärzte-Reihenfolge

Entwicklung und Staging

Lokale Theme-Entwicklung: shopify theme dev --store=lvate-staging.myshopify.com (siehe readme.md). Vor Live-Deploy: Testbuchung auf Staging. Details: Abschnitt Staging & Release unter Buchung.

Änderungen mit Vorsicht

SKUs, Clinicore-Services, Location-IDs und Buchungsmodal-Logik können laufende Buchungen beeinträchtigen. Immer zuerst auf Staging testen.

Handbuch