Catalogue
Construisez le catalogue produit : modules (versions/sorties), modules complémentaires (fonctionnalités de la plateforme) et offres groupées (formules que les clients achètent).
Chemins d’administration :
- Admin → Modules
- Admin → Modules complémentaires
- Admin → Forfaits
Modules (du module à la version)
Un module est une extension NexoPOS que la plateforme peut installer sur des installations autorisées. Chaque module possède une ou plusieurs versions (sorties).
Créer un module
- Admin → Modules → Créer.
- Définir le nom, le slug, la description.
- Optionnel : référentiel GitHub par défaut + visibilité pour les versions.
- Statut : disponible / indisponible ; autoriser les mises à jour lorsque indisponible contrôle si les installations existantes peuvent encore être mises à jour.
Publier une version (version de publication)
Ouvrez le module → ajoutez une version :
| 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) |
Marquez la version publiée afin qu’elle puisse être sélectionnée pour les installations et les mises à jour.
Flux de travail :
Create module
→ Add version (GitHub ref or ZIP)
→ Publish version
→ Attach module to one or more bundles
→ Customer installs/updates from entitled bundle
Espace réservé de capture d’écran : page d’affichage du module avec liste des versions et action de publication
Conseils
- Préférez les balises semver comme github_ref pour la reproductibilité.
- Les dépôts de modules privés nécessitent un PAT GitHub valide via Admin → GitHub.
- Le canal Core NexoPOS (latest/pinned) est distinct sous Paramètres → GitHub.
Modules complémentaires
Les modules complémentaires sont des droits payants optionnels sur une installation (pas à l’échelle de l’organisation). Seules deux clés de fonctionnalité de la plateforme sont câblées aujourd’hui :
| 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 |
Créer une extension
- Admin → Modules complémentaires → Créer.
- Fonctionnalité — sélectionnez dans la liste déroulante (pas en texte libre). Choisir la mauvaise clé signifie que l’interface ne se déverrouillera jamais.
- Nom, description, prix (centimes), devise, intervalle de facturation (mensuel / annuel / ponctuel).
- Disponibilité — par exemple publiée (achetable), masquée, etc.
- Enregistrer.
Interaction en mode domaine
| 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 |
Interaction des sauvegardes
- Nécessite l’add-on de sauvegardes publiées + une autorisation active lors de l’installation.
- Le stockage et la planification proviennent de Paramètres → S3 / Sauvegardes, et non uniquement du prix de l’add-on.
Forfaits (plans)
Un forfait est ce que les clients souscrivent par installation. Il comprend :
- Tarification (essai / lancement / récurrente)
- Limites de ressources (disque, étiquette/partage du processeur)
- Modules inclus
- Fonctionnalités marketing / badges
- Disponibilité (publiée, etc.)
Champs de tarification expliqués
| 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 |
Le service de facturation (indépendant du fournisseur) construit les lignes de commande à partir de ces règles.
Comment les essais, les offres d’introduction et les paiements récurrents interagissent
Pensez à trois leviers :
- Essai uniquement — le client commence sans payer l’intégralité des paiements récurrents ; l’abonnement est en période d’essai jusqu’à la fin de l’essai, puis la collecte / la période de grâce normale s’applique. Exemple (seed Professional) : trial_days = 14, intro 0, récurrent 49 $.
- Prix d’entrée sans essai — la première facturation utilise les centimes d’introduction ; le montant récurrent correspond au prix catalogue ensuite / lors du renouvellement. Exemple (seed Starter) : introduction 1 $ (100 cents), récurrent 19 $, essai 0.
- Ni l’un ni l’autre — le premier prélèvement utilise immédiatement le prix récurrent.
Important :
- L’essai est valable pour la vérification d’une nouvelle installation, et non pour un siège gratuit à vie.
- Les achats complémentaires effectués au cours du cycle de vie sont des postes distincts / des éléments de passerelle.
- Les coupons (s’ils sont configurés) s’appliquent au moment du paiement lorsqu’ils sont valides.
Exemples de travaux effectués
Style de départ
| Value | |
|---|---|
| Intro | $1.00 for first period |
| Recurring | $19.00 / month |
| Trial | 0 days |
Le client paie le montant d’introduction lors du premier paiement réussi (conformément aux règles du passerelle), puis de manière récurrente par la suite.
Style professionnel
| Value | |
|---|---|
| Trial | 14 days |
| Recurring | $49.00 / month |
| Intro | $0 |
Le client peut commencer sans facture entièrement payée pendant la période d’essai ; après la période d’essai, les règles de recouvrement des paiements et de délai/suspension s’appliquent.
Joindre des modules
Sur le formulaire du bundle, sélectionnez les modules inclus. Seuls les modules auxquels vous avez droit apparaissent pour l’installation/la mise à jour sur les installations client.
Publier le bundle
Définissez la disponibilité sur « publié » et l’ordre de tri / badge à la une pour la page de tarification marketing.
Ordre de configuration suggéré du catalogue
- Configurer les paramètres de GitHub.
- Créer des modules + publier au moins une version chacun.
- Créez des modules complémentaires (custom_domain, sauvegardes) si vous les vendez.
- Créez des bundles, associez des modules, définissez une période d’essai/d’introduction et des paiements récurrents.
- Publiez des bundles et ouvrez la tarification en tant que client.
- Configurez le mode Domaine et S3 afin que les modules complémentaires fonctionnent réellement de bout en bout.