Combora

Combora — Benutzerhandbuch

Der komplette Leitfaden zur Bundle- und Rabatt-App für Shopify: die 8 Angebotstypen, jede Konfigurationsoption, was Ihre Kundschaft im Shop sieht, und ein technischer Anhang für Entwickler. Alle Screenshots stammen aus dem öffentlichen Demo-Shop von Combora — demselben, den Sie selbst ausprobieren können —, aufgenommen im August 2026, und die Screenshots der App zeigen die Oberfläche in der Sprache dieses Handbuchs.

1Was Combora ist

Combora erstellt Bundles und automatische Angebote in Ihrem Shopify-Shop: es gruppiert Produkte, wendet den richtigen Rabatt im Warenkorb und im Checkout an und zeigt das Angebot über fertige Blöcke in Ihrem Theme. Sie konfigurieren das Angebot im Admin, und den Rabatt berechnet eine Shopify Function im Checkout selbst — der berechnete Preis ist der, den die Plattform selbst ermittelt, kein Skript im Browser.

Es gibt 8 Bundle-Typen. Diese Tabelle hilft bei der Wahl:

TypWas er tutWann Sie ihn nutzen
Festes BundleEin geschlossenes Set von Produkten mit Bundle-Preis oder Rabatt. Erzeugt ein mit einem Klick kaufbares Produkt in Ihrem Katalog.Kuratierte Kits und Sets: das Duo, das Starter-Kit.
Mix & MatchDie Kundschaft wählt N Artikel aus einer Gruppe und erhält einen Rabatt.Wähle 3 Shirts und spare 20%.
MengenrabattStufen: je mehr gekauft wird, desto mehr wird gespart (2+ → 10%, 4+ → 20%…).Mehr Einheiten pro Bestellung eines Produkts oder einer Gruppe.
Kaufe X, erhalte Y (BOGO)Beim Kauf von X Einheiten gibt es für die nächsten Y eine Belohnung (gratis, % oder Festpreis).Kaufe 2, erhalte 1 gratis.
Geschenk zum Kauf (GWP)Legt automatisch ein Gratisgeschenk dazu, wenn der Warenkorb eine Bedingung erfüllt.Überraschungsgeschenk ab $50 Bestellwert.
Box zusammenstellenDie Kundschaft füllt eine Box fester Größe; berechnet wird sie mit Rabatt oder zum Box-Preis.Boxen mit 4, 6, 12… Snacks, Kerzen, Bier.
Ergänzungen (FBT)Häufig zusammen gekauft: ein Hauptprodukt schlägt Zusätze mit Rabatt vor.Cross-Selling auf der Produktseite.
ComboStapelt zwei oder mehr der obigen Angebote in einem Bundle; innerhalb des Combos addieren sie sich.Kampagnen: Menge + Geschenk ab $1,000.
Die goldene Regel zwischen verschiedenen Bundles: auf jeden Artikel im Warenkorb wird nur das beste Angebot angewendet — Bundles addieren sich nie untereinander. Die einzige Ausnahme ist das Combo, dessen Teilangebote sich untereinander sehr wohl addieren. Alle Details in Abschnitt 14.
1 · Sie konfigurieren Ihr Angebot im Combora-Editor und klicken auf Veröffentlichen 2 · Eine einzige veröffentlichte Konfiguration dieselbe Quelle für alles, was danach passiert 🎨 Ihr Theme — ZEIGT AN die Widgets stellen das Angebot dar: Bundle-Preis, Stufen, Geschenk-Fortschritt… (nur informativ — berechnet nie) 🔒 Shopify-Checkout — BERECHNET eine Shopify Function berechnet den Rabatt im Checkout selbst, ohne Skripte im Browser = angezeigter und berechneter Preis stimmen IMMER überein
Beide Wege Ihres Angebots stammen aus derselben veröffentlichten Konfiguration: das Theme zeigt es an, der Checkout berechnet es. Sie können konstruktionsbedingt nichts Unterschiedliches zählen — die häufigste Beschwerde über diese App-Kategorie (der Rabatt stimmte im Checkout nicht) kann hier nicht auftreten.

Wenn Sie zwischen Typen schwanken, hilft die App selbst: unter Bundle erstellen öffnet der Link Nicht sicher, welcher passt? einen Assistenten, und jeder Typ hat ein Panel So funktioniert es mit Beispielen.

Dialog Welchen soll ich nehmen? mit Empfehlungen nach Ziel
Nicht sicher, welcher passt? Der Assistent der Galerie empfiehlt einen Typ nach Ihrem Ziel.
Seitenpanel So funktioniert es des festen Bundles
Jeder Typ hat sein eigenes Panel So funktioniert es mit einem konkreten Beispiel.

2Einrichtung

2.1 Was die App bei der Installation anlegt

Die Installation von Combora ändert in Ihrem Shop nichts Sichtbares. Im Hintergrund legt die App die Datenstrukturen an, in denen sie Ihre Bundles veröffentlicht (Metaobjekte und Metafelder mit dem Präfix combora — die technischen Details stehen im Entwickler-Anhang), sowie einen einzigen automatischen Rabatt namens Combora unter Rabatte, der alle Preise anwendet. Löschen oder bearbeiten Sie ihn nicht von Hand: die App pflegt ihn selbst.

2.2 Die Geschenk-Engine aktivieren (App-Embed)

Wenn Sie Geschenk zum Kauf (oder Combos mit Geschenk) nutzen, aktivieren Sie das App-Embed Combora Gift: Onlineshop → Anpassen → Theme-Einstellungen → App-Embeds → Combora Gift. Es ist die Komponente, die das Geschenk automatisch in den Warenkorb legt und wieder entfernt. Ohne sie wäre der Geschenkrabatt weiterhin korrekt, aber das Geschenkprodukt würde sich nicht selbst hinzufügen.

2.3 Die Blöcke ins Theme einfügen

Jeder Bundle-Typ wird im Shop über einen Theme-Block angezeigt. Sie fügen ihn einmalig unter Onlineshop → Anpassen in die passende Vorlage ein:

BlockTypen, die er zeigtWo einfügen
Combora bundleFestes Bundle und Combo (Available bundles)Produktvorlage
Combora mix & matchMix & Match · Box zusammenstellenProduktvorlage
Combora volume tableMengenrabatt · Kaufe X erhalte YProduktvorlage
Combora complementsErgänzungenProduktvorlage (und Warenkorb)
Combora gift offerGeschenk zum Kauf (das Angebot selbst)Produktvorlage
Combora gift progressFortschrittsleiste des GeschenksWarenkorbvorlage
Combora Gift (App-Embed)Die Engine, die das Geschenk hinzufügt/entferntApp-Embeds (ganzer Shop)

Sie müssen sich das nicht merken: jeder Bundle-Editor hat eine Karte Wo das erscheint, die den richtigen Block nennt, plus einen Link Vorschau in Ihrem Live-Theme, der den Theme-Editor mit dem Block schon vorbereitet öffnet.

Gestaltung: das Aussehen der Widgets wird in der App gestaltet, im Design-Studio (Abschnitt 13): Presets, Reihenfolge der Elemente und Stil pro Element, mit Live-Vorschau. Die Einstellungen des Blocks im Theme-Editor (Akzentfarbe und Eckenradius) funktionieren weiterhin und haben beim Preset Theme-Editor Vorrang. Nur am Block selbst wird eingestellt, wo er erscheint und wie viele Angebote die Produktblöcke höchstens zeigen (1–8, Standard 3).

3Rundgang durch die App

Die App liegt unter Apps → Combora. Das Menü hat sechs Einträge — Start, Bundles, Statistiken, Tarife, Hilfe und Einstellungen — plus den Support-Chat, der auf jedem Bildschirm da ist:

Start

Der Begrüßungsbildschirm und der Puls Ihrer Installation. Solange Sie noch einrichten, zeigt er eine Checkliste mit drei Schritten — erstes Bundle anlegen, veröffentlichen und (wenn Ihr Angebot ein Geschenk zum Kauf ist) die Geschenk-Engine im Theme aktivieren. Die Checkliste ist keine Dekoration: jeder Schritt hakt sich erst ab, wenn er in Ihrem Shop wirklich passiert ist, der Aktionsknopf sitzt nur bei dem Schritt, der fällig ist, und wenn Sie später alles wieder zurückziehen, kommt die Checkliste zurück und spiegelt die Realität. Ist sie fertig, feiert Start das mit einem direkten Link zu Ihrem Shop (die Notiz können Sie jederzeit ausblenden).

Unter der Checkliste: Ihre neuesten Bundles mit Status, ein Hinweisband, wenn ein Bundle Aufmerksamkeit braucht (etwa weil Sie ein Produkt archiviert haben, aus dem es besteht — die App erkennt das selbst und weist darauf hin, ohne etwas zurückzuziehen), und ein Streifen mit Ihrem aktuellen Tarif.

Startbildschirm mit der Einrichtungs-Checkliste
Der Tab Start mit halb erledigter Einrichtung: Schritt 1 (anlegen) und Schritt 3 (Geschenk-Engine aktivieren) sind erledigt, Schritt 2 (veröffentlichen) zeigt seinen Aktionsknopf. Darunter die neuesten Bundles mit ihrem echten Status.

Bundles

Die Liste aller Bundles: Suche nach Namen, Filter nach Status (Veröffentlicht / Entwurf), Aktionen pro Zeile (duplizieren, veröffentlichen/als Entwurf, löschen) und Mehrfachauswahl mit Sammelaktionen. Alles wird hier mit Bundle erstellen angelegt.

Bundle-Liste mit Status und Aktionen
Der Tab Bundles: jede Zeile zeigt Typ, Status und letzte Änderung (das Datum hat einen Tooltip), dazu die Zeilenaktionen. Ein im Testmodus veröffentlichtes Bundle trägt zusätzlich das Abzeichen Testmodus neben seinem Status.

Statistiken

Leistungskennzahlen Ihrer Bundles über echte Bestellungen: zugeordneter Umsatz, Anteil der Bestellungen mit Bundle, gewährte Ersparnis, durchschnittlicher Bestellwert und ein Zeitverlauf. Details in Abschnitt 17.

Tarife

Ihr aktueller Tarif und die Upgrade-Optionen. Der Gratis-Tarif erlaubt 3 veröffentlichte Bundles gleichzeitig; die bezahlten Tarife haben kein Limit (Abschnitt 18).

Tarifseite
Der Tab Tarife: oben Ihr aktueller Tarif, das Versprechen des Festpreises und der Vergleich Gratis ($0) · Pro ($14.99) · Plus ($39.99) mit dem, was jeder enthält.

Hilfe

Häufige Fragen und Erklärungen der Konzepte (Abwägung zwischen Bundles, Geschenke, Blöcke).

Hilfeseite
Der Tab Hilfe.

Diagnose (ein Tab innerhalb der Hilfe)

Das Panel für Zustand und Support liegt als Tab innerhalb der Hilfe (Umschalter "Anleitungen | Diagnose" oben): Live-Prüfungen der gesamten Installation, das Ereignisprotokoll und der Support-Bericht, den Sie kopieren, wenn etwas schiefgeht (Abschnitt 19).

Support-Chat (schwebende Sprechblase)

Unten rechts auf jedem Bildschirm gibt es eine Chat-Sprechblase 💬, um direkt mit dem Support zu sprechen: Unterhaltungen nach Thema, Verlauf und der Hinweis, ob der Support gerade da oder abwesend ist. Geteilt wird nur, was Sie schreiben — niemals Daten Ihrer Kundschaft.

Einstellungen

Sprache der App (7 Sprachen), Widget-Design (die shopweite Stilvorlage — Abschnitt 13), manuelle Rabatt-Synchronisierung und Entwicklerzugang.

Einstellungsseite
Der Tab Einstellungen: Sprache der App, Widget-Design und Rabatt-Synchronisierung. Oben der informative Hinweis, dass es im Shop einen weiteren automatischen Rabatt gibt.

4Aufbau des Editors

Alle Typen teilen sich denselben Editor; nur der Bereich für Produkte und Preisgestaltung ändert sich. Ein brandneues Bundle sieht so aus:

Galerie der Typen beim Erstellen eines Bundles
Bundle erstellen: die Galerie der 8 Typen, mit den Einstiegspunkten für die Massenanlage oben.
Leerer Editor mit der Checkliste Vor dem Veröffentlichen
Der gerade geöffnete Editor: die rechte Seitenleiste zeigt den Status und die Checkliste „Vor dem Veröffentlichen oder Speichern dieses Bundles" mit dem, was noch fehlt; solange sie nicht vollständig ist, sind Veröffentlichen und Speichern deaktiviert.

4.1 Grundlagen

