Wähle deine Boutique
Wähle deine Boutique
Intern
Dieser Bereich ist passwortgeschützt. Bitte Zugangsdaten eingeben.
Internes Handbuch
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.
lvate nutzt drei getrennte Systeme für die Einordnung von Treatments. Sie dürfen nicht verwechselt werden:
Beispiele:
Ein Treatment kann im Menü sichtbar, in einer Collection gelistet und trotzdem im Buchungsmodal unsichtbar sein (oder umgekehrt). Alle drei Ebenen separat prüfen.
In den Section-Einstellungen ein Zugangspasswort hinterlegen. Diese Seite nicht in der öffentlichen Navigation verlinken. Für Suchmaschinen ist die Seite mit noindex ausgeschlossen.
Im Shopify Admin entsprechen Treatments den Products. Jedes Treatment hat eine eigene Produktseite, kann in Collections und Navigation erscheinen und im Buchungsflow buchbar sein.
Die SKU muss 1:1 der numerischen Service-ID aus Clinicore entsprechen. Ohne korrekte SKU keine Termine im Buchungsflow.
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.
Jedes lvate-Treatment nutzt eine eigene Theme-Vorlage (product.[name].json). Sie steuert Layout, Sections und Module der Produktseite.
Neues Layout nötig? Neue Datei product.[name].json im Theme anlegen oder Vorlage duplizieren. Erst nach Theme-Deployment im Dropdown sichtbar.
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.
Alle Metafelder einzeln erklärt: Abschnitt Metafelder.
Schalter für andere Darstellung bei OPs (Preis „Erstberatung ab“, Accordion-Detailkarten, Breadcrumb Chirurgie, ProvenExpert, Chirurgie-Kontakt).
Optional: surgery_tags für Schlagworte (kommagetrennt), nur wenn surgery aktiv.
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.
Variante A: Products → Produkt → rechts Collections → Collection anhaken → Speichern
Variante B: Collections → Collection öffnen → Produkte hinzufügen
Jede Collection kann ein eigenes Theme-Template nutzen. Das steuert Layout, Hero, Subnavigation und Karten-Stil.
Bekannte Templates im Theme: muskelrelaxans, lasertherapien, hyaluron, skinbooster-treatments, cosmetology, dermatologie, surgery-face, alle-gesichtschirurgie, lvate-drips, alle-treatments und weitere.
Badges (z. B. „Neu“) erscheinen auf Collection-Karten, wenn am Produkt beide Metafelder gesetzt sind:
Die Collection-Section muss den Label-Stil „Overlay“ unterstützen, sonst wird das Badge nicht sichtbar. Details: Abschnitt Metafelder → badge / badge_class.
Für Mega-Menü-Promos: Theme-Editor → Header → Block Mega menu. Siehe Abschnitt Navigation.
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.
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
Zweck: Name des Treatments im Buchungsmodal. Wird an Clinicore übergeben.
Schritte:
Worauf achten: Wenn leer, wird der Produkttitel verwendet. Titel und buchungstitel dürfen unterschiedlich sein.
Zweck: Steuert auf der Produktseite, ob „ab“ vor dem Preis steht.
Schritte:
Worauf achten: Wirkt auf Produktseite, nicht im Buchungsmodal (dort immer „ab“ bei nicht-chirurgischen Treatments).
Zweck: Überschrift im Preis-Popup („Wie sich der Preis zusammensetzt“) auf der Produktseite.
Schritte:
Worauf achten: Immer zusammen mit popup_beschreibung pflegen. Text kommt nicht aus dem Theme-Editor.
Zweck: Erklärung im Preis-Popup, warum der Preis variiert oder was enthalten ist.
Schritte:
Worauf achten: Nur einfacher Text. Medizinische/preisliche Aussagen abstimmen.
Zweck: Legt fest, ob das Treatment die chirurgische oder minimal-invasive Darstellung erhält (Layout, Preis-Text, Navigation, Kontakt).
Schritte:
Worauf achten: Nur bei OPs true. Erstberatung chirurgisch: SKU 104. Details: Abschnitt Treatments.
Zweck: Schlagworte auf chirurgischen Produktseiten (z. B. „Gesicht“, „Körper“).
Schritte:
Worauf achten: Nur wenn surgery = true. Keine Wirkung auf Buchungsflow.
Zweck: Behandlungsdauer. Detailkarte „Dauer“ und Anzeige im Buchungsmodal.
Schritte:
Worauf achten: Einheitliches Format verwenden.
Zweck: Regenerations- bzw. Ausfallzeit. Detailkarte „Regeneration“.
Schritte:
Worauf achten: Nur wenn relevant. Realistische Angaben.
Zweck: Wirkeintritt. Detailkarte „Wirkeintritt“.
Schritte:
Worauf achten: Typisch bei Injectables. Bei OPs meist nicht nötig.
Zweck: Wirkstoff oder Produktname. Detailkarte „Wirkstoff“.
Schritte:
Worauf achten: Markennamen korrekt (®, ™).
Zweck: Wirkdauer des Ergebnisses. Detailkarte „Haltbarkeit“.
Schritte:
Worauf achten: Vorsichtig formulieren, z. B. „6 bis 12 Monate“.
Zweck: Zielgruppe / Indikation. Detailkarte „Geeignet für“.
Schritte:
Worauf achten: Kurz und sachlich.
Zweck: Schmerzlevel oder Betäubung. Detailkarte „Schmerzen“.
Schritte:
Worauf achten: Einheitliche Formulierungen im Team.
Zweck: Laser- oder Geräteinformation. Detailkarte „Laser“.
Schritte:
Worauf achten: Nur bei Laser-Treatments.
Zweck: Haltbarkeit des Treatment-Ergebnisses. Wird in älteren Produkt-Templates im FAQ-Tab angezeigt.
Schritte:
Worauf achten: Nur relevant, wenn das Template den FAQ-Tab nutzt. Bei FAQ-Apps (Simesy/HelpLab) stattdessen in der App pflegen.
Zweck: Behandelte Hautschicht. Detailkarte „Zielstruktur“.
Schritte:
Worauf achten: Verständlich für Laien formulieren.
Zweck: Dauer des operativen Eingriffs. Detailkarte „Dauer der OP“.
Schritte:
Worauf achten: Nicht mit treatment (Beratungsdauer) verwechseln.
Zweck: Sportpause nach Behandlung. Detailkarte „Sportunfähigkeit“.
Schritte:
Worauf achten: Vor allem bei OPs.
Zweck: Wann wieder gesellschaftsfähig. Detailkarte „Gesellschaftsfähigkeit“.
Schritte:
Worauf achten: Realistische Zeiträume.
Zweck: Klinikaufenthalt-Dauer. Detailkarte „Klinikaufenthalt“.
Schritte:
Worauf achten: Nur bei relevanten Eingriffen.
Zweck: Art der Narkose/Sedierung. Detailkarte „Narkoseart“.
Schritte:
Worauf achten: Medizinisch korrekt.
Zweck: Zusätzliche Kostenhinweise neben dem Shopify-Preis. Detailkarte „Kosten“.
Schritte:
Worauf achten: Ersetzt nicht den Produktpreis in Shopify.
Zweck: Wann Ergebnisse sichtbar werden. Detailkarte „Sichtbare Ergebnisse“.
Schritte:
Worauf achten: Besonders bei OPs wichtig.
Zweck: Nachsorge-Hinweise. Detailkarte „Nachbehandlung“.
Schritte:
Worauf achten: Klar und verständlich.
Zweck: Vorteile der Methode. Detailkarte „Vorteile“.
Schritte:
Worauf achten: Sachlich, keine übertriebenen Versprechen.
Zweck: Verknüpfung mit Standort-Metaobjekten. Detailkarte „Location“ mit Links.
Schritte:
Worauf achten: Bevorzugte Methode. Metaobjects unter Settings → Custom data → standort pflegen.
Zweck: Fallback-Standorte als Text, kommagetrennt (z. B. „München, Düsseldorf“).
Schritte:
Worauf achten: Schreibweise muss zu Metaobject-Namen passen. Wenn möglich standort nutzen.
Zweck: Badge-Text auf Treatment-Karten in Collections (z. B. „Neu“).
Schritte:
Worauf achten: Nur sichtbar mit badge_class.
Zweck: CSS-Klasse für das Badge auf Collection-Karten.
Schritte:
Worauf achten: Funktioniert nur zusammen mit gesetztem badge-Text. Die Collection-Section muss Overlay-Badges unterstützen. Ohne passende Klasse bleibt das Badge unsichtbar.
Zweck: Farbverlauf über Produktbildern in Listen und Galerie.
Schritte:
Worauf achten: Nur wenn passend zum Bild.
Zweck: Überschrift über dem ausführlichen Behandlungstext.
Schritte:
Worauf achten: Wenn leer, keine Headline. Größe hängt von surgery ab.
Zweck: Ausführlicher Behandlungstext mit Formatierung.
Schritte:
Worauf achten: Namespace product, nicht custom.
Zweck: FAQ-Inhalt für FAQ-Section auf Produktseiten.
Schritte:
Worauf achten: Nicht jedes Template nutzt dieses Feld. Manche nutzen FAQ-Apps.
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.
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.
Ab der Produktseite entfällt Schritt 2 in der Navigation. Mobile zeigt dort nur noch zwei Schritte an.
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.
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:
Regeln für den Dateinamen (Schritt für Schritt):
Beispiele (Location name → Dateiname):
So lädst du das Bild hoch:
Worauf achten:
locales/de.json → booking.headings.choose_boutique. Theme-Deployment nötig.
Clinicore: Standort, Ärzte, Services und Slots müssen dort gepflegt sein.
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).
Alle folgenden Punkte müssen am Produkt erfüllt sein:
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.
Prefix „ab“ oder „Erstberatung ab“ wird automatisch gesetzt. Details: Abschnitt Preise im Buchungssystem.
Bei surgery = true erscheint „Erstberatung ab“ statt nur „ab“. Siehe auch Abschnitt Treatments → Metafeld surgery.
Ohne passenden Eintrag erscheint das Treatment an diesem Standort nicht.
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.
Nicht über einzelne Produkte steuerbar. Die beiden Buttons sind fest im Theme:
Text, Preis oder SKUs ändern: Theme-Code modal-treatment.liquid. Leistungen müssen in Clinicore existieren.
Nicht im Shopify Admin. Text liegt in locales/de.json unter booking.headings.choose_treatment. Änderung erfordert Theme-Deployment.
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“.
Termine kommen aus Clinicore, nicht aus Shopify.
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.
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“.
Nicht im Shopify Admin.
Die Durchsetzung (24h, 75 € Ausfallvergütung) erfolgt in Clinicore, nicht in Shopify.
Beim Absenden: Theme sendet Daten an Clinicore (POST /api/scheduler/appointments). Clinicore legt Termin an und löst SMS aus.
Darstellung im Modal: Hinweis, dass ein Code per SMS gesendet wurde. Eingabefeld für den Bestätigungscode. Button „Code noch einmal senden“.
SMS-Versand: Vollständig in Clinicore (Inhalt, Versand, Code-Prüfung). Nicht in Shopify änderbar.
Darstellung im Modal: Erfolgsmeldung „Buchung erfolgreich“, Termindetails, Arztname und -bild. Button „Fenster schliessen“.
Header-Button „Termin buchen“: Öffnet den globalen Flow (alle Standorte).
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):
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.
Deep Links öffnen das Buchungsmodal mit vorgewähltem Arzt, Treatment (Service) und Standort. Der Kunde landet direkt im Kalender (Schritt 3).
Pfad: Shopify Admin → Settings → Custom data → Metaobjects → arzt
Felder:
Der Handle des Metaobjects ist der URL-Slug (z. B. dr-surina-frey).
Alle drei Parameter sind Pflicht:
Beispiele:
Abgrenzung: Section Operierende Ärzte auf Produktseiten und Section Experts auf Standortseiten sind redaktionelle Darstellung. Das Metaobject arzt steuert die technische Buchungs-Verknüpfung.
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.
Änderungen am Buchungssystem sollten immer zuerst auf Staging getestet werden, bevor das Theme live geht.
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.
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.
Quelle: Shopify Admin → Products → Produkt → Price (Variantenpreis)
Wo sichtbar:
Technisch: Das Theme liest den Preis über die Shopify API aus der ersten Variante (variants[0].price).
Im Buchungsmodal:
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.
Quelle: Fest im Theme-Code hinterlegt, nicht aus dem Shopify-Produktpreis.
Preisänderung der Erstberatung erfordert Anpassung im Theme-Code (modal-treatment.liquid, Attribute data-price).
Quelle: Metafelder am Produkt.
Details im Abschnitt Metafelder.
Quelle: Metafeld kosten am Produkt. Ergänzt den Shopify-Preis auf der Produktseite, ersetzt ihn nicht.
Clinicore liefert keine Preise für die Website-Anzeige. Die angezeigten Preise sind redaktionell in Shopify gepflegt.
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.
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.
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:
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:
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.
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.
Was passiert: Zwei Treatments in derselben Kategorie erscheinen in ungewohnter Reihenfolge.
Ursache: Sortierung über die Produktoption reihenfolge (numerischer Wert, aufsteigend).
Schritte:
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:
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.
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:
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:
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).
Vor Veröffentlichung oder nach größeren Anpassungen diese Punkte auf Staging durchgehen:
Standort-Inhalte bei lvate.de liegen an drei Stellen, die getrennt voneinander gepflegt werden müssen:
Adresse, Telefon und Öffnungszeiten auf der Standortseite sind nicht automatisch mit Settings → Locations verknüpft. Beide Orte müssen bei Änderungen einzeln aktualisiert werden.
Pfad: Shopify Admin → Settings → Locations
Diese Einstellung steuert primär das Buchungstool, nicht den sichtbaren Text auf der Standortseite.
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.
Pfad: Online Store → Pages → gewünschte Standortseite → Customize
Die Standortseite besteht aus mehreren Sections. Jede Section wird einzeln angeklickt und bearbeitet.
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.
Bilder hochladen: Beim Klick auf Image → Upload 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.
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:
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.
Was sichtbar ist: Subtitle + Headline + Fließtext unter den Icon Blocks.
Was ändern: Felder Subheading, Heading, Text in der Section.
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.
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):
Neue Person: Add block → Column → Felder ausfüllen → Speichern.
Person entfernen: Block auswählen → Remove block.
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.
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.
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.
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:
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 → Files → Upload files
Dateiname-Regel: Der Name muss exakt aus dem Location-Namen in Settings → Locations abgeleitet werden:
Beispiele:
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.
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.
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).
Die Standortseite Hamburg ist live, die Buchung ist derzeit nicht aktiv. Checkliste für Aktivierung:
lvate.de hat zwei redaktionelle Bereiche: Expertenwissen für Fachartikel der Ärzte und Jobs für Stellenausschreibungen.
Pfad: Shopify Admin → Blog posts → Blog news
Die Startseite kann Artikel über die Section Expertenwissen anzeigen. Auswahl manuell oder automatisch aus Blog news.
Pfad: Shopify Admin → Blog posts → Blog jobs
Job-Karten zeigen automatisch das Label „Offene Positionen“.
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).
Abweichende Layouts für Blog-Artikel werden als eigene Artikel-Templates im Theme angelegt (article.[name].json).
Gutscheine werden über die native Shopify-Funktion Gift Cards abgewickelt.
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).
Online Store → Pages → Gutschein-Seite → Customize. Texte, Bilder und CTAs wie bei anderen Pages.
Impressum, Datenschutzerklärung und AGB sind Pflichtseiten. Sie müssen bei relevanten Änderungen am Shop geprüft und bei Bedarf aktualisiert werden.
Die Footer-Links sind im Theme hinterlegt. Der Cookie-Banner wird über Cookiebot gesteuert, nicht über Shopify.
Bei inhaltlichen Rechtstexten emfehlt sich die Abstimmung mit rechtlicher Beratung.
lvate.de besteht aus drei miteinander verbundenen Ebenen. Änderungen an einer Ebene können Auswirkungen auf die anderen haben.
Produkte (Treatments), Collections, Pages, Blogs, Navigation, Metafelder, Metaobjects, Gift Cards, Locations. Hier werden Inhalte und Zuordnungen gepflegt. Die meisten redaktionellen Änderungen wirken sofort.
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.
Terminvergabe, Ärzte, Services, Slots, SMS, Stornologik. Service-IDs werden als Variant SKU in Shopify gepflegt.
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.
SKUs, Clinicore-Services, Location-IDs und Buchungsmodal-Logik können laufende Buchungen beeinträchtigen. Immer zuerst auf Staging testen.
Tippen, um Kapitel zu finden — z. B. „SKU“, „Collection“, „Deep Link“.