Katalog
Erstellen Sie den Produktkatalog: Module (Versionen/Releases), Add-ons (Plattformfunktionen) und Bundles (Pakete, die Kunden kaufen).
Admin-Pfade:
- Admin → Module
- Admin → Add-ons
- Admin → Pakete
Module (vom Modul bis zur Veröffentlichung)
Ein Modul ist eine NexoPOS-Erweiterung, die die Plattform auf berechtigten Installationen installieren kann. Jedes Modul hat eine oder mehrere Versionen (Releases).
Erstelle ein Modul
- Admin → Module → Erstellen.
- Name, Slug, Beschreibung.
- Optional: Standard-GitHub-Repository + Sichtbarkeit für Versionen.
- Status: verfügbar / nicht verfügbar; Updates zulassen, wenn nicht verfügbar – steuert, ob bestehende Installationen weiterhin aktualisiert werden können.
Veröffentlichen Sie eine Version (Release)
Öffne das Modul → Version hinzufügen:
| Source | Fields |
|---|---|
| GitHub | Repo owner/name, ref/tag (e.g. v1.2.0), visibility; platform token used if private |
| ZIP | Upload package (size limit enforced server-side, e.g. 50MB) |
Markieren Sie die veröffentlichte Version, damit sie für Installationen/Updates ausgewählt werden kann.
Workflow:
Create module
→ Add version (GitHub ref or ZIP)
→ Publish version
→ Attach module to one or more bundles
→ Customer installs/updates from entitled bundle
Screenshot-Platzhalter: Modul-Übersichtsseite mit Versionsliste und Aktion „Veröffentlichen“
Tipps
- Bevorzuge semver-Tags als github_ref für die Reproduzierbarkeit.
- Private Modul-Repositories benötigen ein gültiges Admin → GitHub-PAT.
- Der Core NexoPOS-Kanal (neueste/angeheftet) ist separat unter „Einstellungen → GitHub“ aufgeführt.
Add-ons
Add-ons sind optionale kostenpflichtige Berechtigungen für eine Installation (nicht unternehmensweit). Derzeit sind nur zwei Plattform-Feature-Keys verdrahtet:
| Feature (UI) | feature_key | Unlocks |
|---|---|---|
| Custom domain | custom_domain | Domain tab attach/verify when Domain mode is addon |
| Backups | backups | Backup tab + scheduled platform backups |
Erstelle ein Add-on
- Admin → Add-ons → Erstellen.
- Funktion – aus der Dropdown-Liste auswählen (kein Freitext). Die Auswahl des falschen Schlüssels bedeutet, dass die Benutzeroberfläche nie entsperrt wird.
- Name, Beschreibung, Preis (Cent), Währung, Abrechnungsintervall (monatlich / jährlich / einmalig).
- Verfügbarkeit – z. B. veröffentlicht (kaufbar), ausgeblendet usw.
- Speichern.
Domänenmodus-Interaktion
| Admin Domain custom_domain_mode | Customer experience |
|---|---|
| free | Custom domain without purchasing the add-on |
| addon | Must purchase Custom domain add-on (or already entitled) |
| disabled | Domain attach not offered |
Backup-Interaktion
- Erfordert das veröffentlichte Backup-Add-on + eine aktive Berechtigung bei der Installation.
- Speicher und Zeitplan stammen aus „Einstellungen → S3 / Backups“ und nicht nur aus dem Add-on-Preis.
Pakete (Tarife)
Ein Bundle ist das, worauf sich Kunden pro Installation abonnieren. Es umfasst:
- Preise (Test / Einführung / fortlaufend)
- Ressourcenlimits (Datenträger, CPU-Kennzeichnung/-Anteil)
- Enthaltene Module
- Marketing-Funktionen / Badges
- Verfügbarkeit (veröffentlicht usw.)
Erläuterungen zu den Preisfeldern
| Field | Meaning |
|---|---|
| Trial days (trial_days) | Free trial length on first checkout of a new install. No paid “full price” invoice is invented while trialing. Renewals never re-grant trial. |
| Intro / entry price (intro_price_cents) | Preferential first charge amount (in cents) when intro is configured. |
| Intro period days (intro_period_days) | How long the intro pricing window is intended to last (product metadata used with intro pricing). |
| Recurring price (recurring_price_cents) | Ongoing price after intro / for renewal line items. |
| Billing interval | e.g. monthly |
| Currency | ISO code, e.g. USD |
Checkout erstellt Bestellpositionen anhand dieser Regeln in BillingService (gateway-unabhängig).
Wie sich Einmal-, Probe- und wiederkehrende Zahlungen gegenseitig beeinflussen
Denke an drei Hebel:
- Nur Testphase – der Kunde startet, ohne die volle wiederkehrende Zahlung zu leisten; das Abonnement befindet sich im Testmodus, bis der Test endet, danach gelten die normale Einziehung / die Kulanzfrist. Beispiel (Seed Professional): trial_days = 14, intro 0, recurring $49.
- Einführungspreis ohne Testphase – die erste Abbuchung erfolgt zu Einführungscents; der wiederkehrende Preis ist danach der Listenpreis / auf den Verlängerungspfaden. Beispiel (Seed Starter): Einführung 1 $ (100 Cent), wiederkehrend 19 $, Test 0.
- Weder — die erste Abbuchung verwendet sofort den wiederkehrenden Preis.
Wichtig:
- Die Testversion gilt pro neuer Installation beim Checkout, nicht für einen dauerhaft kostenlosen Sitzplatz.
- Zukäufe während der Lebenszyklusphase sind separate Positionen / Gateway-Artikel.
- Gutscheine (falls konfiguriert) werden beim Checkout angewendet, wenn sie gültig sind.
Ausgearbeitete Beispiele
Starter-Stil
| Value | |
|---|---|
| Intro | $1.00 for first period |
| Recurring | $19.00 / month |
| Trial | 0 days |
Der Kunde zahlt den Einführungsbetrag beim ersten erfolgreichen Checkout (gemäß den Regeln des Gateways) und anschließend die wiederkehrenden Zahlungen.
Professioneller Stil
| Value | |
|---|---|
| Trial | 14 days |
| Recurring | $49.00 / month |
| Intro | $0 |
Der Kunde kann den Dienst auch ohne vollständig bezahlte Rechnung während der Testphase starten; nach der Testphase gelten Regeln zur Zahlungserhebung sowie zu Kulanz-/Sperrungen.
Module hinzufügen
Wählen Sie im Bundle-Formular aus, welche Module enthalten sind. Nur berechtigte Module werden für die Installation/Aktualisierung auf Kundeninstallationen angezeigt.
Veröffentliche das Bundle
Stellen Sie die Verfügbarkeit auf „veröffentlicht“ und die Sortierreihenfolge / das „Featured“-Badge für die Marketing-Preisseite ein.
Vorgeschlagene Reihenfolge für die Katalogeinrichtung
- Konfigurieren Sie die GitHub-Einstellungen.
- Erstelle Module + veröffentliche mindestens eine Version für jedes.
- Erstellen Sie Add-ons (custom_domain, Backups), wenn Sie diese verkaufen.
- Erstellen Sie Bundles, binden Sie Module ein und legen Sie Test-/Einführungs-/wiederkehrende Abrechnungen fest.
- Veröffentlichen Sie Bundles und öffnen Sie „Preise“ als Kunde.
- Konfigurieren Sie den Domain-Modus und S3, damit Add-ons tatsächlich Ende-zu-Ende funktionieren.