| Schritt | Die Frage dahinter |
|---|---|
| 1. Module installieren | Was kann das System anbinden? |
| 2. Zahlungsmethoden aktivieren | Womit kann der Kunde bezahlen? |
| 3. Laufzeiten erstellen | Wie lange und wie oft wird abgerechnet? |
| 4. Produktkategorien anlegen | Wie ist der Shop gegliedert? |
| 5. Host-Gruppen & Hosts | Auf welchen Servern wird bereitgestellt? |
| 6. Produktoptionen definieren | Was kann der Kunde zubuchen? |
| 7. Produkte anlegen | Was wird verkauft? |
Warum die Reihenfolge zählt
Ein Produkt lässt sich erst sauber speichern, wenn Kategorie und Laufzeit existieren — und ein Hosting-Produkt braucht zusätzlich Modul, Host-Gruppe und Host. Wer die Reihenfolge überspringt, muss später zurückspringen.
1. Module installieren#
Module sind die Anbindungen an die Außenwelt: Zahlungsanbieter, Hosting-Panels, Domain-Registrare, Buchhaltungssysteme. Ohne passendes Modul kann das System weder Geld einziehen noch einen Server ausrollen.
Menü: Module (eigener Eintrag mit Puzzle-Symbol in der Seitenleiste)
Die Seite zeigt oben, wie viele Module insgesamt verfügbar sowie aktiv bzw. inaktiv sind, dazu eine Suche und Filter-Reiter:
| Kategorie | Was steckt dahinter |
|---|---|
| Zahlungsanbieter | Stripe, PayPal, Mollie, GoCardless, Cryptomus, Revolut … |
| Hosting | Proxmox, Pterodactyl, cPanel, Plesk, KeyHelp, Froxlor, ISPConfig, VirtFusion, Virtualizor, SolusVM 2, TeamSpeak, Hetzner Cloud, Contabo Cloud … |
| Domainregistrar | INWX, InternetX, Lumaserv … |
| Buchhaltung | sevDesk, Lexoffice, easybill, Invoice Ninja … |
| Fraud Protection | MaxMind, FraudLabs Pro, StopForumSpam |
| Weitere | alles ohne eigene Kategorie |
Installieren und konfigurieren#
Auf jeder Modulkarte findest du die Schaltflächen Installieren, Konfigurieren und Deinstallieren.
- Installieren — schaltet das Modul für den aktuell gewählten Verkaufskanal frei. Beim ersten Verkaufskanal läuft dabei zusätzlich die systemweite Installation (Migrationen, Registrierung). Jeder weitere Verkaufskanal bekommt nur seine eigene Freischaltung.
- Konfigurieren — öffnet die Zugangsdaten des Moduls (API-Key, Secret, Endpunkt …). Welche Felder erscheinen, bringt jedes Modul selbst mit. Mit Speichern übernehmen.
Mehrere Verkaufskanäle
Die Installation gilt pro Verkaufskanal. Betreibst du zwei Marken und soll ein Modul in beiden verfügbar sein, installiere es in beiden — der Code liegt trotzdem nur einmal auf dem Server.
Beta-Kennzeichen
Module mit dem Hinweis Beta sind noch nicht gegen die Live-API des Anbieters getestet. Prüfe sie vor dem Produktivbetrieb mit einer Testbestellung.
Faustregel: Installiere nur, was du wirklich brauchst. Jedes aktive Modul erscheint später in Auswahllisten (Produkt-Modul, Host-Gruppen-Typ) und macht die Bedienung unnötig unübersichtlich.
2. Zahlungsmethoden aktivieren#
Ein installiertes Zahlungsmodul ist noch keine auswählbare Zahlungsart im Checkout.
Menü: Einstellungen → Zahlungsmethoden
Hier aktivierst du die einzelnen Methoden, die das Modul mitbringt (z. B. Kreditkarte, SEPA-Lastschrift, Sofortüberweisung bei Stripe) und legst ihre Reihenfolge fest. Nur aktivierte Methoden stehen später beim Produkt unter Zulässige Zahlungsmethoden zur Auswahl.
3. Laufzeiten erstellen#
Die Laufzeit bestimmt Abrechnungsrhythmus, Preisfaktor, Kündigungsregeln und Erinnerungen. Jedes Produkt braucht mindestens eine — ohne Laufzeit ist es nicht bestellbar.
Menü: Einstellungen → Laufzeiten (Direktpfad /admin/laufzeiten)
Allgemein#
| Feld | Bedeutung |
|---|---|
| Name | Anzeigetext im Shop, z. B. „Monatlich“, „12 Monate“. Übersetzbar. |
| Art | Vertrag, Prepaid oder Einmaliger Kauf — siehe unten. |
| Multiplikator | Faktor auf den Produkt-Basispreis. |
| Rabatt in % | Zusätzlicher Nachlass, der im Shop ausgewiesen wird. |
So wirkt der Multiplikator: Der Basispreis am Produkt ist ein Monatspreis. Bei Multiplikator 1 wird genau dieser berechnet.
Beispiel: Basispreis 3 € → Laufzeit „Monatlich“ mit Multiplikator 1 = 3 €; Laufzeit „7 Tage“ mit Multiplikator 0,25 = 0,75 €; Laufzeit „12 Monate“ mit Multiplikator 12 = 36 € (abzüglich eines eventuellen Rabatts).
Die drei Arten#
- Vertrag — wiederkehrende Abrechnung mit Vertragsbindung. Nur hier erscheinen die Vertragseinstellungen (siehe unten).
- Prepaid — der Kunde verlängert aktiv, es entsteht keine Bindung und keine Kündigungsfrist.
- Einmaliger Kauf — das Produkt läuft unbegrenzt ohne Verlängerung, der Kunde zahlt einmal. Laufzeitwert und Multiplikator entfallen.
Nicht für Domains
„Einmaliger Kauf“ eignet sich nicht für Domain-Produkte — Domains müssen regelmäßig verlängert werden.
Laufzeit#
Laufzeit-Wert und Laufzeit-Einheit (Stunden, Tage, Wochen, Monate, Jahre) ergeben zusammen die Dauer, z. B. 12 + Monat(e).
Vertragseinstellungen (nur bei Art „Vertrag“)#
| Feld | Bedeutung |
|---|---|
| Sperrzeit | Zeitraum nach der Sperrung, in dem der Kunde das Produkt durch eine Verlängerung noch entsperren kann. |
| Mindest-Vertragslaufzeit | Zeit, die der Vertrag nach der Bestellung mindestens laufen muss, bevor der Kunde kündigen kann. |
| Kündigungsfrist zum Laufzeitende | Frist, die der Kunde vor der Kündigung einhalten muss. Wird sie überschritten, ist erst zum übernächsten Abrechnungszeitraum kündbar. |
| Zahlungsintervall | Wie oft abgerechnet wird. Leer lassen = Abrechnung entspricht der Vertragslaufzeit. Beispiel: 12 Monate Laufzeit + Zahlungsintervall „1 Monat“ = monatliche Rechnung bei 12 Monaten Bindung. |
Erinnerungen#
Unter Erinnerungen zur Produktverlängerung legst du per Erinnerung hinzufügen fest, wie lange vor Ablauf der Kunde benachrichtigt wird (z. B. 7 Tage, 1 Tag). Mehrere Einträge sind möglich.
Typischer Einstieg
Lege „Monatlich“ (Vertrag, 1 Monat, Multiplikator 1), „Jährlich“ (Vertrag, 12 Monate, Multiplikator 12, ggf. 10 % Rabatt) und bei Bedarf „Einmalig“ an. Damit deckst du die meisten Fälle ab.
Löschen
Eine Laufzeit, die von aktiven oder gesperrten Services genutzt wird, lässt sich nicht löschen — das System blockiert das mit einem Hinweis auf die Anzahl betroffener Services.
4. Produktkategorien anlegen#
Kategorien gliedern den Shop und sind Pflichtangabe an jedem Produkt.
Menü: Produktmanagement → Produktkategorien
| Feld | Bedeutung |
|---|---|
| Name | Anzeigename im Shop. Übersetzbar. |
| Beschreibung | Optionaler Einleitungstext der Kategorieseite. Übersetzbar. |
| Position | Sortierung — niedrigere Zahlen erscheinen zuerst. |
| Aktiv | Nur aktive Kategorien sind im Shop sichtbar. |
Der Slug (URL-Bestandteil) wird automatisch aus dem Namen erzeugt.
Lege die Kategorien so an, wie deine Kunden suchen — z. B. „Webhosting“, „VPS“, „Gameserver“, „Domains“. Kategorien lassen sich jederzeit umsortieren, ohne dass Produkte neu zugeordnet werden müssen.
5. Host-Gruppen und Hosts anlegen#
Dieser Schritt betrifft Hosting-Produkte, die automatisch bereitgestellt werden. Verkaufst du nur Domains, Lizenzen oder Dienstleistungen, kannst du ihn überspringen.
Das Prinzip: Eine Host-Gruppe bündelt mehrere gleichartige Server eines Moduls. Ein Host ist ein einzelner Server darin. Am Produkt wählst du später die Gruppe — das System sucht selbst den passenden Server heraus.
5.1 Host-Gruppe#
Menü: Hosting → Host-Gruppen
| Feld | Bedeutung |
|---|---|
| Gruppenname | Freier Name, z. B. „Proxmox Cluster Nürnberg“ oder „KeyHelp Webhosting“. |
| Modul-Typ | Das Hosting-Modul, über das provisioniert wird. Zur Auswahl stehen nur installierte, aktive Hosting-Module. |
| Aktiv | Bestimmt, ob die Gruppe verfügbar ist. |
| Serverzuweisung | Wie Bestellungen auf die Server der Gruppe verteilt werden. |
Serverzuweisung — die beiden Strategien:
- Server füllen, dann nächsten — ein Server wird bis zu seiner Kapazität belegt, danach der nächste. Sinnvoll, wenn Hardware effizient ausgelastet werden soll.
- Gleichmäßig verteilen — jede Bestellung geht auf den aktuell am wenigsten belegten Server. Sinnvoll für gleichmäßige Last.
Die Kapazität legst du je Server über Maximale Auslastung fest (siehe unten).
Löschen
Eine Gruppe, in der noch Hosts liegen, lässt sich nicht löschen. Verschiebe oder entferne die Hosts zuerst.
5.2 Host#
Menü: Hosting → Hosts
Host-Informationen
| Feld | Bedeutung |
|---|---|
| Hostgruppe | Zu welcher Gruppe der Server gehört. Nur aktive Gruppen stehen zur Auswahl. |
| Name | Interne Bezeichnung, z. B. web01.example.de. |
| Hostname | Der tatsächliche Hostname des Servers. |
| IP-Adresse | IPv4-Adresse des Servers. |
| Modul | Wird automatisch aus der Hostgruppe übernommen und ist nicht änderbar. |
| Port | Port der Panel-/API-Verbindung (Vorgabe 22). Wird er vom Modul nicht gebraucht, trage einen beliebigen Wert ein. |
Zugangsdaten
Nutzername und Passwort des API- bzw. Panel-Zugangs. Beim Bearbeiten gilt: Feld leer lassen = Passwort bleibt unverändert.
Ressourcen & Status
| Feld | Bedeutung |
|---|---|
| Auslastung | Aktueller Belegungswert. Wird bei Bestellungen automatisch hochgezählt. |
| Maximale Auslastung | Kapazitätsgrenze des Servers. Ist sie erreicht, bekommt der Server bei der Strategie „Server füllen“ keine neuen Bestellungen mehr. |
| Status | Aktiv, Gesperrt oder Beendet. Nur aktive Hosts werden für Neubestellungen herangezogen. |
| Spezifikationen | Optionale Zusatzangaben als JSON. |
5.3 Verbindung prüfen#
In der Host-Übersicht gibt es die Aktion Verbindung prüfen. Sie testet die hinterlegten Zugangsdaten gegen die API des Servers und meldet Verbindung erfolgreich oder Verbindung fehlgeschlagen.
Mach das immer, bevor du ein Produkt live schaltest
Falsche Zugangsdaten fallen sonst erst bei der ersten echten Kundenbestellung auf.
6. Produktoptionen definieren#
Produktoptionen sind das, was der Kunde beim Bestellen zusätzlich auswählt: RAM-Größe, Standort, Betriebssystem, Slot-Anzahl, Backup-Paket. Sie können Aufpreise tragen und Werte direkt an das Hosting-Modul durchreichen.
Menü: Inhalte → Produktoptionen-Verwaltung
Der Aufbau ist dreistufig — Gruppe → Option → Wert — und die Seite hat für jede Stufe einen eigenen Reiter. Lege sie in dieser Reihenfolge an.
6.1 Reiter „Gruppen“#
Die Gruppe bündelt zusammengehörige Optionen und ist die Überschrift im Bestellformular.
| Feld | Bedeutung |
|---|---|
| Gruppenname | z. B. „Serverkonfiguration“, „Zusatzleistungen“. |
| Sortierung | Reihenfolge der Gruppen im Bestellformular. |
| Beschreibung | Optionaler Erklärtext. |
| Aktiv | Nur aktive Gruppen erscheinen. |
Abschließen mit Gruppe erstellen.
6.2 Reiter „Optionen“#
Die Option ist das einzelne Auswahlfeld.
| Feld | Bedeutung |
|---|---|
| Gruppe | Zu welcher Gruppe die Option gehört. |
| Name | Beschriftung des Feldes, z. B. „Arbeitsspeicher“. |
| Beschreibung | Hilfetext unter dem Feld. |
| Typ | Dropdown, Slider, Radio Buttons, Checkbox, Text oder Textarea. |
| Icon | Optionales Symbol (Heroicon-Name, z. B. heroicon-o-cog). |
| Sortierung | Reihenfolge innerhalb der Gruppe. |
| Modul | Für welches Hosting-Modul die Option gilt. |
| API Parameter | Der Parametername, unter dem der Wert an das Modul übergeben wird — hierüber wirkt die Auswahl tatsächlich auf den bereitgestellten Server. |
| API Endpoint | Optional, falls das Modul einen abweichenden Endpunkt erwartet. |
Schalter je Option:
| Schalter | Wirkung |
|---|---|
| Pflichtfeld | Der Kunde muss eine Auswahl treffen. |
| Upgrade möglich / Downgrade möglich | Der Kunde darf die Option später nach oben bzw. unten wechseln. |
| Aktiv | Option wird angeboten. |
| Auf Rechnung | Die Option wird als eigene Position auf der Rechnung ausgewiesen. |
| In Bestellzusammenfassung | Die Option erscheint in der Übersicht vor dem Kauf. |
| Bei Rabatten ignorieren | Rabattaktionen und Kundengruppen-Rabatte greifen nicht auf diese Option. |
| Nur für Admins | Die Option ist im Shop unsichtbar und nur intern setzbar. |
Abschließen mit Option erstellen.
6.3 Reiter „Werte“#
Die Werte sind die konkreten Auswahlmöglichkeiten einer Option — bei Typ „Dropdown“/„Radio Buttons“ also die einzelnen Einträge.
| Feld | Bedeutung |
|---|---|
| Option | Zu welcher Option der Wert gehört. |
| Anzeigename | Was der Kunde liest, z. B. „16 GB RAM“. |
| API Wert | Was an das Modul übergeben wird, z. B. 16384. |
| Preis | Aufpreis pro Abrechnungszeitraum. |
| Setup-Gebühr | Einmaliger Aufpreis bei der Bestellung. |
| Sortierung | Reihenfolge in der Auswahlliste. |
| Aktiv | Nur aktive Werte werden angeboten. |
Abschließen mit Wert erstellen.
Anzeigename ≠ API-Wert
Der Anzeigename ist Marketing, der API-Wert ist Technik. Vertauscht man beides, bestellt der Kunde zwar sichtbar korrekt — der Server wird aber falsch angelegt.
7. Produkte anlegen#
Jetzt greifen alle Bausteine ineinander.
Menü: Produktmanagement → Produkte → Neu
Das Formular ist in Reiter unterteilt: Allgemein · Aktive Hostings · Modul · Preis · Domains · UP-/Downgrades · Produktoptionen · Affiliate · Zahlungsmethoden.
Reihenfolge im Formular
Fülle zuerst Allgemein und Preis aus und speichere das Produkt. Erst danach lassen sich Laufzeiten zuweisen und Produktoptionen verknüpfen — beides braucht einen bereits gespeicherten Datensatz.
Reiter „Allgemein“#
| Feld | Bedeutung |
|---|---|
| Produktname | Name im Shop. Übersetzbar. |
| E-Mail-Template bei Bereitstellung | Welche Vorlage verschickt wird, sobald das Produkt bereitgestellt ist. |
| Artikelnummer | Wird automatisch erzeugt, wenn leer gelassen. |
| Kategorie | Pflichtfeld — aus Schritt 4. |
| Standort | Optional, z. B. „Nürnberg“, „Falkenstein“. |
| Beschreibung | Pflichtfeld, Rich-Text. Das ist der Verkaufstext auf der Produktseite. Übersetzbar. |
| Aktiv | Nur aktive Produkte sind im Shop sichtbar und bestellbar. |
Produktbild: Über Produktbild anzeigen blendest du den Upload ein (JPEG, PNG, WebP, max. 5 MB, empfohlen 800 × 600 px) sowie Textfarbe, Preisfarbe und Overlay-Stil (Blur, Transparent, Solid) für die Produktkarte.
Lagerbestand: Ist Lagerbestand aktivieren an, wird der eingetragene Lagerbestand überwacht und heruntergezählt. Aus = unbegrenzt verfügbar.
Menge: Ist Mengenverwaltung aktivieren an, kann der Kunde mehrere Einheiten bestellen; du legst Mindest- und Maximalmenge fest (Maximalmenge leer = unbegrenzt). Aus = es wird immer genau 1 bestellt.
Geheimer Bestell-Link: Aktiviert versteckt das Produkt vollständig — es taucht weder im Shop noch in Kategorien oder CMS-Blöcken auf und ist ausschließlich über die angezeigte geheime URL bestellbar. Der Token wird automatisch vorbelegt, ist aber frei wählbar (Buchstaben, Zahlen, Bindestrich, Unterstrich). Praktisch für Sonderkonditionen und Testbestellungen.
Reiter „Modul“#
Hier verbindest du das Produkt mit der automatischen Bereitstellung.
Unter Modul wählst du das Hosting-Modul (nur installierte, aktive Hosting-Module erscheinen). Danach lädt darunter die Modul-Konfiguration — die Felder liefert das jeweilige Modul selbst. Je nach Modul sind das etwa Hostgruppe, Host, Ressourcen-Limits (CPU, RAM, Festplatte), Template/Image, Paketname oder Panel-spezifische Einstellungen.
Modulwechsel setzt zurück
Wechselst du das Modul eines bestehenden Produkts, werden die bisherigen Modul-Einstellungen bewusst verworfen. Sie gehörten zum alten Modul und würden am neuen keinen Sinn ergeben. Die Konfiguration ist danach neu auszufüllen.
Produkte ohne automatische Bereitstellung (Dienstleistungen, Lizenzen) lassen dieses Feld leer.
Reiter „Preis“#
Preisgestaltung
| Feld | Bedeutung |
|---|---|
| Monatlicher Basispreis | Bezugsgröße für alle Laufzeiten — der Laufzeit-Multiplikator rechnet darauf. |
| Einrichtungsgebühr | Einmalig bei Bestellung. Leer oder 0 = keine. |
Unter dem Feld steht, ob der Wert als NETTO (+ MwSt.) oder BRUTTO (inkl. MwSt.) interpretiert wird — das hängt an der globalen Preisanzeige-Einstellung deiner Installation.
Preise in weiteren Währungen (erscheint nur, wenn mehr als eine Währung aktiv ist): Je zusätzlicher Währung trägst du über Währung hinzufügen einen eigenen Preis und optional eine eigene Einrichtung ein.
Es wird nicht umgerechnet
Der Basispreis oben gilt in der Standardwährung; jede weitere Währung braucht einen eigenen, gepflegten Preis. Fehlt er, ist das Produkt in dieser Währung nicht bestellbar. Das ist Absicht — so bleiben Preispunkte je Markt frei wählbar.
Laufzeiten-Verwaltung
- Laufzeit zuweisen — öffnet die Mehrfachauswahl über alle angelegten Laufzeiten. Die Liste zeigt Art, Name, Dauer und Rabatt. Die Preise werden automatisch über den Multiplikator berechnet.
- Laufzeit erstellen — springt direkt in die Laufzeit-Anlage, falls noch eine fehlt.
Die zugewiesenen Laufzeiten erscheinen darunter als Tabelle und lassen sich per Drag & Drop sortieren — die Reihenfolge bestimmt, wie sie dem Kunden im Bestellformular angeboten werden. Die erste Position ist die Vorauswahl.
Reiter „Produktoptionen“#
Zeigt alle aktiven Optionsgruppen mit Ankreuzfeldern. Aktivierst du eine Option, gilt sie ab sofort für dieses Produkt; das Entfernen des Hakens löst die Verknüpfung wieder.
Hinweis
Solange das Produkt noch nicht gespeichert ist, steht hier der Hinweis, es zuerst zu speichern.
Reiter „Zahlungsmethoden“#
Standardmäßig ist alle Methoden akzeptieren aktiv. Schaltest du das ab, erscheint die Liste der aktiven Zahlungsmethoden zum Ankreuzen — dann sind nur die markierten für dieses Produkt zulässig.
Bei mehreren Produkten im Warenkorb bildet das System die Schnittmenge
Eine Zahlungsmethode wird nur angeboten, wenn sie für alle Produkte im Warenkorb erlaubt ist. Zu enge Einschränkungen können den Checkout also unbeabsichtigt blockieren.
Reiter „Affiliate“#
Mit Affiliate-Provisionen aktivieren verdienen Affiliates an diesem Produkt. Danach legst du die Provision in % fest und entscheidest über Wiederkehrende Provisionen — aktiviert wird auch bei Vertragsverlängerungen ausgeschüttet, nicht nur bei der Erstbestellung.
Reiter „Domains“#
Nur für Produkte relevant, bei denen eine Domain im Spiel ist. Hier aktivierst du eine DNS-Vorlage, die bei der Bereitstellung automatisch angewendet wird, und wählst ein Nameserver-Set für Domainbestellungen. Über die zugehörigen Schalter lässt sich zusätzlich erzwingen, dass bestimmte DNS-Einträge gesetzt sein müssen, bevor provisioniert wird — und ob dem Kunden die benötigten Einträge im Kundenbereich angezeigt werden.
Reiter „Aktive Hostings“ und „UP-/Downgrades“#
Aktive Hostings listet bei bestehenden Produkten alle laufenden Kundeninstanzen — nützlich, bevor du Preise oder Modul-Einstellungen änderst. UP-/Downgrades verwaltet die Wechselmöglichkeiten zwischen Produkten.
Abschließende Prüfung#
Bevor du den Shop öffentlich machst, arbeite diese Liste ab:
- ☐ Benötigte Module installiert und konfiguriert (Zugangsdaten gespeichert)
- ☐ Mindestens eine Zahlungsmethode aktiv
- ☐ Laufzeiten angelegt und jedem Produkt zugewiesen
- ☐ Kategorien aktiv und sinnvoll sortiert
- ☐ Bei Hosting-Produkten: Verbindung prüfen an jedem Host erfolgreich
- ☐ Produkte auf Aktiv gesetzt
- ☐ Preise in allen aktiven Währungen hinterlegt
- ☐ E-Mail-Versand eingerichtet (sonst kommen weder Bestellbestätigung noch Zugangsdaten an)
- ☐ Testbestellung durchgeführt — am besten über einen geheimen Bestell-Link, damit sie im Shop nicht sichtbar ist
Die Testbestellung ist der eigentliche Härtetest
Sie prüft Preisberechnung, Zahlungsanbindung, Provisionierung auf dem Host und den E-Mail-Versand in einem Durchgang.