Bundle-Name
Intern. Nur Sie sehen ihn; er dient dazu, das Bundle in Ihrer Liste wiederzufinden.
Titel im Shop
Das, was die Kundschaft als Namen des Angebots im Warenkorb und im Checkout sieht. Er ist übersetzbar. Er ist außerdem der Text der Rabattzeile (auf 100 Zeichen gekürzt).
Abzeichentext
Ein optionales kurzes Abzeichen (etwa „Bestes Angebot"), das Ihr Theme als Hervorhebung zeigen kann.

4.2 Zeitplanung

Optionale Start- und Enddaten. Leer = das Angebot wird beim Veröffentlichen aktiv und läuft nie ab. Ein veröffentlichtes Bundle außerhalb seines Zeitfensters wendet den Rabatt automatisch nicht mehr an und tut es wieder, sobald es sich erneut im Zeitfenster befindet — ohne dass Sie etwas tun müssen.

4.3 Produkte

Je nach Typ wählen Sie bestimmte Produkte (und können innerhalb jedes Produkts auch nur einzelne Varianten ankreuzen) oder eine Kollektion. Den Geltungsbereich „jedes Produkt im Shop" gibt es nur bei Geschenk zum Kauf, als Bedingung. Der Auswahldialog ist der Standard-Produktpicker von Shopify:

Shopify-Produktauswahl
Die Standard-Produkt-/Variantenauswahl von Shopify innerhalb des Editors.
Kollektionen: ein Bundle, das auf eine Kollektion zielt, aktualisiert sich selbst — mit zwei Geschwindigkeiten, die Sie kennen sollten: der Preis ist immer live — ein Produkt, das heute der Kollektion beitritt, erhält sofort den Rabatt beim Checkout, ohne Wartezeit — und die sichtbare Liste im Widget (die Optionen, aus denen die Kundschaft wählen kann, und welche Produktseiten den Block zeigen) aktualisiert sich automatisch jede Nacht oder sofort, wenn Sie das Bundle erneut veröffentlichen mit der Schaltfläche „Bundle aktualisieren". Ein Preis, der vom berechneten abweicht, wird nie beworben. Maximal 100 Kollektionen pro Auswahldialog.

4.4 Preis

Jeder Typ hat seinen eigenen Bereich (Prozentsatz, Betrag, Festpreis, Stufen, Belohnung…). Er wird im jeweiligen Kapitel des Typs dokumentiert. In jedem Fall berechnet Shopify den tatsächlich berechneten Preis beim Checkout aus der veröffentlichten Konfiguration: was die Blöcke anzeigen, ist rein informativ.

4.5 Abonnements

Standardmäßig kann die Kundschaft einen Bundle-Artikel nicht als Abonnement kaufen (das schützt den Checkout davor, dass sich Abo-Preise mit Bundle-Rabatten vermischen). Bei den Typen, für die es sinnvoll ist (Mix & Match, Box zusammenstellen und Geschenk zum Kauf), gibt es eine erweiterte Option zum Aktivieren, „Abonnements in diesem Bundle zulassen (erweitert)"; wird sie aktiviert, zeigt der Editor einen Hinweis, was das bedeutet.

4.6 Die rechte Seitenleiste (und zwei Bereiche im Hauptteil)

Neben Speichern (und Als Entwurf speichern bei einem noch nicht veröffentlichten Bundle), mit der Leiste Ungespeicherte Änderungen / Speichern / Verwerfen oben, gliedert der Editor den Rest wie folgt:

Status + Aktion (Seitenleiste)
Veröffentlichen (oder Bundle aktualisieren, wenn es bereits veröffentlicht ist) und Auf Entwurf setzen. Veröffentlichen schaltet das Angebot live; das Setzen auf Entwurf zieht es zurück, behält aber die gesamte Konfiguration.
Testmodus (Hauptteil)
Aktivieren Sie „Im Testmodus veröffentlichen", um das Bundle auszuprobieren, ohne es Ihrer Kundschaft zu zeigen. Die Widgets werden nur im Theme-Editor angezeigt — öffnen Sie dort die Produktvorlage und das Bundle erscheint genau an seinem Platz. In Ihrem Shop erscheinen sie nie, auch nicht über den Vorschau-Link eines Entwurfs-Themes. Solange das Bundle im Testmodus ist, wird der Rabatt nur für Kund:innen mit dem Tag combora-test berechnet; für alle anderen existiert das Bundle praktisch nicht. Um den gesamten Checkout durchzugehen, fügen Sie dieses Tag Ihrer eigenen Testkundschaft hinzu (Admin → Kunden) und melden Sie sich im Shop als diese Person an. Deaktivieren Sie das Kästchen und klicken Sie auf Bundle aktualisieren, und es geht live — für alle, die die Bedingungen erfüllen. In der Liste trägt ein Bundle im Testmodus das Abzeichen Testmodus.
Katalogsichtbarkeit (Hauptteil)
Nur bei festen Bundles: ob das übergeordnete Produkt des Bundles in Ihrem Katalog erscheint oder nicht (Abschnitt 5).
Vor dem Veröffentlichen (Seitenleiste)
Die Checkliste, die das Veröffentlichen blockiert, bis das Wesentliche erledigt ist (Titel, Produkte, Preis…).
Was Ihre Kundschaft sieht (Seitenleiste)
Solange dem Angebot noch etwas fehlt, erklärt diese Karte, was fehlt, und zeigt eine Vorschau des Inhalts. Sobald das Angebot vollständig ist, weicht die Karte der echten Widget-Vorschau unter Vorschau ansehen. Das endgültige Aussehen hängt von Ihrem Theme ab.
Vorschau-Stil (Seitenleiste, nur bei bereits erstellten Bundles)
Nennt das aktive Widget-Design dieses Bundles und bietet Vorschau ansehen (das Widget in voller Größe in einem Modal) und Design anpassen (das Design-Studio dieses Bundles: Presets, Reihenfolge der Elemente und Stil pro Element — Abschnitt 13). Bei einem brandneuen Bundle erscheint sie nach dem ersten Speichern.
Wo das erscheint (Seitenleiste)
Der Theme-Block, der diesen Typ darstellt, und der direkte Link zum Theme-Editor.

Ein Bundle mit Zeitplanung zeigt außerdem sein Zeitfenster-Abzeichen (Geplant / Aktiv / Beendet) und die Schaltfläche Zeitplan entfernen, um wieder zu „aktiv beim Veröffentlichen" zurückzukehren.

4.7 Hinweise, die der Editor anzeigen kann

  • Überschneidung: Sind die Produkte des Bundles bereits in anderen veröffentlichten Bundles enthalten, warnt ein Banner: „Beim Checkout gilt pro Position nur das beste Angebot: Bundles addieren sich nicht". Das ist kein Fehler — es ist eine Information (siehe Abschnitt 14).
  • Keine Ersparnis / Preis 0: Spart der gewählte Preis eines festen Bundles mit Bundle-Preis nichts (oder ist er 0), weist der Editor Sie darauf hin, bevor Sie veröffentlichen.
  • Leerer Pool: Eine Kollektion ohne berechtigte Produkte erscheint als Hinweis in der Vorschau und, falls Sie zu veröffentlichen versuchen, als Fehler mit Erklärung.

4.8 Ein veröffentlichtes Bundle bearbeiten

Wenn Sie ein veröffentlichtes Bundle bearbeiten, werden Ihre Änderungen gespeichert, ohne Ihren Shop zu erreichen. Der Editor zeigt Ihre Bearbeitung, Ihre Kundschaft sieht weiter die veröffentlichte Version zum veröffentlichten Preis, und das Bundle ist in Ihrer Liste als Unveröffentlichte Änderungen markiert. Klicken Sie auf „Bundle aktualisieren“, um sie zu veröffentlichen, oder verwerfen Sie sie über den Hinweis im Editor. So können Sie Änderungen in Ruhe vorbereiten. „Auf Entwurf setzen" nimmt das Angebot sofort aus dem Shop; erneutes Veröffentlichen stellt es genau wieder her, wie es war.

5Festes Bundle

Ein geschlossenes Produktset, das als eine Einheit verkauft wird. Es ist der einzige Typ, der außerdem ein mit einem Klick kaufbares Produkt in Ihrem Katalog erzeugt: ein „übergeordnetes" Produkt (ein natives Shopify-Bundle), dessen Bestandteile sich beim Checkout automatisch entfalten.

5.1 Konfiguration

  1. Produkte: fügen Sie die Bestandteile (bestimmte Varianten) und deren jeweilige Menge hinzu. Maximal 30 Bestandteile pro Bundle.
  2. Preis — zwei sich gegenseitig ausschließende Modi:
    • Festen Bundle-Preis festlegen: Sie geben den Gesamtpreis ein (z. B. $1,299.00). Die Ersparnis wird gegenüber der Summe der Bestandteile berechnet.
    • Rabatt anwenden: ein Prozentsatz oder ein Betrag, abgezogen von der Summe der Bestandteile.
  3. Katalogsichtbarkeit: feste Bundles sind echte Shopify-Produkte, daher entscheiden Sie, ob das Bundle auch in Ihrem Katalog erscheint oder nur über das Widget erreichbar ist:
    • Ausgeblendet — nur über das Widget (Standard): das Bundle erscheint nicht in Kollektionen, in der Shop-Suche oder in Empfehlungen. Seine Produktseite bleibt erreichbar, damit die Schaltfläche des Widgets funktioniert.
    • Sichtbar — ein normales Katalogprodukt: es erscheint in Kollektionen und in der Suche wie jedes andere Produkt.
  4. Veröffentlichen. Beim Veröffentlichen erstellt (oder aktualisiert) Combora das übergeordnete Produkt in Ihrem Katalog — und übernimmt, falls das Paket noch kein Bild hat, das Bild des ersten Bestandteils, in BEIDEN Sichtbarkeitsmodi (ein ausgeblendetes Paket erscheint weiterhin im Warenkorb, im Checkout und in den Bestell-E-Mails). Ein von Ihnen gesetztes Bild wird nie überschrieben; Sie können es jederzeit unter Admin → Produkte ändern.
Verkauf am POS? Wählen Sie Sichtbar: ein ausgeblendetes Bundle erscheint auch am Point of Sale nicht.
Testmodus und Katalogsichtbarkeit im Editor des festen Bundles
Katalogsichtbarkeit (nur bei festen Bundles), direkt unter Testmodus. Rechts die Seitenleiste mit Vorschau ansehen und Design anpassen.
Editor des festen Bundles: Bestandteile und Bundle-Preis
Die Bestandteile mit ihrer Menge und der Bereich Preis im Modus „Festen Bundle-Preis festlegen" ($1,299.00 für zwei Boards, die zusammen $1,600.00 ergeben). Der andere Modus im Dropdown ist „Rabatt anwenden", mit einem Prozentsatz oder einem Betrag.
Veröffentlichtes festes Bundle
Nach dem Veröffentlichen: Status Veröffentlicht und die Schaltfläche wird zu „Bundle aktualisieren".

5.2 Was Ihre Kundschaft sieht

Karte „Available bundles
Auf der Produktseite jedes Bestandteils zeigt der Block Combora bundle die Bundle-Karte: den Inhalt mit seiner Menge als Chips, den Bundle-Preis ($1,299.00) mit dem durchgestrichenen Gesamtpreis ($1,600.00), die Ersparnis als Abzeichen (Save $301.00) und die Schaltfläche zum übergeordneten Produkt.
Seite des übergeordneten Produkts des Bundles
Das übergeordnete Produkt: die eigene kaufbare Seite des Bundles. Achten Sie auf den Preis, den das Theme zeichnet — es ist die Summe der Bestandteile ($1,600.00); der Bundle-Preis wird von der Function angewendet, sobald der Warenkorb erreicht wird. Sie können sein Bild und seine Beschreibung wie bei jedem anderen Produkt bearbeiten.
Festes Bundle im Warenkorb
Im Warenkorb ist das Bundle eine einzige Position: $1,600.00 → $1,299.00, mit dem Abzeichen des Bundles. Dort zeigt sich der Bundle-Preis.
Checkout mit dem in seine Bestandteile aufgeteilten Bundle
Beim Checkout teilt sich das Bundle in seine Bestandteile auf, mit der angewendeten Ersparnis und beschriftet mit dem Titel des Bundles.
Seite Bestellung abgeschlossen
Ein tatsächlich abgeschlossener Kauf im Demo-Shop beim Verfassen dieses Handbuchs: $1,299.00 über das Test-Gateway bezahlt.

5.3 Details und Grenzen dieses Typs

  • Bestandteile müssen Varianten mit Lagerbestand sein; das übergeordnete Produkt übernimmt die Verfügbarkeit.
  • Das übergeordnete Produkt verwaltet sich selbst: das Bundle auf Entwurf zu setzen oder zu löschen nimmt es aus dem Shop (beim Verfassen dieses Handbuchs überprüft). Löschen Sie es nicht von Hand.
  • Standardmäßig ist das übergeordnete Produkt im Katalog ausgeblendet. Bevor es diese Option gab, erschien es in /collections/all als Karte ohne Bild; bereits veröffentlichte Bundles wurden automatisch auf „Ausgeblendet" umgestellt. Bevorzugen Sie das alte Verhalten, stellen Sie auf Sichtbar um.
  • Maximal 30 Bestandteile. Der Festpreis wird mit exakter Rundung auf die Bestandteile aufgeteilt (die Summe der Teile ergibt immer den Gesamtbetrag).
  • Das feste Bundle greift auch, wenn die Kundschaft die Bestandteile einzeln in genau den passenden Mengen hinzufügt — der Checkout gruppiert und rabattiert sie genauso.

6Mix & Match

Die Kundschaft wählt mindestens N Artikel aus einer Gruppe, und die gesamte Gruppe wird rabattiert.

6.1 Konfiguration

  1. Produkte: die berechtigte Gruppe kann aus bestimmten Produkten bestehen — wobei Sie im Auswahldialog optional nur einzelne Varianten von jedem ankreuzen können — oder aus einer Kollektion (die sich selbst aktualisiert).
  2. Menge: die Mindestanzahl an Artikeln zur Qualifikation und optional ein Maximum (über dem Maximum werden die zusätzlichen Artikel zum vollen Preis bezahlt).
  3. Rabatt: ein Prozentsatz oder ein Betrag, angewendet auf jeden berechtigten Artikel im Warenkorb, sobald das Minimum erreicht ist.
Editor für Mix & Match
Editor für Mix & Match: berechtigte Gruppe und Mindestanzahl an Artikeln.
Preisbereich von Mix & Match
Der Bereich Rabatt von Mix & Match: Prozentsatz oder Betrag.
Der visuelle Auswahldialog wird bei jedem Geltungsbereich angezeigt. Bei bestimmten Varianten rendert er genau diese Kontrollkästchen; bei Produkten oder einer Kollektion löst der Block Combora mix & match die Liste der Optionen beim Veröffentlichen auf (und aktualisiert sie jede Nacht, oder sofort bei erneuter Veröffentlichung — die zwei Geschwindigkeiten aus Abschnitt 4.3). Die Kundschaft kann das Bundle auch zusammenstellen, indem sie Produkte wie gewohnt in den Warenkorb legt: der Rabatt greift, sobald das Minimum erreicht ist, unabhängig davon, ob der Auswahldialog genutzt wurde.

6.2 Was Ihre Kundschaft sieht

Mix-Auswahldialog mit der Optionsliste und deaktivierter Schaltfläche
Der Auswahldialog auf der Produktseite: die Optionsliste mit eigenem Scrollbereich und die Schaltfläche deaktiviert, bis das Minimum erreicht ist.
Mix-Auswahldialog mit 3 ausgewählten Artikeln und aktiver Schaltfläche
Bei Erreichen des Minimums werden die gewählten Optionen mit einem Akzentring markiert, und der CTA wird aktiv.
Das Bundle in diesem Screenshot hat ein eigenes Design (Abschnitt 13): die Schaltfläche wurde nach oben verschoben und der Fortschrittszähler ausgeblendet. Beim Standarddesign sitzt der Zähler über der Liste und die Schaltfläche darunter.
Warenkorb mit dem Mix-Rabatt auf jeder berechtigten Position
Im Warenkorb zeigt jede berechtigte Position den reduzierten Preis mit dem Abzeichen des Bundles ($400.00 → $320.00 und so weiter, jeweils 20% Rabatt). Im Demo-Shop gemessen: drei Boards, $1,050.00 → $840.00. Ein anderes Bundle kann im selben Warenkorb gleichzeitig gelten, auf seinen Positionen — siehe Abschnitt 14.

6.3 Details dieses Typs

  • Ein Warenkorb unter dem Minimum wird nicht blockiert: die Kundschaft zahlt den vollen Preis, bis sie sich qualifiziert.
  • Ist ein Maximum festgelegt, nimmt der Auswahldialog keine weiteren Häkchen mehr an, sobald die Obergrenze erreicht ist, und im Warenkorb werden nur die ersten Einheiten bis zum Maximum rabattiert.
  • Mengen zählen pro Einheit: 3 Einheiten desselben berechtigten Produkts erfüllen ebenfalls ein Minimum von 3.

7Mengenrabatt

Preisstufen nach Menge: „ab 2 kaufen → 10%, ab 4 → 20%". Die Stufe wird pro Produkt entschieden: die Menge jedes berechtigten Produkts im Warenkorb bestimmt seine eigene Stufe, und die erreichte Stufe gilt für die Einheiten dieses Produkts. Beispiel mit „4+ → 20%": 4 Einheiten desselben Boards → 20% Rabatt auf alle 4; aber 2 Einheiten eines Boards + 2 eines anderen → jedes Produkt liegt in der Stufe 2+ (10%), nicht in der Stufe 4+. Mengen verschiedener Produkte addieren sich nicht miteinander.

7.1 Konfiguration

  1. Produkte: bestimmte Produkte oder eine Kollektion (wie bei Mix & Match). Wenn Sie nur einzelne Varianten eines Produkts möchten, kreuzen Sie diese im Auswahldialog an, wenn Sie es wählen.
  2. Stufen: jede Stufe besteht aus „Mindestens N kaufen" + einem Rabatt (Prozentsatz oder Betrag). Fügen Sie so viele hinzu, wie Sie brauchen, mit „Stufe hinzufügen" (bis zu 50).
Mengenrabatt-Editor mit zwei Stufen
Zwei Stufen: 2+ → 10% und 4+ → 20%. Der Editor selbst erklärt es: die Menge jedes Produkts im Warenkorb entscheidet über seine Stufe.

7.2 Was Ihre Kundschaft sieht

Mengentabelle auf der Produktseite
Der Block Combora volume table auf der Produktseite: die Stufenleiter, eine Zeile pro Stufe mit der Ersparnis als Akzent-Abzeichen, wobei die höchste Stufe mit einem Ring hervorgehoben wird.
Warenkorb mit 4 Einheiten und angewendeten 20%
Bei 4 Einheiten im Warenkorb greift die 20%-Stufe: $4,000.00 → $3,200.00, mit dem Abzeichen des Bundles auf der Position.

7.3 Details dieses Typs

  • Es gilt nur die höchste erreichte Stufe (Stufen addieren sich nicht).
  • Stufen können Wertarten mischen (manche %, manche Betrag).
  • Ein fester Rabattbetrag wird proportional und exakt auf die Positionen aufgeteilt.

8Kaufe X, erhalte Y (BOGO)

Beim Kauf von X Einheiten erhalten die nächsten Y Einheiten eine Belohnung. Die Belohnung kann kostenlos sein (100%), ein Prozentsatz, ein Rabattbetrag oder ein Festpreis pro Einheit.

8.1 Konfiguration

BOGO-Editor — Grundlagen
Der BOGO-Editor: das Produkt, auf dem das Angebot läuft, und rechts die Leiste mit Status und Vorschau. Wären diese Produkte auch in einem anderen Bundle, stünde oben der Überschneidungshinweis — informativ, nicht blockierend.
BOGO-Editor — Menge zum Kaufen, zum Erhalten und die Belohnung
Menge zum Kaufen = 2, Menge zum Erhalten = 1 und eine Belohnung von 100% (Kaufe 2, erhalte 1 gratis). Die Belohnungsauswahl bietet Prozentsatz, Betrag oder Festpreis.

8.2 Was Ihre Kundschaft sieht

Warenkorb mit 3 Einheiten und 1 gratis
Bei 3 Einheiten (je $300.00): $900.00 → $600.00 — eine Einheit ist gratis, mit dem Abzeichen „Buy 2, get 1 free" auf der Position.

8.3 Details dieses Typs

  • Das Angebot wiederholt sich in ganzen Blöcken: bei „2+1" bedeuten 6 Einheiten = 2 gratis; 5 Einheiten = 1 gratis.
  • Der Theme-Block, der es darstellt, ist Combora volume table (er stellt „Kaufe X, erhalte Y" als Ersparnistabelle dar).
  • Die Belohnung „Festpreis" berechnet genau diesen Preis für jede belohnte Einheit.

9Geschenk zum Kauf (GWP)

Fügt automatisch ein Geschenkprodukt (zu $0.00) hinzu, wenn der Warenkorb die Bedingung erfüllt, und entfernt es wieder, wenn sie nicht mehr erfüllt ist. Es ist der am stärksten automatisierte Typ: das App-Embed Combora Gift verwaltet das Geschenk, ohne dass die Kundschaft etwas tun muss.

🛒 Der Warenkorb ändert sich hinzufügen, entfernen, Mengen… Bedingung erfüllt? Betrag · Einheiten · beides · genaue Kombination ja 🎁 Geschenk rein es fügt sich selbst hinzu, zu $0.00, als Geschenk markiert nein ✋ Geschenk raus es entfernt sich selbst, sobald die Bedingung nicht mehr erfüllt ist Geht das Geschenk aus, wird das Angebot nicht mehr beworben (nie etwas versprechen, das nicht vorhanden ist)
Der automatische Geschenkzyklus: bei jeder Änderung des Warenkorbs bewertet die Engine die Bedingung neu und fügt das Geschenk hinzu oder entfernt es, ohne dass Sie oder die Kundschaft etwas tun müssen. Und geht das Geschenk aus, blendet sich die Angebotskarte selbst aus.

9.1 Konfiguration

  1. Das Geschenk: eine bestimmte Variante, die hinzugefügt wird, sobald die Kundschaft sich qualifiziert.
  2. Bedingung zum Freischalten — vier Optionen:
    • Nach Mindestbestellwert: der Warenkorb erreicht einen Betrag (z. B. $1,000).
    • Nach Anzahl der Artikel: er erreicht N Einheiten.
    • Bestellwert und Menge (beides): beides ist erforderlich.
    • Durch eine Produktkombination: eine bestimmte Liste von Artikeln (2 bis 5; jeweils eine Einheit), die alle im Warenkorb sein müssen.
  3. Was auf die Bedingung angerechnet wird: jedes Produkt im Shop, bestimmte Produkte oder Kollektionen.
GWP-Editor mit der Mindestbestellwert-Bedingung und den anrechenbaren Produkten
Der Editor: das gewählte Geschenk (ein Skiwachs für $20.00), die Bedingung „Nach Mindestbestellwert" mit der Schwelle bei $1,000 und „Was auf die Bedingung angerechnet wird" auf ein bestimmtes Board eingegrenzt, sodass nur dessen Einheiten die Leiste füllen. Wählen Sie stattdessen Jedes Produkt, ergänzt der Editor das Kontrollkästchen „Dieses Geschenkangebot auf jeder Produktseite anzeigen".

9.2 Was Ihre Kundschaft sieht

Geschenk-Fortschrittsleiste unterhalb der Schwelle
Die Leiste des Blocks Combora gift progress ist eine Karte mit einem Geschenk-Symbol: sie zeigt an, wie viel noch fehlt ($650.00 mehr bei einem Warenkorb mit einem Board für $350.00, die Leiste steht also bei 35%) und füllt sich, während der Warenkorb wächst.
Automatisch hinzugefügtes Geschenk zu $0.00
Bei Erreichen der Schwelle fügt sich das Geschenk selbst zu $0.00 mit dem Abzeichen des Bundles hinzu, und die Leiste feiert das mit dem Akzentring. Im Demo-Shop gemessen: drei dieser Boards ergeben $1,050.00, überschreiten die Schwelle von $1,000, und das Skiwachs für $20.00 kommt gratis dazu — $1,070.00 → $1,050.00. Fällt der Warenkorb wieder unter die Schwelle, entfernt sich das Geschenk selbst.

Die Leiste hat vier Zustände und benennt Geschenk und anrechenbare Produkte vom leeren Warenkorb an: bevor die Kundschaft startet, nennt sie die Regel („gib $1,000 für dieses Board aus und erhalte das Skiwachs gratis"), auf halbem Weg sagt sie, was noch fehlt, beim Überschreiten der Schwelle kündigt sie das Geschenk beim Namen an, und nimmt die Kundschaft das Geschenk von Hand heraus, sagt sie das, statt auf „wird angewendet" stehen zu bleiben. Zählen mehr als drei Produkte, sagt die Leiste berechtigte Produkte und ergänzt ein Aufklappfeld „Welche Produkte zählen?", das sie auflistet.

Sie können den Text der Leiste selbst schreiben. Der Geschenk-Editor hat einen Abschnitt Nachricht im Warenkorb mit drei optionalen Feldern: leerer Warenkorb, auf halbem Weg und Geschenk freigeschaltet. Bleibt ein Feld leer, behält dieser Zustand den Standardtext; füllen Sie es, ersetzt Ihr Text ihn — mit Platzhaltern zum Einsetzen: {{ amount }} (was noch fehlt), {{ qty }} (fehlende Artikel), {{ scope }} (die anrechenbaren Produkte), {{ gift }} (der Name des Geschenks) und {{ threshold }} (die volle Schwelle). Der Editor zeigt eine Vorschau mit den Zahlen Ihres eigenen Bundles und lässt einen unbekannten Platzhalter oder eine Nachricht über 160 Zeichen nicht veröffentlichen.

9.3 Details und Schutzmechanismen dieses Typs

  • Das Geschenk selbst zählt nicht zum qualifizierenden Bestellwert.
  • Die Schwelle wird am Listenpreis der anrechenbaren Positionen gemessen, nicht an dem, was die Kundschaft am Ende zahlt — ein anderes Angebot, das dieselben Positionen rabattiert, zehrt sie also nie auf. Leiste, automatisches Geschenk und Checkout lesen dieselbe Zahl.
  • Entfernt die Kundschaft das Geschenk von Hand, respektiert die App das und fügt es in dieser Sitzung nicht erneut hinzu; die Leiste im Warenkorb sagt genau das („Geschenk entfernt"), statt bei „wird angewendet" hängen zu bleiben.
  • Ziehen Sie das Angebot zurück (auf Entwurf setzen, Ende des Zeitfensters), während offene Warenkörbe das Geschenk bereits enthalten, entfernt die Engine diese verwaiste Position von selbst, sobald sich der Warenkorb erneut ändert — sie wird nie zu einer Belastung.
  • Geht das Geschenk aus, fügt das Angebot es einfach nicht hinzu (es blockiert den Kauf nicht).
  • Schutz vor Fehlberechnung: eine Checkout-Validierung verhindert, dass für ein als Geschenk markiertes Produkt bezahlt wird, das mit einem Preis ankommt — die Kundschaft zahlt nie versehentlich für einen als Geschenk gekennzeichneten Artikel. Die Validierung greift nur beim Checkout, nie beim Stöbern.
  • Ist „was zählt" auf Kollektionen gesetzt, löst die App die Produkte der Kollektion beim Veröffentlichen auf (und aktualisiert sie jede Nacht, oder sofort bei erneuter Veröffentlichung — die zwei Geschwindigkeiten aus Abschnitt 4.3), sodass die Fortschrittsleiste und das automatische Geschenk genau wie bei bestimmten Produkten funktionieren. Die eine Ausnahme: eine sehr große Kollektion (mehr als ~150 Produkte) lässt sich im Browser nicht vorhersagen — für dieses Angebot wird die Leiste nicht angezeigt, aber Geschenk und Preis stimmen trotzdem (der Server entscheidet darüber).
  • Ein Geschenk, dessen „was zählt" jedes Produkt im Shop ist, kann mit dem Block Combora gift offer auf jeder Produktseite beworben werden: wählen Sie diesen Geltungsbereich, zeigt der Editor das Kontrollkästchen „Dieses Geschenkangebot auf jeder Produktseite anzeigen". Deaktiviert (Standard) ist das Angebot nur im Warenkorb sichtbar — Fortschrittsleiste und automatisches Geschenk funktionieren trotzdem; aktiviert, wird es zusätzlich mit einer Karte auf jeder Produktseite beworben (das Angebot hat keine bestimmten Produkte zum Ankreuzen, daher liest der Block es aus dem veröffentlichten Index des Shops). Die bewusste Ausnahme bleibt die Seite des Geschenkprodukts selbst: ein Preis ist kein Köder.

10Box zusammenstellen

Die Kundschaft füllt eine Box fester Größe (z. B. 3 Artikel) mit dem, was sie aus einer Gruppe wählt. Jede vollständige Box wird mit Rabatt oder zu einem festen Box-Preis berechnet.

10.1 Konfiguration

Editor für Box zusammenstellen mit Box-Preis
Box-Größe = 3 über die fünf Varianten eines Boards, bepreist mit „Box-Preis festlegen" = $1,749.00 (von $2,100.00, also $351.00 Rabatt — $583.00 pro Artikel). Der andere Modus im Dropdown ist ein einfacher Prozentsatz oder Betrag. Ein Warenkorb unter der Größe wird nicht blockiert: der volle Preis wird bezahlt, bis die Box vollständig ist.

10.2 Was Ihre Kundschaft sieht

Es verwendet denselben Block Combora mix & match und denselben Auswahldialog mit Zähler wie Abschnitt 6: „3 auswählen", ein Fortschrittszähler, ein CTA mit der Menge. Der Unterschied liegt in der Rechnung: hier werden Boxen pro vollständiger Box berechnet — bei einer Box mit 3 sind sechs Artikel zwei Boxen; sieben Artikel sind zwei Boxen plus ein Artikel zum vollen Preis.

10.3 Details dieses Typs

  • Berechtigte Gruppe: bestimmte Produkte (mit ihren Varianten, falls Sie nur einzelne ankreuzen) oder eine Kollektion (der visuelle Auswahldialog wird bei jedem Geltungsbereich angezeigt, wie bei Mix & Match — bei Kollektionen wird die Liste beim Veröffentlichen aufgelöst und jede Nacht aktualisiert).
  • Der Box-Preis wird exakt auf die Artikel aufgeteilt; bei Währungen ohne Dezimalstellen (JPY) oder mit drei Dezimalstellen (BHD) berücksichtigt die Aufteilung die jeweilige Währung.
  • Er unterstützt die Abonnement-Option (Abschnitt 4.5).

11Ergänzungen (häufig zusammen gekauft)

Ein Hauptprodukt schlägt ergänzende Produkte vor; nimmt die Kundschaft das Set, erhält sie einen Rabatt. Es ist das klassische „häufig zusammen gekauft" auf der Produktseite.

11.1 Konfiguration

Editor für Ergänzungen mit Hauptprodukt und Vorschlägen
Der Editor: das Hauptprodukt (der Anker, an dem das Angebot erscheint), die ergänzenden Produkte und der Rabatt (25%). Die Seitenleiste zeigt die Widget-Vorschau mit ihrem CTA.

11.2 Was Ihre Kundschaft sieht

Block Ergänzungen auf der Hauptproduktseite
Auf der Seite des Hauptprodukts der Block Combora complements: das Produkt selbst markiert als „This item", die Ergänzungen mit Kontrollkästchen und Preis, die Ersparnis („Save 25%") und der CTA, der die Auswahl benennt („Add 3 to cart"). Die Artikel werden durch „+"-Trenner getrennt, ausgewählte Zeilen sind mit einem Akzentring markiert. Im Demo-Shop mit allen dreien im Warenkorb gemessen: $800.00 → $600.00 ($500.00 → $375.00, $180.00 → $135.00, $120.00 → $90.00).

11.3 Details dieses Typs

  • Der Rabatt gilt, sobald das Hauptprodukt und mindestens eine Ergänzung im Warenkorb sind; er umfasst die Positionen des Sets.
  • Der Block kann auch der Warenkorbvorlage hinzugefügt werden, als letzter Cross-Selling-Anstoß.
  • Nicht vorrätige Ergänzungen erscheinen deaktiviert mit entsprechendem Hinweis und sind nie vorab angekreuzt.

12Combo

Der fortgeschrittene Typ: er stapelt zwei oder mehr Teilangebote (aus beliebigen der anderen Typen) zu einem einzigen Bundle. Der entscheidende Unterschied zum Veröffentlichen separater Bundles: innerhalb eines Combos addieren sich die Teilangebote — die Kundschaft kann den Mengenrabatt und das Geschenk gleichzeitig erhalten.

12.1 Konfiguration

Combo-Editor mit zwei fertigen Teilangeboten
Der Combo-Editor: jedes Teilangebot ist eine Akkordeon-Zeile mit eigenem Status (Bereit). Die Vorschau fasst die Angebote zusammen und zeigt das verbrauchte Budget („Verwendet 1 von 50 Produkteinträgen").

Jede Zeile lässt sich mit dem Pfeilsymbol direkt aufklappen, und das Teilangebot wird inline bearbeitet: seine eigenen Produkte, seine eigenen Stufen oder Belohnung. Jedes Teilangebot wirkt sich nur auf seine eigenen Produkte aus.

12.2 Was Ihre Kundschaft sieht

Ein Combo wird im Block Combora bundle nicht als Karte beworben: dieser Block listet feste Bundles, die einen Preis und einen Button haben, und ein Combo hat beides nicht. Jedes Teilangebot wird stattdessen mit seinem eigenen Block beworben — die Mengentabelle für ein Mengen-Teilangebot, die Geschenkleiste für ein Geschenk-Teilangebot — und das Combo zeigt seine volle Wirkung im Warenkorb, wo jeder Teil mit seinem eigenen Abzeichen wirkt: der Mengenrabatt auf seinen Positionen und das automatisch hinzugefügte Geschenk zu $0.00.

Im Demo-Shop an einem Combo gemessen, das „2 oder mehr von diesem Board → 15% Rabatt" mit „eine Mütze gratis, sobald $900.00 davon im Warenkorb liegen" kombiniert: zwei Boards gehen von $1,040.00 auf $850.00 — die 15% und die Mütze zu $0.00 — und drei von $1,540.00 auf $1,275.00. Zwei getrennte Bundles würden beides nie auf derselben Position tun; innerhalb eines Combos addieren sich die Teilangebote (Abschnitt 14).

12.3 Details dieses Typs

  • Teilangebote addieren sich innerhalb des Combos, aber das Combo tritt als Ganzes gegen die anderen Bundles nach der Regel „bestes Angebot pro Position" an.
  • Das Geschenk in einem GWP-Teilangebot nutzt dieselbe Auto-Hinzufügen-Engine wie der Geschenk-Typ.
  • Größenbegrenzung: die abgeflachte Produktmenge des Combos darf 50 Einträge nicht überschreiten (der Editor zeigt es: „Verwendet X von 50").
  • Der Editor hat ein Modal „So funktionieren Combos" mit einem geführten Beispiel, und jedes Teilangebot definiert „Produkte, für die dieses Angebot gilt" — ein Teilangebot ohne bestimmte Produkte zeigt eine Warnung, weil es nichts bepreisen kann.
  • Ein BOGO-Teilangebot innerhalb eines Combos bietet eine Belohnung als Prozentsatz oder Betrag (der „Festpreis pro Einheit" ist dem eigenständigen BOGO vorbehalten).

13Das Widget gestalten

Die Blöcke von Combora werden mit einem Look ausgeliefert, der zu jedem Theme passt, aber Sie können sie aus der App heraus gestalten, ohne CSS anzufassen: einen Stil wählen, Elemente neu anordnen und ausblenden, und Farben, Größen und Formen Element für Element anpassen. Das alles mit einer Vorschau, die dieselbe Rendering-Engine wie Ihr Shop verwendet, sodass das, was Sie sehen, auch veröffentlicht wird.

Das Design betrifft nur das Erscheinungsbild: es ändert nie den Preis. Sie können es anpassen, ohne dass auch nur eine Regel des Angebots berührt wird.

13.1 Zwei Orte, an denen Sie gestalten

WoGeltungsbereichWann Sie es nutzen
Einstellungen → Widget-Design → Widget-Vorlage bearbeiten Die shopweite Vorlage: jedes Bundle erbt sie. Der Normalfall. Sie legen Ihren Stil einmal fest, und jedes Bundle folgt ihm.
Bundle-Editor → Design anpassen Nur dieses eine Bundle. Was Sie hier festlegen, hat Feld für Feld Vorrang vor der Vorlage. Ein Bundle, das hervorstechen soll (eine Kampagne, eine andere Farbe).

Ein Bundle, das nichts angepasst hat, zeigt den Hinweis „Dieses Bundle folgt der Widget-Vorlage Ihres Shops". Sobald Sie dort ein Preset wählen, geht dieses Bundle seinen eigenen Weg.

Design-Studio: die shopweite Widget-Vorlage
Einstellungen → Widget-Design: die Stile links, der Umgebungssimulator rechts und darunter die Widget-Vorschau. Die Auswahl Widget-Vorschau oben ändert, welchen Widget-Typ Sie gerade betrachten.
Das Speichern der Vorlage synchronisiert Ihre veröffentlichten Bundles neu, damit der neue Stil den Shop erreicht: es kann eine Minute dauern, bis es sichtbar wird. Das Panel selbst sagt Ihnen, wie viele Bundles neu synchronisiert werden.

13.2 Die Stile (Presets)

Shop-Vorlage
Nur im Design eines Bundles: es folgt dem, was Sie in den Einstellungen festgelegt haben. Es ist der Ausgangswert. Gibt es noch keine Vorlage, gelten die Einstellungen des Blocks im Theme-Editor.
Theme-Editor
Die eigenen Einstellungen des Blocks in Ihrem Theme-Editor gewinnen (Akzent, Ecken, Stilmodus). Das ist das klassische Verhalten, das Sie hatten, bevor es das Studio gab.
Combora
Der ausgefeilte Look von Combora: eine Karte mit eigenem Hintergrund, Rändern und Schatten. In jedem Theme konsistent.
Wie das Theme
Minimale Dekoration: die Typografie und Farben Ihres Themes dominieren. Für Themes mit starker eigener Persönlichkeit.
Ungestylt
Sauberes Markup, keine Dekoration, damit Ihr Entwickler eigenes CSS schreiben kann (Theme-Editor → Custom CSS). Die Ansatzpunkte sind die Klasse .combora-w und die Variablen --combora-*.
Benutzerdefiniert
Öffnet die Steuerelemente darunter: Layout, globaler Stil und Feinabstimmung pro Element.

13.3 Layout: neu anordnen und ausblenden

Mit dem Preset Benutzerdefiniert erscheint Layout: eine Liste der Widget-Elemente, die Sie per Ziehen (oder mit den Pfeilen) in der Reihenfolge ändern können, dazu ein Augensymbol, um die optionalen auszublenden.

Die Elemente hängen vom Bundle-Typ ab, da jeder Typ ein anderes Widget zeichnet:

Bundle-TypElemente, die Sie neu anordnen können
Festes Bundle · ComboTitel · Enthaltene Produkte · Preis · Ersparnis · Schaltfläche
Mix & Match · Box zusammenstellenTitel · Fortschrittszähler · Optionsliste · Hinweis · Schaltfläche
MengenrabattTitel · Stufenleiter
Kaufe X, erhalte YTitel · Angebotsregel
Geschenk zum KaufTitel · Geschenk · Freischaltbedingung
ErgänzungenTitel · Artikelliste · Ersparnis · Schaltfläche
Was die Kundschaft braucht, kann nicht ausgeblendet werden. Die Auswahldialoge, die Artikellisten, die Stufenleiter, das Geschenk und die Schaltflächen haben bewusst kein Augensymbol: ohne sie würde das Widget nichts aussagen. Neu anordnen können Sie sie aber.
Preset Benutzerdefiniert: Layout, globaler Stil und Feinabstimmung pro Element
Mit dem Preset Benutzerdefiniert: Layout (Zeilen ziehen, das Auge blendet die optionalen aus), Globaler Stil und Feinabstimmung pro Element. Die Vorschau rechts aktualisiert sich bei jeder Änderung.

13.4 Globaler Stil und Feinabstimmung

Globaler Stil ist das, was das gesamte Widget auf einmal ändert: Akzentfarbe, Kartenhintergrund, Textfarbe, Ecken (scharf / weich / rund), Schatten (keiner / weich / mittel) und Dichte.

Feinabstimmung pro Element öffnet jedes Element einzeln — Titel, Preis, Ersparnis, Abzeichen, Schaltfläche, Karte, Miniaturbilder, Beschriftungen — mit dem, was für jedes sinnvoll ist: Größe, Schriftstärke, Farbe, Großbuchstaben, Innenabstand, Form, Rahmenfarbe, Farbe des durchgestrichenen Preises… Jedes Steuerelement hat ein „Zurück zum Theme", um nur diese Anpassung rückgängig zu machen, und unten gibt es ein „Gesamte Anpassung zurücksetzen".

  • Definieren Sie die Ersparnis nicht, folgt sie dem Stil des Abzeichens.
  • Die Textfarbe der Schaltfläche kann nicht gewählt werden: sie wird automatisch anhand des Kontrasts zum gewählten Hintergrund abgeleitet, damit sie nie unleserlich wird.
  • Werte sind auf sinnvolle Bereiche begrenzt: Sie können keine Größe eingeben, die das Widget auf Mobilgeräten zerstört.

13.5 Die Vorschau (und was sie NICHT ist)

Rechts gibt es ein Panel mit der Kennzeichnung „Nur Vorschau". Der Unterschied ist wichtig:

  • Links = Ihr Design. Was Sie dort anpassen, wird gespeichert und gelangt in den Shop.
  • Rechts = die Linse. Vorschau-Hintergrund (hell / dunkel / eine eigene Farbe), Basis-Textgröße, Slot-Breite (eine schmale Produktspalte gegenüber einem breiten Bereich) und eine Annäherung an Ihre Typografie. Sie dient dazu zu prüfen, ob Ihr Design an verschiedenen Stellen funktioniert. Sie ändert nichts an Ihrem Shop oder an Ihrem Design.

Und in der Seitenleiste des Bundle-Editors zeigt Ihnen die Karte „Vorschau-Stil", welches Design aktiv ist („Aktives Design: Combora"), und bietet zwei Schaltflächen: Vorschau ansehen, die das Widget in voller Größe in einem Modal öffnet („So wird es in Ihrem Shop aussehen"), und Design anpassen, die in das Studio dieses Bundles führt. Die echte Typografie und der Hintergrund stammen aus Ihrem Theme; für die endgültige Abnahme schauen Sie sich das Widget daher im Theme-Editor an.

Die Vorschau verwendet denselben Code wie der Shop, aber das Theme ist Ihres: definiert Ihr Theme sehr eigenwillige Schriften oder Hintergründe, kann das Endergebnis anders aussehen als die Vorschau. Das ist der einzige Spielraum.

14Bundles miteinander kombinieren

Sie können so viele Bundles veröffentlichen, wie Ihr Tarif erlaubt, auch über dieselben Produkte hinweg. Die Regeln des Nebeneinanders sind fest und vorhersehbar:

  1. Das beste Angebot pro Position. Für jeden Artikel im Warenkorb wendet Shopify das Angebot an, das diesen Artikel am stärksten rabattiert. Zwei Bundles addieren sich nie auf derselben Position.
  2. Verschiedene Bundles können im selben Warenkorb nebeneinander bestehen — jedes auf seinen eigenen Positionen. Ein Mix-Rabatt auf die Boards und ein bestellwertbasiertes Geschenk können gleichzeitig gelten, weil sie auf unterschiedlichen Positionen wirken.
  3. Bei Gleichstand gewinnt das ältere Bundle (das zuerst erstellte).
  4. Die Ausnahme ist das Combo: seine Teilangebote addieren sich untereinander sehr wohl (Abschnitt 12).

Und Rabatte, die nicht von Combora kommen? Die Regel oben gilt für Combora-Pakete untereinander. Bei fremden Rabatten entscheidet Shopify, und wir haben es im Live-Shop verifiziert: zwei Produktrabatte (ein Combora-Paket und ein eigener automatischer Rabatt oder Produkt-Code) addieren sich nie auf demselben Artikel — Shopify wendet nur den größeren der beiden an, selbst wenn beide als kombinierbar markiert sind; sie können auf verschiedenen Positionen derselben Bestellung koexistieren. Ein Bestellrabatt (etwa ein Code über −10 % auf die ganze Bestellung) wird danach sehr wohl abgezogen, auf die bereits rabattierten Preise — Shopifys Standardverhalten mit jeder App.

Warenkorb mit dem Mix-Rabatt auf jeder berechtigten Position
Jede Position, die ein Angebot abdeckt, trägt dessen Rabatt und dessen Abzeichen — hier die 20% Mix auf drei Boards, $1,050.00 → $840.00. Ein anderes Bundle, dessen Produkte ebenfalls in diesem Warenkorb liegen, gilt für seine Positionen, im selben Warenkorb, ohne dass sich die beiden je auf einer Position treffen.
Der Überschneidungshinweis im Editor existiert genau dafür: veröffentlichen Sie ein Bundle, dessen Produkte bereits in anderen Bundles sind, erinnert er Sie daran, dass beim Checkout nur das beste Angebot pro Position gilt. Veröffentlichen Sie ohne Sorge — die Kundschaft wird nie einen doppelten Rabatt oder einen falschen Preis sehen.

Ein echtes Zahlenbeispiel (im Shop überprüft)

WarenkorbInfrage kommende AngeboteErgebnis
3 × Cascade Freeride ($300.00)BOGO 2+1 gratis$900.00 → $600.00 (eine Einheit gratis)
4 × Oxygen ($1,000.00)Mengenrabatt 4+ → 20%$4,000.00 → $3,200.00
2 × OxygenMengenrabatt 2+ → 10% (die Stufe 4+ wird nicht erreicht)$2,000.00 → $1,800.00
3 berechtigte BoardsMix & Match, Mindestmenge 3 → 20%$1,050.00 → $840.00 ($400.00 → $320.00 und so weiter)
3 × das Board, an das ein Geschenk gebunden ist ($1,050.00)Geschenk ab $1,000 dieses BoardsDas Skiwachs für $20.00 kommt zu $0.00 dazu: $1,070.00 → $1,050.00
2 × das Board des CombosInnerhalb eines Combos: Mengenrabatt 15% und GeschenkBeides gilt: $1,040.00 → $850.00

Im Demo-Shop gehört ein Produkt absichtlich zu zwei Bundles: das Board, das Komponente des festen Bundles ist, ist zugleich Gegenstand des Mengen-Bundles. Allein bekommt es die Mengenstufe, die seine Menge hergibt; zusammen mit der anderen Komponente des festen Bundles, in den exakten Mengen, wird auch das feste Bundle zum Kandidaten, und die Position behält das bessere der beiden. Gleiches Produkt, zwei Bundles, ein Preis pro Position — nie beide.

15Massenanlage

In der Galerie Bundle erstellen gibt es zwei Abläufe, um viele Bundles auf einmal anzulegen. Beide erzeugen Entwürfe: nichts erreicht den Shop, bevor Sie es prüfen und veröffentlichen.

15.1 Aus einer Kollektion generieren

  1. Wählen Sie die Kollektion.
  2. Wählen Sie die Vorlage: „Ein Multipack pro Produkt" (ein festes Bundle mit N Einheiten für jedes Produkt) oder „Ein einziges Bundle für die gesamte Kollektion".
  3. Konfigurieren Sie Einheiten und Rabatt, und klicken Sie dann auf Entwürfe erstellen.
Generator konfiguriert mit einer Kollektion und einer Vorlage
Der Generator: die Multipack-Vorlage, 3 Einheiten pro Pack und 15% Rabatt. Die Kollektion wird mit Shopifys eigenem Auswahldialog über Kollektion auswählen gewählt.

Was jede Vorlage tatsächlich erstellt

Ein Multipack pro Produkt geht die Kollektion durch und erstellt pro Produkt ein festes Bundle als Entwurf: N Einheiten der ersten Variante dieses Produkts (nach Positionsreihenfolge), mit dem gewählten Rabatt auf die Summe. Jeder Entwurf ist ein normales festes Bundle — öffnen Sie ihn, um die Variante zu ändern, zu einem festen Bundle-Preis zu wechseln, ein Abzeichen hinzuzufügen… — und beim Veröffentlichen wird er zu einem eigenen, mit einem Klick kaufbaren Produkt, wie jedes feste Bundle (Abschnitt 5).

Ein einziges Bundle für die gesamte Kollektion erstellt genau einen Entwurf des flexiblen Typs, den Sie wählen (Mengenrabatt, Mix & Match, Box zusammenstellen oder Kaufe X, erhalte Y), dessen berechtigte Gruppe die Kollektion selbst ist. Die Zugehörigkeit folgt Ihrem Katalog: die Gruppe wird beim Veröffentlichen aufgelöst und jede Nacht aktualisiert (oder sofort beim erneuten Veröffentlichen), sodass Produkte, die Sie später zur Kollektion hinzufügen, in das Angebot aufgenommen werden, ohne dass Sie das Bundle anfassen.

Produkte werden übersprungen — und das Ergebnisbanner meldet es —, wenn sie in Ihrem Katalog nicht Aktiv sind, wenn sie keine kaufbare Variante haben — und wenn sie selbst Combora-Pack-Produkte sind: ein generiertes Pack verschachtelt nie ein anderes Pack.

Durchgerechnete Beispiele

Derselbe Bildschirm, sieben Konfigurationen und genau das, was jede davon erzeugt:

KonfigurationWas erstellt wird
Kollektion mit 12 Produkten · Multipack · 3 Einheiten · 15%12 Entwürfe, einer pro Produkt, mit dem Namen „Produkt — 3er-Pack". Jeder enthält 3× die erste Variante des Produkts und berechnet nach dem Veröffentlichen beim Checkout (3 × Preis) − 15%.
Dasselbe, aber Rabatt = fester Betrag 512 Entwürfe, bei denen jedes Pack (3 × Preis) − 5 in der Währung Ihres Shops berechnet. Ist ein Produkt so günstig, dass der Rabatt den Preis verschluckt, prüfen Sie diesen Entwurf vor dem Veröffentlichen.
Kollektion mit 9 Produkten, davon eines ein Combora-Pack und eines nicht Aktiv7 Entwürfe; das Banner meldet die übersprungenen Produkte mit dem jeweiligen Grund.
Erneutes Ausführen exakt derselben Konfiguration im nächsten MonatNur die Produkte, die neu in der Kollektion sind, erhalten einen Entwurf; jedes Produkt, das bereits ein identisches generiertes Pack hat, wird als Duplikat gemeldet und übersprungen. Erneutes Ausführen ist immer sicher.
Kollektion mit 250 Produkten · MultipackDie ersten 100 Entwürfe (die Obergrenze pro Durchlauf) plus ein Hinweis; veröffentlichen oder löschen Sie einige und führen Sie den Durchlauf für den Rest erneut aus.
Vorlage „Ein einziges Bundle" · Mengenrabatt · Mindestmenge 3 · 15%Ein Entwurf „Mengenrabatt {collection}": ab 3 Einheiten derselben Variante gibt es 15% Rabatt — jedes Produkt der Kollektion staffelt für sich (der Mengenrabatt zählt pro Position, Abschnitt 7). Um das Mischen verschiedener Produkte zu belohnen, verwenden Sie stattdessen Mix & Match: dessen Mindestanzahl zählt über die gesamte Auswahl.
Vorlage „Ein einziges Bundle" · Kaufe X, erhalte Y · Kaufe 2, erhalte 1 · Belohnung 100%Ein Entwurf: für je 2 aus der Kollektion gekaufte Einheiten ist die nächste Einheit gratis. Eine Belohnung von 50% würde sie stattdessen zum halben Preis berechnen.
Grenze: bis zu 100 Entwürfe pro Generierung. Entwürfe sind in jedem Tarif kostenlos — das Limit von 3 veröffentlichten Bundles im Gratis-Tarif greift beim Veröffentlichen, nicht beim Generieren.

15.2 Import aus einer CSV-Datei

Für große Kataloge oder für den Umzug aus einer anderen App. Die Seite enthält die vollständige Formatreferenz, eine herunterladbare Vorlage mit einem Beispiel pro Typ und eine Schaltfläche Exportieren (sie lädt alle Ihre Bundles im selben Format herunter, bereit für den erneuten Import in einen anderen Shop).

CSV-Import-Seite mit der Spaltenreferenz
Die Import-Seite: Spalten type, title, discount_kind, discount_value, components, collection, min_qty, min_items, slots, buy_qty, get_qty. Sie können eine Datei hochladen oder die CSV direkt einfügen.
  • Importierbare Typen: fixed, volume, mix_and_match, build_a_box, bogo (die Typen mit Geschenk, Anker oder Teilangeboten werden im Editor erstellt).
  • Referenzen über den Handle von Produkt oder Kollektion, oder über die Shopify-GID.
  • In components (nur bei fest): handle:quantity, getrennt durch |.
  • Bis zu 200 Zeilen pro Import; eine größere Datei wird gekürzt, und Sie werden darüber informiert.
Import mit zeilenweisen Fehlern
Bei einer fehlerhaften CSV wird nichts stillschweigend verworfen: jede fehlgeschlagene Zeile wird mit ihrem Grund gemeldet (keine Bestandteile, Rabatt außerhalb des zulässigen Bereichs, unbekannter Typ).
Nach Entwürfen gefilterte Liste nach den Massenabläufen
Die von beiden Abläufen erstellten Entwürfe, die Liste gefiltert nach dem Status Entwurf. Veröffentlichen Sie sie einzeln oder mit den Sammelaktionen.

16Täglicher Betrieb

16.1 Die Liste

Suche nach Namen, Filter nach Status und pro Zeile: Duplizieren (erstellt eine Entwurfskopie), Veröffentlichen / Auf Entwurf setzen und Löschen. Das Datum in jeder Zeile ist die letzte Änderung (mit Tooltip beim Überfahren).

16.2 Sammelaktionen

Leiste für Sammelaktionen mit 10 ausgewählten Bundles
Das Auswählen von Zeilen (oder Alle auswählen) blendet die Sammelleiste ein: Veröffentlichen · Auf Entwurf setzen · Löschen.
Inline-Bestätigung für das Löschen mehrerer Bundles
Löschen verlangt eine ausdrückliche Bestätigung: 10 Bundles löschen? … Dies kann nicht rückgängig gemacht werden. Während des Vorgangs sehen Sie den Fortschritt (Verarbeite 6 von 10…).

16.3 Der Lebenszyklus eines Bundles

Entwurf
Für den Shop unsichtbar. Uneingeschränkt bearbeitbar.
Veröffentlicht
Das Angebot ist aktiv (innerhalb seines Zeitfensters). Bearbeitungen ändern nichts live, bis Sie auf Bundle aktualisieren klicken.
Auf Entwurf setzen
Zieht das Angebot sofort zurück; die Konfiguration bleibt unangetastet, sodass Sie es erneut veröffentlichen können.
Löschen
Löscht das Bundle und zieht seinen Rabatt zurück (sowie das übergeordnete Produkt, falls es ein festes Bundle war). Kann nicht rückgängig gemacht werden. Die Statistiken vergangener Bestellungen bleiben erhalten.

16.4 Was Combora von selbst erledigt, während Sie schlafen

Vier automatische Prozesse halten Ihren Shop auf dem neuesten Stand, ohne dass Sie etwas tun müssen. Sie müssen sie weder konfigurieren noch beobachten — sie sind hier dokumentiert, damit Sie wissen, warum sich Dinge von selbst reparieren:

⏰ alle 15 Min. Zeitplanungs- fenster 💳 03:00 Tarif-Aktualisierung 📦 04:00 Kollektions-Pools 🧹 04:30 Bereinigung und Selbstheilung
Die vier automatischen Prozesse (UTC). Keiner von ihnen muss konfiguriert werden.
ProzessWannWas es für Sie erledigt
Zeitfensteralle 15 Min.Aktiviert und deaktiviert geplante Bundles zur richtigen Zeit (in Ihrer Zeitzone) und hält den öffentlichen Katalog aktuell. Ein Bundle, das vom 1. bis zum 15. läuft, startet und endet von selbst.
Tarif-Aktualisierung03:00Bestätigt Ihren tatsächlichen Tarif bei Shopify (Upgrade, Kündigung, Ende der Testphase), damit Limits und Abzeichen immer der Wahrheit entsprechen.
Kollektions-Pools04:00Aktualisiert die sichtbare Liste der Bundles, die auf eine Kollektion zielen, mit den Produkten, die beigetreten oder ausgeschieden sind (der Preis für diese Produkte war von Anfang an korrekt — Abschnitt 4.3).
Bereinigung und Selbstheilung04:30Löscht abgelaufene Daten (vor 90 Tagen geschlossene Chats, technische Logs), entfernt Überbleibsel gelöschter Bundles und repariert den öffentlichen Vertrag: hat jemand versehentlich die Datenschemas verändert, die Entwickler nutzen, oder das Tarif-Abzeichen, stellt es sie wieder her und protokolliert, was passiert ist.

17Statistiken

Statistiken mit echten Bestellungen
Der Tab Statistiken mit echten Daten aus dem Demo-Shop (Zeitraum 7 / 30 / 90 Tage): die sieben Kennzahlen oben — hier eine einzelne echte Bestellung über $1,299.00, also eine Attach-Rate von 100% und 1 von 1 Bestellungen mit Bundle — und die drei Diagramme darunter.
KennzahlWas sie genau misst
Zugeordneter UmsatzDer Umsatz der Bestellpositionen, die einen Combora-Rabatt trugen (nicht die Bestellsumme).
% der Bestellungen mit BundleDer Anteil der Bestellungen im Zeitraum, die mindestens ein Bundle enthielten.
Bestellungen mit BundleDer buchstäbliche Bruch: Bestellungen mit Bundle / Bestellungen insgesamt.
Gewährte ErsparnisDer gesamte Rabatt, den Ihre Bundles der Kundschaft gewährt haben.
Durchschnittlicher BestellwertÜber alle Bestellungen im Zeitraum hinweg.
Bestellwert mit BundleDer Durchschnitt nur der Bestellungen mit Bundle — vergleichen Sie ihn mit dem vorherigen, um die Wirkung Ihrer Angebote zu sehen.
Bestellungen mit GeschenkBestellungen, die ein Gratisgeschenk enthielten (GWP oder Combo).

Verkaufen Sie in mehreren Währungen, sitzt neben den Kennzahlen eine Währungsauswahl: die Geldbeträge werden in der gewählten Währung angezeigt (die Bestellzähler sind global).

Unter den Kennzahlen gibt es drei Diagramme für den gewählten Zeitraum, jedes mit einer Markierung pro Tag und einem Tooltip:

  • Bestellungen mit Bundle im Zeitverlauf — Balken, mit dem Wert über den Balken mit Daten.
  • Zugeordneter Umsatz pro Tag — eine Linie, um den Trend zu sehen.
  • Gewährte Ersparnis pro Tag — Balken: wie viel Rabatt Ihre Bundles an jedem Tag gewährt haben.
Die Zuordnung wird zum Zeitpunkt der Bestellung erfasst: ein Bundle später zu löschen, löscht nicht seine Historie in den Statistiken.

18Einstellungen und Tarife

18.1 Einstellungen

  • Sprache der App: 7 Sprachen (Englisch, Spanisch, Französisch, Deutsch, Italienisch, Portugiesisch, Niederländisch). Sie betrifft den Admin; was Ihre Kundschaft sieht, folgt der Sprache Ihres Themes/Markts.
  • Widget-Design: Widget-Vorlage bearbeiten öffnet das shopweite Design-Studio — den Stil, den jedes Bundle erbt (Abschnitt 13). Das Speichern hier synchronisiert die veröffentlichten Bundles neu.
  • Rabatte synchronisieren: Sie müssen es nicht anklicken — alles synchronisiert sich beim Veröffentlichen von selbst. Es dient als Sicherheitsnetz: hörte ein Bundle jemals auf zu rabattieren, erzeugt dies den Shopify-Rabatt aus allen Ihren veröffentlichten Bundles neu. Es ist gefahrlos, so oft zu nutzen, wie Sie möchten, und gab es nichts zu reparieren, sagt es das: Alles war bereits aktuell.
  • Entwicklerzugang: die öffentlichen Daten, die Ihr Theme lesen kann (Anhang 22). Die Vertragsdokumentation ist bei jedem Tarif zugänglich.

18.2 Tarife

Flatrate-Preisgestaltung: wir nehmen nie einen Prozentsatz Ihrer Umsätze, und der Preis hängt nicht von Ihrem Shopify-Tarif ab — ein Basic-Shop und ein Plus-Shop zahlen dasselbe.

  • Gratis ($0/Monat): bis zu 3 veröffentlichte Bundles gleichzeitig (Entwürfe zählen nicht) mit allen 8 Typen inklusive. Versuchen Sie, das 4. zu veröffentlichen, blockiert die App das mit dem passenden Hinweis: setzen Sie ein anderes auf Entwurf oder führen Sie ein Upgrade durch. Im Gratis-Tarif zeigen die Blöcke ein dezentes Powered-by-Combora-Abzeichen.
  • Pro ($14.99/Monat): unbegrenzt viele veröffentlichte Bundles und kein Abzeichen.
  • Plus ($39.99/Monat): alles aus Pro, plus prioritärer Support, CSV-Massenimport/-export (bis zu 200 Bundles pro Datei) und direkte Integrationsunterstützung für Ihren Entwickler (Headless-Storefronts und individuelle Themes).

Die Abrechnung läuft über Shopify (Managed Pricing) — sie wird direkt auf der Tarife-Seite verwaltet und gekündigt. Die bezahlten Tarife enthalten eine kostenlose 7-Tage-Testphase, und bei einer Kündigung behalten Sie den Tarif bis zum Ende des bereits bezahlten Zyklus. Gründungs-Shops (die ersten 100 Installationen) behalten das volle Produkt für immer kostenlos.

19Diagnose und Support

Diagnose (der zweite Tab von Hilfe) ist Ihre erste Anlaufstelle, wenn etwas nicht zusammenpasst — und das, wonach der Support fragen wird, wenn Sie ein Ticket eröffnen. Combora zeichnet pro Shop automatisch alles auf, was im Hintergrund fehlschlägt (auf dem Server und in Ihrem Onlineshop), selbst wenn die Kundschaft es nie sieht, und dieses Panel macht es zugänglich. Es speichert überhaupt keine Kundendaten.

Diagnose-Tab mit Zustandsprüfungen, Protokoll und Bericht
Der Tab Diagnose: Zustandsprüfungen oben, das Ereignisprotokoll mit Filtern in der Mitte und der Support-Bericht unten.

19.1 Zustandsprüfungen

Der Live-Zustand dessen, wonach der Support zuerst fragt, bei jedem Laden gegen Shopify überprüft:

PrüfungWas sie überprüft
BundlesSynchronisierungsfehler und veröffentlichte Bundles mit unveröffentlichten Änderungen (Sie haben bearbeitet und nicht auf Bundle aktualisieren geklickt).
Automatischer Rabatt in ShopifyDass der Combora-Rabatt existiert und AKTIV ist — er ist es, der die Preise beim Checkout berechnet.
Veröffentlichter Shop-IndexDass die öffentlichen Daten, die Ihre Theme-Blöcke lesen, aktuell sind (live Bundles im Vergleich zu erwartet).
App-Embed Combora GiftDass die Geschenk-Engine in Ihrem Theme aktiviert ist.
Rabatt bei aktuellen Bestellungen angewendetBestellungen der letzten 7 Tage mit Bundle: kamen ALLE ohne Rabatt an, stimmt etwas beim Checkout nicht.
Fehlerkanal des ShopsDass Ihre Shop-Blöcke Fehler hierher melden können (Datum des letzten empfangenen Ereignisses).
HintergrundjobsFehlgeschlagene nächtliche Jobs.
Unbekannt ist kein Alarm: es bedeutet, dass diese Prüfung gerade nicht überprüft werden konnte (zum Beispiel der Shop-Kanal, bevor er sein erstes Ereignis empfängt). Ein echtes Problem wird rot markiert.

19.2 Ereignisprotokoll

Jeder Eintrag ist etwas, das passiert ist und aufgezeichnet wurde: ein Fehler beim Veröffentlichen, ein Geschenk, das Shopify nicht hinzufügen wollte (mit dem genauen Grund), ein Rabatt, der mit einem anderen kollidierte, ein fehlgeschlagener Webhook… Filtern Sie nach Stufe (Info = erwartet, aber relevant, etwa das Tarif-Limit; Warnung; Fehler) und nach Bereich (Veröffentlichung, Rabatte, Tarif und Abrechnung, Shop, Synchronisierung…). Ein leeres Protokoll ist ein gutes Zeichen: es füllt sich nur, wenn etwas schiefgeht. Ereignisse werden 30 Tage lang aufbewahrt.

Datenschutz — was protokolliert wird und was nicht. Das Protokoll speichert nur technische Fehlercodes: den HTTP-Status, das betroffene Bundle und die Variante sowie den von Shopify zurückgegebenen Grund. Die Daten Ihrer Kundschaft werden nie protokolliert: keine IP-Adressen, keine Namen, keine E-Mails, keine Browsing-Kennungen oder Cookies — eine Kundschaft, die ohne Probleme kauft, erzeugt überhaupt keinen Protokolleintrag. Es gibt außerdem automatische Obergrenzen (ein tägliches Maximum pro Shop), und alles löscht sich nach 30 Tagen von selbst. Erhält Ihr Shop eine Löschanfrage (DSGVO), enthält dieses Protokoll nichts zu löschen, und das Deinstallieren der App löscht es vollständig zusammen mit dem Rest Ihrer Daten.

19.3 Der Support-Bericht

Ein einziges Dokument mit allem, was nötig ist, um Ihren Shop in einem Durchgang zu diagnostizieren: die Zustandsprüfungen, Ihr Tarif und Ihre Konfiguration (ohne sensible Daten), der Veröffentlichungsstatus jedes Bundles und die neuesten Ereignisse. Wenn Sie den Support kontaktieren, klicken Sie auf Bericht kopieren (oder Als Datei herunterladen) und hängen Sie ihn an das Ticket an — damit sieht, wer Ihnen hilft, genau, was passiert ist, ohne nach Screenshots oder Zugang zu fragen.

  • Der Bericht enthält keine Kundendaten und keine Schlüssel: nur Zustand, Bundle-Konfiguration und technische Ereignisse.
  • Funktioniert die Kopieren-Schaltfläche in Ihrem Browser nicht, bleibt der Text markiert — drücken Sie Strg+C (Cmd+C auf einem Mac) — oder nutzen Sie den Download.
Für Entwickler: die Shop-Blöcke melden ihre Fehler an /apps/combora/log (einen von Shopify signierten App-Proxy). Es ist ein interner Support-Kanal mit einem geschlossenen Katalog an Codes und einer täglichen Obergrenze — er ist nicht Teil des öffentlichen Vertrags in Anhang 22.

20Grenzen und wichtige Regeln

Die einzige Referenz für Grenzen, gegen den Code der App überprüft:

Grenze / RegelWertWas passiert, wenn Sie sie erreichen
Veröffentlichte Bundles (Gratis-Tarif)3Das Veröffentlichen des 4. wird mit einem Hinweis blockiert. Entwürfe zählen nicht.
Bestandteile in einem festen Bundle30Der Editor lässt Sie nicht mehr hinzufügen.
Produkte in einem Combo (abgeflacht)50 EinträgeDer Editor zeigt die Nutzung (Verwendet X von 50) und blockiert den Überschuss.
Kollektionen pro Auswahldialog100Wird beim Speichern validiert.
Geschenkkombination (GWP)2–5 ArtikelWird beim Speichern validiert.
Titel als Rabatt-Nachricht100 ZeichenDer beim Checkout angezeigte Text wird gekürzt (der vollständige Titel bleibt erhalten).
Aus einer Kollektion generieren100 EntwürfeWird gekürzt, und Sie werden informiert.
CSV-Import200 ZeilenWird gekürzt, und Sie werden aufgefordert, die Datei aufzuteilen.
Sichtbare Angebote pro Block1–8 (Standard 3)Pro Theme-Block einstellbar; priorisiert die Angebote, die einen Preis/eine Ersparnis angeben.
Veröffentlichte Gesamtkonfiguration≈19.8 KB (2 Blöcke zu je 9.9 KB)Bei sehr vielen riesigen Bundles gleichzeitig würden die neuesten ohne aktiven Preis veröffentlicht bleiben, bis Platz frei wird (ein Extremfall; die App priorisiert die ältesten Bundles und teilt die Konfiguration automatisch auf zwei Blöcke auf).

Geldregeln (immer exakt)

  • Prozentsätze runden den Rabatt immer ab (nie zugunsten eines höheren Preises aufgerundet).
  • Beträge und Festpreise werden mit exaktem Restbetrag auf die Positionen aufgeteilt: die Summe der Teile ergibt immer den Gesamtbetrag.
  • Dezimalstellen hängen von der Währung Ihres Shops ab (JPY ohne, BHD mit drei…) — es werden nie automatisch zwei Dezimalstellen angenommen.
  • Der berechnete Preis wird von Shopify beim Checkout aus der veröffentlichten Konfiguration berechnet. Was die Theme-Blöcke zeigen, ist rein informativ.

Mehrere Währungen (Shopify Markets)

Verkaufen Sie in mehreren Währungen, gibt es nichts für Sie zu konfigurieren: Sie legen Preise, Schwellenwerte und Rabatte in der Währung Ihres Shops fest, und Combora erledigt den Rest. Kauft jemand in einer anderen Währung, sieht diese Person die Widget-Beträge in ihre Währung umgerechnet (die Geschenkschwelle, den Bundle-Preis, die Ersparnis jeder Stufe), und beim Checkout wird der Rabatt zum aktuellen Wechselkurs von Shopify umgerechnet — demselben, der Ihre Produktpreise umrechnet. Die goldene Regel gilt weiterhin: was der Kundschaft beworben angezeigt wird, ist genau das, was der Checkout ihr berechnet, in ihrer Währung.

Weitere Regeln

  • Abonnements werden bei Bundle-Positionen blockiert, sofern Sie nicht ausdrücklich zustimmen (Abschnitt 4.5).
  • Ein GWP-Geschenk wird auf der eigenen Seite des Geschenkprodukts nicht beworben (ein Preis ist kein Köder).
  • Außerhalb ihres Zeitfensters veröffentlichte Bundles wenden keinen Rabatt an (sie reaktivieren sich selbst).

21Problembehebung

Ich sehe das Angebot in meinem Shop nicht
① Ist das Bundle Veröffentlicht (kein Entwurf) und innerhalb seines Zeitfensters? ② Haben Sie den richtigen Block zur Vorlage hinzugefügt (die Karte Wo das erscheint im Editor)? ③ Haben Sie bei einem bearbeiteten, veröffentlichten Bundle auf Bundle aktualisieren geklickt?
Das Geschenk fügt sich nicht hinzu
① Ist das App-Embed Combora Gift aktiviert? ② Erfüllt der Warenkorb die Bedingung, wobei nur das Berechtigte zählt (das Geschenk selbst zählt nicht)? ③ Hat die Kundschaft es in dieser Sitzung von Hand entfernt? ④ Ist das Geschenk vorrätig?
Der Rabatt im Warenkorb entspricht nicht meinen Erwartungen
Denken Sie an die Regel: nur das beste Angebot pro Position. Konkurrieren zwei Bundles um denselben Artikel, gewinnt das mit dem größeren Rabatt (und bei Gleichstand das ältere). Ein Aufaddieren geschieht nur innerhalb eines Combos.
Die App meldet: Sie haben einen weiteren automatischen Rabatt aktiv
Das ist eine Information, kein Fehler. Es bedeutet, dass Sie eigene automatische Produktrabatte in Shopify haben. Treffen ein Combora-Bundle und einer dieser Rabatte auf dasselbe Produkt, wendet Shopify nur den besseren der beiden an — zwei Produktrabatte auf denselben Artikel zu stapeln erfordert Shopify Plus. Das ist eine Shopify-Regel, keine von Combora. Ihre Bundles kombinieren sich sehr wohl mit Ihren Bestell- und Versandrabatten sowie mit Produktrabatten, die auf andere Produkte treffen. Der Hinweis nennt den konkreten überschneidenden Rabatt, damit Sie wissen, welchen Sie sich ansehen sollten.
Ich habe veröffentlicht, und es erscheint das Tarif-Limit
Der Gratis-Tarif erlaubt 3 veröffentlichte Bundles gleichzeitig. Setzen Sie ein anderes auf Entwurf oder führen Sie ein Upgrade durch.
Die Geschenk-Fortschrittsleiste erscheint nicht
Sie wird in der Warenkorb-Vorlage gerendert (der Block Combora gift progress) und nur für Angebote, deren Kriterium im Browser ausgewertet werden kann. Mit Kollektionen als das, was zählt, funktioniert es ebenfalls, da die App die Produkte der Kollektion beim Veröffentlichen auflöst; die einzige Ausnahme ist eine sehr große Kollektion (mehr als ~150 Produkte), bei der die Leiste nicht angezeigt wird, obwohl das Geschenk trotzdem funktioniert.
Der Kontrollkästchen-Auswahldialog erscheint nicht bei Mix / Box
Der Auswahldialog wird bei jedem Geltungsbereich gerendert: bei bestimmten Varianten zeigt er genau diese Kontrollkästchen, und bei Produkten oder einer Kollektion wird die Liste beim Veröffentlichen aufgelöst (und jede Nacht aktualisiert, oder sofort bei erneuter Veröffentlichung). Ist er weiterhin leer, hat die berechtigte Gruppe keine kaufbaren Produkte — prüfen Sie den Vorschauhinweis im Editor. So oder so kann die Kundschaft Produkte wie gewohnt hinzufügen, und der Rabatt greift bei Qualifikation.
Fehler beim Importieren einer CSV-Datei
Jede fehlgeschlagene Zeile wird mit ihrem Grund aufgelistet. Korrigieren Sie diese Zeilen und führen Sie den Import nur mit ihnen erneut aus — die guten Zeilen wurden bereits erstellt.
Ich vermute, ein Rabatt ist verwaist
Einstellungen → Rabatte synchronisieren repariert den Zustand. Bearbeiten Sie den Combora-Rabatt nie von Hand im Rabatte-Bereich von Shopify.

22Entwickler-Anhang: der öffentliche Vertrag

Combora veröffentlicht Ihre Bundle-Daten in Ihrem Shop als Metaobjekte und Metafelder unter dem Namespace combora, öffentlich lesbar aus dem Shop. Jeder Entwickler kann eine völlig individuelle Oberfläche bauen, indem er diese Daten aus Liquid oder der Storefront API liest — ohne eine der APIs der App aufzurufen. Dieser Vertrag ist versioniert und ausschließlich additiv (aktuelle Version: public.v1): bestehende Felder werden nie umbenannt oder umtypisiert.

22.1 Was bei der Installation angelegt wird

Die Installation legt die Definitionen (die Schemas) an — sichtbar unter Einstellungen → Metafelder und Metaobjekte und unter Inhalte → Metaobjekte:

  • Metaobjekte: combora_bundle (das Bundle), combora_component (jede Bestandteil-Zeile) und combora_tier (jede Mengen-/Schwellenstufe). Alle drei mit PUBLIC_READ-Shop-Zugriff, veröffentlichbar und übersetzbar.
  • Shop-Metafelder: combora.index und combora.manifest (JSON, öffentlich lesbar), sowie combora.all_pdp_gwps (list.metaobject_reference → combora_bundle): die shopweiten Geschenke, die sich dafür entschieden haben, auf jeder Produktseite beworben zu werden.
  • Produkt-Metafeld: combora.bundles (list.metaobject_reference → combora_bundle) — der umgekehrte Index Produkt → seine Bundles.
⚠️ Eine Liquid-Einschränkung bei Referenzen auf Shop-Ebene: eine Shop- list.metaobject_reference (wie all_pdp_gwps) löst sich in Theme-Liquid nicht zu Metaobjekten auf (die des Produkts schon; Shop-JSON ebenfalls). Um diese Geschenke in Liquid zu rendern, lesen Sie die index-Einträge mit "all_pdp": true und lösen Sie jedes Bundle über seinen Handle auf: metaobjects['combora_bundle'][entry.handle]. Über die Storefront-GraphQL-API löst sich die Referenz normal auf.
Inhalte → Metaobjekte mit den drei Combora-Definitionen
Inhalte → Metaobjekte: die drei Definitionen, Hinzugefügt von Combora, mit ihren Einträgen.
Definition des Produkt-Metafelds Combora bundles
Das Produkt-Metafeld Combora bundles (Typ Metaobjekt), im Einsatz bei den Produkten, die an Bundles teilnehmen.
Shop-Metafeld-Definitionen index und manifest
Die Shop-Metafelder Combora bundle index und Combora contract manifest (JSON); seit August 2026 gesellt sich Combora store-wide gift offers (all_pdp_gwps) dazu.

22.2 Was beim Veröffentlichen / Aktualisieren / Zurückziehen passiert

EreignisAuswirkung auf den Vertrag
Ein Bundle veröffentlichenSeine Metaobjekte werden erstellt/aktualisiert (zuerst die Kinder, danach das übergeordnete, mit deterministischen Handles), combora.index und combora.manifest werden neu generiert, das Metafeld combora.bundles jedes beteiligten Produkts wird geschrieben, und die Übersetzungen der übersetzbaren Felder werden angelegt (die in Ihrem Shop aktivierten Sprachen aus den 7, die die App mitbringt; eine von Ihnen in Translate & Adapt angepasste Übersetzung wird nie überschrieben). Der Index kündigt nie ein Bundle an, dessen Schreibvorgang fehlgeschlagen ist.
Bundle aktualisierenEine vollständige, idempotente Neuprojektion: sie schreibt die Projektion des Bundles aus der Konfiguration neu (weshalb sie auch als Reparatur funktioniert). Die Referenzliste des übergeordneten Objekts wird im selben Schritt neu geschrieben — der Shop sieht nie eine verwaiste Referenz — und zurückgebliebene Kind-Metaobjekte werden vom nächtlichen Durchlauf entfernt.
Auf Entwurf setzenDas Metaobjekt wechselt in den Entwurfsstatus (es löst sich im Shop nicht mehr auf), das Bundle verlässt den Index, und sein Preis wird deaktiviert. Die Konfiguration bleibt erhalten.
LöschenSeine Metaobjekte werden gelöscht, combora.bundles wird bei seinen Produkten bereinigt, und falls es ein festes Bundle war, wird das übergeordnete Produkt zurückgezogen.
Die App deinstallierenDie combora-Metaobjekte und -Metafelder gehören dem Shop und bleiben erhalten (Ihr Theme bricht nicht; die Daten sind in ihrem letzten Zustand eingefroren). Die privaten $app:*-Metafelder werden von Shopify automatisch entfernt, und der Combora-Rabatt wird inaktiv. Bei einer Neuinstallation nutzt die App alles weiter und gleicht es ab — nichts wird dupliziert.

22.3 combora_bundle Feld für Feld

FeldTypÜbersetzbarInhalt
titletextjaTitel im Shop (erforderlich).
descriptionrich textja⚠️ Die Definition existiert, aber die App schreibt dieses Feld noch nicht: heute kommt es immer leer an — rendern Sie tolerant gegenüber blank.
badge_labeltextjaDas Abzeichen (Bestes Angebot).
testbooleanneinTestmodus. "true" ⇒ die Widgets rendern dieses Bundle nur im Theme-Editor und in Themes, deren Rolle nicht die veröffentlichte ist. Fehlt es oder ist es "false" ⇒ live.
stylejsonneinVorkompilierter Widget-Stil (Design-Studio): {"v":1,"source":"app","vars":"--combora-…","mode_class":"combora-w--styled","model":{…}}. Kopieren Sie vars in das style-Attribut Ihres Wurzelelements und mode_class als Klasse. Bei "source":"block" (oder fehlendem Feld) gewinnen die Block-Einstellungen im Theme-Editor.
cta_labeltextjaSchaltflächentext (optional).
disclaimerrich textja⚠️ Wie description: definiert, aber weiterhin ohne Inhalt — tolerieren Sie blank.
bundle_typetext (Auswahl)neinEiner von: fixed · mix_and_match · volume · bogo · gwp · build_a_box · fbt · combo.
min_items / max_itemsintegerneinMix & Match (min/max) und Box zusammenstellen (Größe in min_items).
thresholdintegerneinDie GWP-Schwelle in der kleinsten Währungseinheit (Cent), immer in der Währung des Shops — siehe die Mehrwährungsregel in 22.9.
discount_valuejsonnein{"kind":"percentage","bps":1500} (Basispunkte: 1500 = 15%) oder {"kind":"fixed_amount","amount":500} (kleinste Währungseinheit).
configjsonneinSkalare pro Typ: price (fest im Preismodus), buy_qty/get_qty (bogo), gift_variant/threshold/min_qty/combination/qualify (gwp — die vollständige Bedingung lebt hier: Bestellwert in kleinster Währungseinheit, Mindesteinheiten, beides oder eine Kombination), slots/box_price (box), anchor_variant (fbt), eligible (der Pool-Deskriptor), of (combo).
componentsListe von Referenzen—→ combora_component (Variante, Menge, Rolle: component/option/anchor/gift/suggestion, Position, Label…).
tiersListe von Referenzen—→ combora_tier (min_qty, discount_value, position, tier_label…).
productProduktreferenzneinAnkerprodukt (das übergeordnete eines festen Bundles, das Hauptprodukt eines FBT).
imageDateireferenzneinOptionales Bundle-Medium.
revision / contract_versioninteger / textneinVeröffentlichte Revision und Vertragsversion (public.v1).
combora_bundle-Eintrag im Admin
Ein echter combora_bundle-Eintrag unter Inhalte → Metaobjekte: Titel, Status Aktiv, deterministischer Handle combora-bundle-{id}.
Felder discount_value, components, anchor, Vertragsversion
Derselbe Eintrag: discount_value als JSON in Basispunkten, die Bestandteil-Referenzen, das Ankerprodukt und contract_version = public.v1.
Bearbeiten Sie diese Einträge nicht von Hand. Sie sind eine Projektion der Konfiguration der App. Die nächtliche Synchronisierung repariert die Definitionen (die Schemas) und setzt das Tarif-Abzeichen erneut durch; der Inhalt eines von Hand bearbeiteten Eintrags wird bei der nächsten Veröffentlichung/Aktualisierung dieses Bundles wiederhergestellt — bis dahin bleibt, was Sie von Hand geschrieben haben, unverändert (und stimmt möglicherweise nicht mit dem überein, was die App berechnet).

22.4 Der Deskriptor eligible

Der berechtigte Pool des Bundles, mit derselben Form bei jedem Typ:

{ "mode": "all" | "products" | "collections" | "variants",
  "variants":   ["gid://shopify/ProductVariant/…"],
  "products":   ["gid://shopify/Product/…"],
  "collections":["gid://shopify/Collection/…"],
  "resolved_count": 12, "total_count": 12, "truncated": false }

Nur die nicht leeren Listen sind enthalten. Die drei Auflösungsschlüssel sind informativ (bei Kollektions-Pools geben sie an, wie viele Mitglieder materialisiert wurden und ob der Snapshot gekürzt wurde) — Sie können sie ignorieren. Beachten Sie die Konvention: das config des Metaobjekts verwendet snake_case (gift_variant, min_qty), während das gwp-Objekt im index camelCase verwendet (giftVariant, minQty) — dieselben Daten auf zwei unterschiedlichen Oberflächen.

Vorsicht: die role:"option"-Kinder eines Kollektions-Pools sind ein zum Veröffentlichungszeitpunkt erstellter Snapshot; die aktuelle Zugehörigkeit (und der Preis) wird immer von der Function beim Checkout aufgelöst.

22.5 combora.index und combora.manifest

shop.metafields.combora.index — die Routing-Tabelle der veröffentlichten Bundles (sie existiert, damit Sie nie über metaobjects.combora_bundle.values iterieren müssen, was Liquid stillschweigend auf 50 kürzt):

{ "schema": 1, "revision_highwater": 128, "generated_at": "…",
  "bundles": [
    { "id": "f3062319-9d6e-…", "handle": "combora-bundle-f3062319-9d6e-…", "type": "fixed",
      "gid": "gid://shopify/Metaobject/…", "status": "active", "revision": 42 }
  ] }

Die id ist ein Text-Bezeichner, keine Zahl. Nur Bundles, die veröffentlicht und innerhalb ihres Zeitfensters sind, werden angekündigt, sodass der Index im Gleichschritt mit dem Checkout-Preis läuft. Manche Einträge tragen zusätzliche Felder: gwp (das Geschenkangebot, nur bei Geschenk-Typ-Bundles), gwps (die Geschenkangebote eines Combos, in der Reihenfolge der Teilangebote) und test (true, wenn das Bundle im Testmodus ist: das Shop-JS überspringt es im veröffentlichten Theme).

shop.metafields.combora.manifest — der Vertragsdeskriptor, den ein Tool einmalig liest: contract_version, schema_version, der Bundle-Zähler und die GIDs der drei Definitionen. Er kann powered_by_badge: true tragen, was das Powered-by-Combora-Abzeichen in den Blöcken aufleuchten lässt (nur bei Shops im Gratis-Tarif; sonst wird das Feld weggelassen).

22.6 Aus Liquid lesen

{%- comment -%} Auf einer Produktseite: die Bundles für DIESES Produkt {%- endcomment -%}
{%- for bundle in product.metafields.combora.bundles.value -%}
  <h3>{{ bundle.title.value | escape }}</h3>
  {%- if bundle.badge_label.value != blank -%}
    <span class="badge">{{ bundle.badge_label.value | escape }}</span>
  {%- endif -%}
  <ul>
    {%- for component in bundle.components.value -%}
      {%- comment -%} label ist optional: fehlt es, greift der Rückfall auf den Variantentitel und
          dann auf den Produkttitel. VORSICHT: ist das Produkt NICHT für den Kanal Online Store
          veröffentlicht, löst sich seine Referenz in Liquid nicht auf, und ALLE Rückfälle liefern
          blank — sichern Sie den finalen Namen ab, sonst rendern Sie ein leeres "1× ". {%- endcomment -%}
      {%- assign name = component.label.value -%}
      {%- if name == blank -%}{%- assign name = component.variant.value.title -%}{%- endif -%}
      {%- if name == blank or name == 'Default Title' -%}{%- assign name = component.variant.value.product.title -%}{%- endif -%}
      {%- if name != blank -%}
        <li>{{ component.quantity.value }}× {{ name | escape }}</li>
      {%- endif -%}
    {%- endfor -%}
  </ul>
{%- endfor -%}

{%- comment -%} Oder über den direkten Handle, in jeder Vorlage {%- endcomment -%}
{%- assign bundle = metaobjects.combora_bundle['combora-bundle-{id}'] -%}

Beide Wege sind begrenzte Lesevorgänge (die eigene Liste des Produkts oder ein direkter Handle) — nie das globale .values. Zwei Liquid-Fallstricke, die Ihnen einen Nachmittag sparen: (1) ein for über eine Liste von Referenzen kürzt stillschweigend bei 50 — Combora-Bundles kommen dort nie hin (die größte Obergrenze sind 50 Einträge insgesamt), aber iterieren Sie nicht über fremde Kollektionen in der Annahme, alles zu sehen; (2) die optionalen Felder (label, badge_label, cta_label) kommen oft leer an — sichern Sie sie wie oben mit != blank ab.

22.7 Aus der Storefront API lesen (lokalisiert)

query BundleByHandle @inContext(language: FR) {
  metaobject(handle: { type: "combora_bundle", handle: "combora-bundle-{id}" }) {
    title:       field(key: "title")       { value }
    badge_label: field(key: "badge_label") { value }
    components:  field(key: "components") {
      references(first: 25) {
        nodes { ... on Metaobject {
          label:    field(key: "label")    { value }
          quantity: field(key: "quantity") { value }
        } }
      }
    }
  }
}

@inContext liefert die von der App angelegten Übersetzungen; alles Unübersetzte fällt automatisch auf die Basissprache zurück.

22.8 Was Sie damit bauen können

  • Eine völlig individuelle Bundle-Oberfläche im Theme, ohne die Blöcke von Combora, die Titel, Abzeichen, Bestandteile und Ersparnis aus dem Metaobjekt liest.
  • Eine Kampagnen-Landingpage: eine Seite, die die aktiven Bundles aus combora.index auflistet und jedes über seinen Handle rendert.
  • Headless / Hydrogen: derselbe Lesevorgang über die Storefront API mit Lokalisierung pro Markt.
  • Integrationen (Feeds, Empfehlungs-Apps): das manifest deklariert die Vertragsversion und wo sich alles befindet.

22.9 Regeln für den Entwickler

  • Der Preis gehört der Function. Die Metaobjekt-Felder dienen der Anzeige: addieren Sie nicht die discount_value eines Combos oder berechnen Sie Preise im Theme neu — der Checkout ist die Autorität.
  • Ausschließlich additiv: neue Felder können erscheinen; bestehende ändern sich nicht. Schreiben Sie Lesevorgänge, die unbekannte Felder tolerieren.
  • Combos: gruppieren Sie die Kinder nach position geteilt durch 1000 (jedes Teilangebot belegt ein Band von 1000) oder nach config.of[].index — nie nach role, das sich wiederholen kann.
  • Stil: bauen Sie Ihre eigene Oberfläche, ignorieren Sie style und schreiben Sie Ihr eigenes CSS. Möchten Sie stattdessen das Design respektieren, das im Shop in der App gewählt wurde, kopieren Sie style.vars in das style-Attribut Ihres Wurzelelements und style.mode_class als Klasse; das Preset Ungestylt des Studios existiert genau für den umgekehrten Fall (sauberes Markup, Ihr CSS, mit .combora-w und den Variablen --combora-* als Ansatzpunkte).
  • Privat ≠ Vertrag: die Metafelder $app:runtime, $app:fnvars und $app:validation des Rabatts sind intern für die Functions, haben keinen Shop-Zugriff, und ihre Form kann sich ohne Ankündigung ändern. Bauen Sie nicht darauf auf.
  • Mehrere Währungen (Shopify Markets): jeder Betrag im Vertrag — config.price, threshold, fixed_amount.amount, box_price — steht immer in der Währung des Shops, in der kleinsten Währungseinheit. Verkauft Ihr Shop in mehreren Währungen, rechnen Sie bei der Anzeige um (in Liquid mit cart.currency.rate multiplizieren; in JS mit Shopify.currency.rate), bevor Sie formatieren; die Rohzahl mit der Präsentationswährung der Käuferin/des Käufers zu rendern zeigt einen falschen Preis. Der echte Checkout-Rabatt wird von der App berechnet und ist immer korrekt — diese Regel betrifft nur das, was IHR Widget anzeigt.
  • Schreiben Sie nicht in den Namespace combora. Shopify gewährt Ihnen Schreibzugriff darauf (es ist Ihr Shop), aber die App generiert ihn bei jeder Veröffentlichung neu, und eine nächtliche Prüfung stellt die Felder wieder her, die den Tarif steuern. Alles, was Ihnen gehört, kommt in Ihren eigenen Namespace.
  • Dieser Anhang ist die vollständige Vertragsreferenz für externe Entwickler. Fehlt etwas, das Sie brauchen, schreiben Sie uns über den Chat der App oder an den Support, und wir dokumentieren es.

23Entwickler-Anhang: ein Widget pro Typ, in Liquid

Der vorige Anhang beschreibt, was der Vertrag enthält; dieser zeigt, wie man jeden Bundle-Typ damit rendert. Der gesamte Code unten liest ausschließlich den öffentlichen Vertrag — keine App-API, keinen der eigenen Blöcke von Combora —, Sie können ihn also in ein Snippet oder einen Custom Liquid-Block auf der Produktvorlage einfügen und das Markup frei anpassen. Drei Regeln gelten für alles auf dieser Seite:

  • Der Preis gehört der Function. Alles hier ist Anzeige; der tatsächlich berechnete Betrag wird von Comboras Shopify Function beim Checkout ermittelt. Berechnen Sie nie eine Summe neu und präsentieren Sie sie als den Preis.
  • Beträge sind kleinste Währungseinheiten in der Währung des Shops. Multiplizieren Sie vor dem Formatieren mit cart.currency.rate, sonst sieht eine Käuferin, die in einer anderen Währung stöbert, eine falsche Zahl.
  • Optionale Felder kommen oft leer an. Sichern Sie mit != blank ab — auch den Bestandteilnamen nach seinen Rückfällen (siehe 22.6).

23.1 Das Grundgerüst, in das jedes Beispiel eingehängt wird

Eine Karte pro Bundle des aktuellen Produkts, mit Titel, Abzeichen und der Ersparnis, wie auch immer das Bundle sie ausdrückt (discount_value in Basispunkten oder kleinsten Währungseinheiten). Jeder Typ rendert dann seinen eigenen Inhalt innerhalb des case:

{%- liquid
  assign bundles = product.metafields.combora.bundles.value
  assign rate = cart.currency.rate | default: 1
-%}

{%- if bundles != blank -%}
  {%- for bundle in bundles -%}
    {%- liquid
      assign type = bundle.bundle_type.value
      assign dv = bundle.discount_value.value
      assign cfg = bundle.config.value
    -%}
    <article class="cx__card">
      <h3>{{ bundle.title.value | escape }}</h3>
      {%- if bundle.badge_label.value != blank -%}
        <span class="cx__badge">{{ bundle.badge_label.value | escape }}</span>
      {%- endif -%}

      {%- comment -%} Die Ersparnis, wie auch immer dieses Bundle sie ausdrückt {%- endcomment -%}
      {%- if dv.kind == 'percentage' -%}
        <p>Sparen Sie {{ dv.bps | divided_by: 100 }}%</p>
      {%- elsif dv.kind == 'fixed_amount' -%}
        <p>Sparen Sie {{ dv.amount | times: rate | money }}</p>
      {%- endif -%}

      {%- case type -%}
        {%- comment -%} ein Block pro Typ — hier kommen die Abschnitte 23.2 bis 23.7 hin {%- endcomment -%}
      {%- endcase -%}
    </article>
  {%- endfor -%}
{%- endif -%}

23.2 Festes Bundle

Listen Sie die Kinder mit role == 'component' mit der Namens-Rückfallkette auf, zeigen Sie den Bundle-Preis, wenn das Bundle den Preismodus verwendet (config.price, kleinste Währungseinheit), und verlinken Sie auf das kaufbare übergeordnete Produkt:

{%- when 'fixed' -%}
  <ul>
    {%- for c in bundle.components.value -%}
      {%- if c.role.value == 'component' -%}
        {%- liquid
          assign name = c.label.value
          if name == blank
            assign name = c.variant.value.title
          endif
          if name == blank or name == 'Default Title'
            assign name = c.variant.value.product.title
          endif
        -%}
        {%- if name != blank -%}
          <li>{{ c.quantity.value }}× {{ name | escape }}</li>
        {%- endif -%}
      {%- endif -%}
    {%- endfor -%}
  </ul>
  {%- if cfg.price -%}
    <p class="cx__price">{{ cfg.price | times: rate | money }}</p>
  {%- endif -%}
  {%- if bundle.product.value != blank -%}
    <a href="{{ bundle.product.value.url }}">Dieses Bundle kaufen</a>
  {%- endif -%}

Ein festes Bundle im Preismodus trägt config.price und kein discount_value; im Rabattmodus ist es umgekehrt — die Ersparnis-Zeile des Grundgerüsts deckt den zweiten Fall bereits ab.

Bei einem Produkt mit nur einer Variante ist der Variantentitel Shopifys Platzhalter «Default Title» — die Rückfallkette überspringt ihn und verwendet den Produkttitel (dafür ist die zusätzliche Bedingung da).

23.3 Mengenrabatt

Die Staffel lebt in tiers (geordnet nach position), jede Stufe mit eigenem min_qty und discount_value:

{%- when 'volume' -%}
  <table>
    {%- for t in bundle.tiers.value -%}
      {%- assign tv = t.discount_value.value -%}
      <tr>
        <td>Kaufen Sie {{ t.min_qty.value }}+</td>
        <td>
          {%- if tv.kind == 'percentage' -%}
            {{ tv.bps | divided_by: 100 }}% Rabatt
          {%- else -%}
            {{ tv.amount | times: rate | money }} Rabatt
          {%- endif -%}
        </td>
      </tr>
    {%- endfor -%}
  </table>

23.4 Kaufe X, erhalte Y

Die Regel sind zwei Skalare in config; ein Prozentsatz von 100% (bps == 10000) bedeutet, dass die Prämienartikel gratis sind:

{%- when 'bogo' -%}
  <p>Kaufen Sie {{ cfg.buy_qty }}, erhalten Sie {{ cfg.get_qty }}
    {%- if dv.kind == 'percentage' and dv.bps == 10000 %} gratis{% else %} rabattiert{% endif -%}.</p>

23.5 Mix & Match und Box zusammenstellen

Beide sind „erreiche eine Menge“-Angebote: Mix liest das min_items des Metaobjekts, die Box liest config.slots (und config.box_price, wenn die Box einen geschlossenen Preis berechnet). Der berechtigte Pool steht in config.eligible (siehe 22.4):

{%- when 'mix_and_match' -%}
  <p>Wählen Sie {{ bundle.min_items.value }} oder mehr aus der Auswahl.</p>
{%- when 'build_a_box' -%}
  <p>Füllen Sie eine Box mit {{ cfg.slots }} Artikeln.
    {%- if cfg.box_price %} Box-Preis {{ cfg.box_price | times: rate | money }}.{% endif -%}</p>

23.6 Ergänzungen (FBT)

Die Bestandteile tragen Rollen: der anchor ist das Hauptprodukt, die suggestion-Kinder sind die Zusatzartikel:

{%- when 'fbt' -%}
  <ul>
    {%- for c in bundle.components.value -%}
      {%- if c.role.value == 'suggestion' or c.role.value == 'anchor' -%}
        <li>
          {{ c.variant.value.product.title | default: c.label.value | escape }}
          {%- if c.role.value == 'anchor' %} <em>(dieser Artikel)</em>{% endif -%}
        </li>
      {%- endif -%}
    {%- endfor -%}
  </ul>

23.7 Combo

Ein Combo verschachtelt Teilangebote. Gruppieren Sie seine Kinder nach position geteilt durch 1000 (jedes Teilangebot belegt ein Band von 1000) oder gehen Sie config.of[] durch — gruppieren Sie nie nach role, das sich über die Teilangebote hinweg wiederholt:

{%- when 'combo' -%}
  <ol>
    {%- for sub in cfg.of -%}
      <li>{{ sub.type | replace: '_', ' ' }}</li>
    {%- endfor -%}
  </ol>

23.8 Shopweite Geschenkangebote, auf jeder Seite

Geschenke, die auf jeder Produktseite beworben werden, leben auf einem Shop-Metafeld, und Theme-Liquid löst eine Metaobjekt-Liste auf Shop-Ebene nicht auf (22.1). Lesen Sie stattdessen das JSON index und lösen Sie jedes Bundle über seinen Handle auf:

{%- assign index = shop.metafields.combora.index.value -%}
{%- if index != blank -%}
  {%- for entry in index.bundles -%}
    {%- if entry.all_pdp and entry.status == 'active' -%}
      {%- assign gift = metaobjects['combora_bundle'][entry.handle] -%}
      {%- if gift != blank -%}
        <aside class="cx__gift">
          <strong>{{ gift.title.value | escape }}</strong>
          {%- assign gcfg = gift.config.value -%}
          {%- if gcfg.threshold -%}
            <span>Geben Sie {{ gcfg.threshold | times: rate | money }} aus, um es freizuschalten.</span>
          {%- endif -%}
        </aside>
      {%- endif -%}
    {%- endif -%}
  {%- endfor -%}
{%- endif -%}

23.9 Das vollständige Snippet

Alles Obige zu einer funktionierenden Datei zusammengesetzt — das Grundgerüst, die sechs Typ-Blöcke, die shopweiten Geschenke und minimales CSS, damit es von Haus aus lesbar ist: laden Sie combora-custom-bundle.liquid herunter. Speichern Sie sie als snippets/combora-custom-bundle.liquid in Ihrem Theme und rendern Sie sie aus der Produktvorlage mit {% render 'combora-custom-bundle', product: product %}. GWP steht absichtlich nicht im case: ein Geschenk wird beworben (23.8 oder die eigenen Blöcke der App) und von der App automatisch hinzugefügt — es gibt nichts, was ein Produktkarten-Widget verkaufen müsste.

24Verlauf dieser Ausgabe

Jeder Ablauf in diesem Handbuch wurde in einem echten Shop getestet. Hier ist die Spur, wann er überprüft wurde und was sich danach geändert hat, damit Sie wissen, wie aktuell das ist, was Sie lesen.

DatumWas gemacht wurde
15. August 2026Erste vollständige Ausgabe, durchgängig im Entwicklungs-Shop app-bundle-6pofnlbj überprüft, mit echten Testkäufen (Bogus-Gateway). Zwei Abweichungen wurden gefunden (I-01: der für das Geschenk qualifizierende Pool schloss zu viel aus; I-02: CSV-Fehlergründe blieben unübersetzt), und beide wurden behoben, mit einem Regressionstest.
21. August 2026Überprüfung gegen den Code und gegen die Live-App. Hinzugefügt: Abschnitt 13 (Das Widget gestalten); die Katalogsichtbarkeit des festen Bundles (5.1); die drei Diagramme unter Statistiken; der Hinweis ein weiterer automatischer Rabatt ist aktiv in Problembehebung; das shopweite Geschenk auf Produktseiten (9.3); und im Anhang die Felder test und style, dazu powered_by_badge und die Zusatzfelder des Index. Der Text zum Testmodus wurde verfeinert und die Nummerierung des Anhangs korrigiert.
21. August 2026
(Screenshots)
Nach dem shopify app deploy, das die Widget-Neugestaltung in den Shop brachte, wurden die Shop-Screenshots gegen den echten Shop neu aufgenommen: die Stufenleiter des Mengenrabatts, die +-Trenner bei Ergänzungen, der Mix & Match-Auswahldialog, die Combo-Karte mit ihren Mengen-Chips, die Geschenkleiste (gesperrt und freigeschaltet), die Warenkörbe für Mengenrabatt, Mix und BOGO, sowie die drei zum festen Bundle (Karte, übergeordnetes Produkt und Warenkorb). Die erneute Aufnahme des letzten korrigierte einen inhaltlichen Fehler: die Bildunterschrift des übergeordneten Produkts behauptete, seine Seite zeige den Bundle-Preis, während das Theme tatsächlich die Summe der Bestandteile zeichnet — der Bundle-Preis wird von der Function angewendet, sobald der Warenkorb erreicht wird.
24. August 2026Jeder Screenshot wurde gegen den öffentlichen Demo-Shop von Combora neu aufgenommen, der eigens dafür mit einem veröffentlichten Bundle pro Typ und vorzeigbaren Namen aufgebaut wurde, und der Text wurde an die in diesen Screenshots gezeigten Zahlen angepasst. Die Screenshots der App-Oberfläche gibt es jetzt in allen 7 Sprachen. Jeder ab hier genannte Preis wurde an einem echten Warenkorb in diesem Shop gemessen, nicht berechnet. Der Shop läuft mit Shopifys Horizon-Theme.
10. September 2026Der gesamte Katalog des Demo-Shops wurde auf runde Zahlen umgepreist, und jeder Typ bekam eigene Produkte, damit jedes Beispiel ein einzelnes Angebot misst statt der Abwägung zwischen mehreren. Danach wurden die Zahlen dieses Handbuchs Warenkorb für Warenkorb neu gemessen; deshalb weichen sie von den Einträgen darüber ab: das feste Bundle ($1,600.00 → $1,299.00), Mengenrabatt bei 2 und bei 4 Einheiten ($2,000.00 → $1,800.00 und $4,000.00 → $3,200.00), BOGO bei 3 ($900.00 → $600.00), Mix bei 3 ($1,050.00 → $840.00), die Box mit 3 ($2,100.00 → $1,749.00), Ergänzungen ($800.00 → $600.00), das Geschenk ab $1,000 ($1,070.00 → $1,050.00) und das Combo bei 2 Einheiten ($1,040.00 → $850.00). Zwei Bildunterschriften beschrieben Verhalten, das es nicht mehr gibt, und wurden korrigiert: ein Combo wird nicht als Karte auf der Produktseite gezeigt (jedes Teilangebot wird mit seinem eigenen Block beworben, und das Combo zeigt sich im Warenkorb), und die Geschenkleiste benennt jetzt Geschenk und anrechenbare Produkte in vier Zuständen, mit einer optionalen eigenen Nachricht pro Zustand (Abschnitt 9.2). Die Geschenk-Schwelle wird am Listenpreis gemessen.
23. August 2026Das Handbuch wurde mehrsprachig: es wird nun aus einer gemeinsamen Hülle plus einer Inhaltsquelle pro Sprache erzeugt, mit einem Sprachumschalter im linken Panel und hreflang-Alternativen. Englisch ist die kanonische Version. Beim Übersetzen wurde ein Widerspruch in Problembehebung gefunden und behoben: dort wurde behauptet, der Kontrollkästchen-Auswahldialog erscheine nur bei bestimmten Varianten, während 6.1 korrekt dokumentiert, dass er bei jedem Geltungsbereich erscheint.

Die Screenshots liegen im Repository unter app/combora/public/manual/img/: die der App-Oberfläche unter img/<language>/, ein Satz pro Sprache, und die des Shops und des Shopify-Admins im Wurzelverzeichnis, da diese Ihrem Theme und Ihrem Admin folgen statt der Sprache der App. Sie werden aus dem Demo-Shop neu aufgenommen; siehe docs/manual/CAPTURAS.md für den Zustand, den jeder von ihnen benötigt.