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:
| Typ | Was er tut | Wann Sie ihn nutzen |
|---|---|---|
| Festes Bundle | Ein 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 & Match | Die Kundschaft wählt N Artikel aus einer Gruppe und erhält einen Rabatt. | Wähle 3 Shirts und spare 20%. |
| Mengenrabatt | Stufen: 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 zusammenstellen | Die 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. |
| Combo | Stapelt zwei oder mehr der obigen Angebote in einem Bundle; innerhalb des Combos addieren sie sich. | Kampagnen: Menge + Geschenk ab $1,000. |
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.
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:
| Block | Typen, die er zeigt | Wo einfügen |
|---|---|---|
| Combora bundle | Festes Bundle und Combo (Available bundles) | Produktvorlage |
| Combora mix & match | Mix & Match · Box zusammenstellen | Produktvorlage |
| Combora volume table | Mengenrabatt · Kaufe X erhalte Y | Produktvorlage |
| Combora complements | Ergänzungen | Produktvorlage (und Warenkorb) |
| Combora gift offer | Geschenk zum Kauf (das Angebot selbst) | Produktvorlage |
| Combora gift progress | Fortschrittsleiste des Geschenks | Warenkorbvorlage |
| Combora Gift (App-Embed) | Die Engine, die das Geschenk hinzufügt/entfernt | App-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.
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.
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.
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).
Hilfe
Häufige Fragen und Erklärungen der Konzepte (Abwägung zwischen Bundles, Geschenke, Blöcke).
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.
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:
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:
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-testberechnet; 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
- Produkte: fügen Sie die Bestandteile (bestimmte Varianten) und deren jeweilige Menge hinzu. Maximal 30 Bestandteile pro Bundle.
- 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.
- 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.
- 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.
5.2 Was Ihre Kundschaft sieht
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/allals 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
- 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).
- Menge: die Mindestanzahl an Artikeln zur Qualifikation und optional ein Maximum (über dem Maximum werden die zusätzlichen Artikel zum vollen Preis bezahlt).
- Rabatt: ein Prozentsatz oder ein Betrag, angewendet auf jeden berechtigten Artikel im Warenkorb, sobald das Minimum erreicht ist.
6.2 Was Ihre Kundschaft sieht
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
- 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.
- 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).
7.2 Was Ihre Kundschaft sieht
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
8.2 Was Ihre Kundschaft sieht
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.
9.1 Konfiguration
- Das Geschenk: eine bestimmte Variante, die hinzugefügt wird, sobald die Kundschaft sich qualifiziert.
- 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.
- Was auf die Bedingung angerechnet wird: jedes Produkt im Shop, bestimmte Produkte oder Kollektionen.
9.2 Was Ihre Kundschaft sieht
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.
{{ 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
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
11.2 Was Ihre Kundschaft sieht
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
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.
13.1 Zwei Orte, an denen Sie gestalten
| Wo | Geltungsbereich | Wann 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.
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-wund 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-Typ | Elemente, die Sie neu anordnen können |
|---|---|
| Festes Bundle · Combo | Titel · Enthaltene Produkte · Preis · Ersparnis · Schaltfläche |
| Mix & Match · Box zusammenstellen | Titel · Fortschrittszähler · Optionsliste · Hinweis · Schaltfläche |
| Mengenrabatt | Titel · Stufenleiter |
| Kaufe X, erhalte Y | Titel · Angebotsregel |
| Geschenk zum Kauf | Titel · Geschenk · Freischaltbedingung |
| Ergänzungen | Titel · Artikelliste · Ersparnis · Schaltfläche |
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.
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:
- 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.
- 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.
- Bei Gleichstand gewinnt das ältere Bundle (das zuerst erstellte).
- 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.
Ein echtes Zahlenbeispiel (im Shop überprüft)
| Warenkorb | Infrage kommende Angebote | Ergebnis |
|---|---|---|
| 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 × Oxygen | Mengenrabatt 2+ → 10% (die Stufe 4+ wird nicht erreicht) | $2,000.00 → $1,800.00 |
| 3 berechtigte Boards | Mix & 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 Boards | Das Skiwachs für $20.00 kommt zu $0.00 dazu: $1,070.00 → $1,050.00 |
| 2 × das Board des Combos | Innerhalb eines Combos: Mengenrabatt 15% und Geschenk | Beides 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
- Wählen Sie die Kollektion.
- 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".
- Konfigurieren Sie Einheiten und Rabatt, und klicken Sie dann auf Entwürfe erstellen.
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:
| Konfiguration | Was 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 5 | 12 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 Aktiv | 7 Entwürfe; das Banner meldet die übersprungenen Produkte mit dem jeweiligen Grund. |
| Erneutes Ausführen exakt derselben Konfiguration im nächsten Monat | Nur 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 · Multipack | Die 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. |
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).
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.
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
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:
| Prozess | Wann | Was es für Sie erledigt |
|---|---|---|
| Zeitfenster | alle 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-Aktualisierung | 03:00 | Bestätigt Ihren tatsächlichen Tarif bei Shopify (Upgrade, Kündigung, Ende der Testphase), damit Limits und Abzeichen immer der Wahrheit entsprechen. |
| Kollektions-Pools | 04:00 | Aktualisiert 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 Selbstheilung | 04:30 | Lö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
| Kennzahl | Was sie genau misst |
|---|---|
| Zugeordneter Umsatz | Der Umsatz der Bestellpositionen, die einen Combora-Rabatt trugen (nicht die Bestellsumme). |
| % der Bestellungen mit Bundle | Der Anteil der Bestellungen im Zeitraum, die mindestens ein Bundle enthielten. |
| Bestellungen mit Bundle | Der buchstäbliche Bruch: Bestellungen mit Bundle / Bestellungen insgesamt. |
| Gewährte Ersparnis | Der gesamte Rabatt, den Ihre Bundles der Kundschaft gewährt haben. |
| Durchschnittlicher Bestellwert | Über alle Bestellungen im Zeitraum hinweg. |
| Bestellwert mit Bundle | Der Durchschnitt nur der Bestellungen mit Bundle — vergleichen Sie ihn mit dem vorherigen, um die Wirkung Ihrer Angebote zu sehen. |
| Bestellungen mit Geschenk | Bestellungen, 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.
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.
19.1 Zustandsprüfungen
Der Live-Zustand dessen, wonach der Support zuerst fragt, bei jedem Laden gegen Shopify überprüft:
| Prüfung | Was sie überprüft |
|---|---|
| Bundles | Synchronisierungsfehler und veröffentlichte Bundles mit unveröffentlichten Änderungen (Sie haben bearbeitet und nicht auf Bundle aktualisieren geklickt). |
| Automatischer Rabatt in Shopify | Dass der Combora-Rabatt existiert und AKTIV ist — er ist es, der die Preise beim Checkout berechnet. |
| Veröffentlichter Shop-Index | Dass die öffentlichen Daten, die Ihre Theme-Blöcke lesen, aktuell sind (live Bundles im Vergleich zu erwartet). |
| App-Embed Combora Gift | Dass die Geschenk-Engine in Ihrem Theme aktiviert ist. |
| Rabatt bei aktuellen Bestellungen angewendet | Bestellungen der letzten 7 Tage mit Bundle: kamen ALLE ohne Rabatt an, stimmt etwas beim Checkout nicht. |
| Fehlerkanal des Shops | Dass Ihre Shop-Blöcke Fehler hierher melden können (Datum des letzten empfangenen Ereignisses). |
| Hintergrundjobs | Fehlgeschlagene nächtliche Jobs. |
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.
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.
/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 / Regel | Wert | Was passiert, wenn Sie sie erreichen |
|---|---|---|
| Veröffentlichte Bundles (Gratis-Tarif) | 3 | Das Veröffentlichen des 4. wird mit einem Hinweis blockiert. Entwürfe zählen nicht. |
| Bestandteile in einem festen Bundle | 30 | Der Editor lässt Sie nicht mehr hinzufügen. |
| Produkte in einem Combo (abgeflacht) | 50 Einträge | Der Editor zeigt die Nutzung (Verwendet X von 50) und blockiert den Überschuss. |
| Kollektionen pro Auswahldialog | 100 | Wird beim Speichern validiert. |
| Geschenkkombination (GWP) | 2–5 Artikel | Wird beim Speichern validiert. |
| Titel als Rabatt-Nachricht | 100 Zeichen | Der beim Checkout angezeigte Text wird gekürzt (der vollständige Titel bleibt erhalten). |
| Aus einer Kollektion generieren | 100 Entwürfe | Wird gekürzt, und Sie werden informiert. |
| CSV-Import | 200 Zeilen | Wird gekürzt, und Sie werden aufgefordert, die Datei aufzuteilen. |
| Sichtbare Angebote pro Block | 1–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) undcombora_tier(jede Mengen-/Schwellenstufe). Alle drei mitPUBLIC_READ-Shop-Zugriff, veröffentlichbar und übersetzbar. - Shop-Metafelder:
combora.indexundcombora.manifest(JSON, öffentlich lesbar), sowiecombora.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.
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.
all_pdp_gwps)
dazu.22.2 Was beim Veröffentlichen / Aktualisieren / Zurückziehen passiert
| Ereignis | Auswirkung auf den Vertrag |
|---|---|
| Ein Bundle veröffentlichen | Seine 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 aktualisieren | Eine 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 setzen | Das 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öschen | Seine 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 deinstallieren | Die 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
| Feld | Typ | Übersetzbar | Inhalt |
|---|---|---|---|
title | text | ja | Titel im Shop (erforderlich). |
description | rich text | ja | ⚠️ Die Definition existiert, aber die App schreibt dieses Feld noch nicht: heute kommt es immer leer an — rendern Sie tolerant gegenüber blank. |
badge_label | text | ja | Das Abzeichen (Bestes Angebot). |
test | boolean | nein | Testmodus. "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. |
style | json | nein | Vorkompilierter 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_label | text | ja | Schaltflächentext (optional). |
disclaimer | rich text | ja | ⚠️ Wie description: definiert, aber weiterhin ohne Inhalt — tolerieren Sie blank. |
bundle_type | text (Auswahl) | nein | Einer von: fixed · mix_and_match · volume · bogo · gwp · build_a_box · fbt · combo. |
min_items / max_items | integer | nein | Mix & Match (min/max) und Box zusammenstellen (Größe in min_items). |
threshold | integer | nein | Die GWP-Schwelle in der kleinsten Währungseinheit (Cent), immer in der Währung des Shops — siehe die Mehrwährungsregel in 22.9. |
discount_value | json | nein | {"kind":"percentage","bps":1500} (Basispunkte: 1500 = 15%) oder {"kind":"fixed_amount","amount":500} (kleinste Währungseinheit). |
config | json | nein | Skalare 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). |
components | Liste von Referenzen | — | → combora_component (Variante, Menge, Rolle: component/option/anchor/gift/suggestion, Position, Label…). |
tiers | Liste von Referenzen | — | → combora_tier (min_qty, discount_value, position, tier_label…). |
product | Produktreferenz | nein | Ankerprodukt (das übergeordnete eines festen Bundles, das Hauptprodukt eines FBT). |
image | Dateireferenz | nein | Optionales Bundle-Medium. |
revision / contract_version | integer / text | nein | Veröffentlichte Revision und Vertragsversion (public.v1). |
combora_bundle-Eintrag unter Inhalte → Metaobjekte: Titel,
Status Aktiv, deterministischer Handle combora-bundle-{id}.
discount_value als JSON in Basispunkten, die
Bestandteil-Referenzen, das Ankerprodukt und contract_version = public.v1.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.indexauflistet und jedes über seinen Handle rendert. - Headless / Hydrogen: derselbe Lesevorgang über die Storefront API mit Lokalisierung pro Markt.
- Integrationen (Feeds, Empfehlungs-Apps): das
manifestdeklariert 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_valueeines 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
positiongeteilt durch 1000 (jedes Teilangebot belegt ein Band von 1000) oder nachconfig.of[].index— nie nachrole, das sich wiederholen kann. - Stil: bauen Sie Ihre eigene Oberfläche, ignorieren Sie
styleund schreiben Sie Ihr eigenes CSS. Möchten Sie stattdessen das Design respektieren, das im Shop in der App gewählt wurde, kopieren Siestyle.varsin dasstyle-Attribut Ihres Wurzelelements undstyle.mode_classals Klasse; das Preset Ungestylt des Studios existiert genau für den umgekehrten Fall (sauberes Markup, Ihr CSS, mit.combora-wund den Variablen--combora-*als Ansatzpunkte). - Privat ≠ Vertrag: die Metafelder
$app:runtime,$app:fnvarsund$app:validationdes 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 mitcart.currency.ratemultiplizieren; in JS mitShopify.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
!= blankab — 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.
| Datum | Was gemacht wurde |
|---|---|
| 15. August 2026 | Erste 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 2026 | Jeder 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 2026 | Der 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 2026 | Das 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.