feat(billing): update pricing tiers to MyEasyCMS plans (EUR)
Some checks failed
Workflow / ʦ TypeScript (push) Failing after 6m2s
Workflow / ⚫️ Test (push) Has been skipped

Replace MakerKit sample billing config with actual MyEasyCMS tiers:
- Starter: 29€/mo (250 members) — Mitgliederverwaltung, SEPA, Website, Newsletter
- Pro: 59€/mo (1.000 members) — Kursverwaltung, Buchungen, unbegrenzte Benutzer
- Verband: 199€/mo (10.000 members) — Mehrebenen-Hierarchie, Verbandssuche
- Enterprise: 349€/mo (unlimited) — dedizierte Infrastruktur, SLA, API

All plans: EUR currency, German feature labels, yearly = ~2 months free.
Also update marketing i18n subtitles.
This commit is contained in:
Zaid Marzguioui
2026-04-02 16:13:54 +02:00
parent da862f2194
commit a6c9537195
3 changed files with 219 additions and 37 deletions

View File

@@ -1,8 +1,216 @@
/*
Replace this file with your own billing configuration file.
Copy it from billing.sample.config.ts and update the configuration to match your billing provider and products.
This file will never be overwritten by git updates
/**
* MyEasyCMS Billing Configuration
*
* Four tiers based on club/organization size:
* Starter — 29 €/mo (up to 250 members)
* Pro — 59 €/mo (up to 1.000 members)
* Verband — 199 €/mo (up to 10.000 members, multi-level hierarchy)
* Enterprise — 349 €/mo (unlimited, dedicated support)
*
* Yearly plans get ~2 months free (billed annually).
*/
import sampleSchema from './billing.sample.config';
import { BillingProviderSchema, createBillingSchema } from '@kit/billing';
export default sampleSchema;
const provider = BillingProviderSchema.parse(
process.env.NEXT_PUBLIC_BILLING_PROVIDER,
);
export default createBillingSchema({
provider,
products: [
// ── Starter ──────────────────────────────────────────────
{
id: 'starter',
name: 'Starter',
description: 'Für kleine Vereine bis 250 Mitglieder',
currency: 'EUR',
badge: 'Einstieg',
plans: [
{
name: 'Starter Monatlich',
id: 'starter-monthly',
paymentType: 'recurring',
interval: 'month',
lineItems: [
{
id: 'price_starter_monthly',
name: 'Starter',
cost: 29,
type: 'flat' as const,
},
],
},
{
name: 'Starter Jährlich',
id: 'starter-yearly',
paymentType: 'recurring',
interval: 'year',
lineItems: [
{
id: 'price_starter_yearly',
name: 'Starter',
cost: 290,
type: 'flat' as const,
},
],
},
],
features: [
'Bis zu 250 Mitglieder',
'Mitgliederverwaltung',
'SEPA-Lastschrifteinzug',
'Veranstaltungsmanagement',
'Vereins-Website (Baukasten)',
'Newsletter-Versand',
'Dokumenten-Generator',
'E-Mail-Support',
],
},
// ── Pro ───────────────────────────────────────────────────
{
id: 'pro',
name: 'Pro',
badge: 'Beliebt',
highlighted: true,
description: 'Für aktive Vereine bis 1.000 Mitglieder',
currency: 'EUR',
plans: [
{
name: 'Pro Monatlich',
id: 'pro-monthly',
paymentType: 'recurring',
interval: 'month',
lineItems: [
{
id: 'price_pro_monthly',
name: 'Pro',
cost: 59,
type: 'flat' as const,
},
],
},
{
name: 'Pro Jährlich',
id: 'pro-yearly',
paymentType: 'recurring',
interval: 'year',
lineItems: [
{
id: 'price_pro_yearly',
name: 'Pro',
cost: 590,
type: 'flat' as const,
},
],
},
],
features: [
'Bis zu 1.000 Mitglieder',
'Alles aus Starter',
'Kursverwaltung (VHS-Modus)',
'Buchungssystem (Räume & Gäste)',
'Rechnungswesen & Mahnungen',
'Unbegrenzte Benutzer',
'Benutzerdefinierte Module',
'Telefon-Support',
],
},
// ── Verband ──────────────────────────────────────────────
{
id: 'verband',
name: 'Verband',
badge: 'Verbände',
description: 'Für Verbände und Dachorganisationen',
currency: 'EUR',
plans: [
{
name: 'Verband Monatlich',
id: 'verband-monthly',
paymentType: 'recurring',
interval: 'month',
lineItems: [
{
id: 'price_verband_monthly',
name: 'Verband',
cost: 199,
type: 'flat' as const,
},
],
},
{
name: 'Verband Jährlich',
id: 'verband-yearly',
paymentType: 'recurring',
interval: 'year',
lineItems: [
{
id: 'price_verband_yearly',
name: 'Verband',
cost: 1990,
type: 'flat' as const,
},
],
},
],
features: [
'Bis zu 10.000 Mitglieder',
'Alles aus Pro',
'Mehrebenen-Verbandshierarchie',
'Verbandsweite Mitgliedersuche',
'Geteilte Vorlagen & Events',
'Verbands-Berichtswesen',
'Fischerei-Modul (optional)',
'Sitzungsprotokolle (optional)',
'Prioritäts-Support',
],
},
// ── Enterprise ───────────────────────────────────────────
{
id: 'enterprise',
name: 'Enterprise',
description: 'Für große Organisationen mit individuellen Anforderungen',
currency: 'EUR',
plans: [
{
name: 'Enterprise Monatlich',
id: 'enterprise-monthly',
paymentType: 'recurring',
interval: 'month',
lineItems: [
{
id: 'price_enterprise_monthly',
name: 'Enterprise',
cost: 349,
type: 'flat' as const,
},
],
},
{
name: 'Enterprise Jährlich',
id: 'enterprise-yearly',
paymentType: 'recurring',
interval: 'year',
lineItems: [
{
id: 'price_enterprise_yearly',
name: 'Enterprise',
cost: 3490,
type: 'flat' as const,
},
],
},
],
features: [
'Unbegrenzte Mitglieder',
'Alles aus Verband',
'Dedizierte Infrastruktur',
'Individuelle Modulentwicklung',
'SLA & Uptime-Garantie',
'Persönlicher Account-Manager',
'Onboarding & Schulung',
'API-Zugang',
'Datenmigration inklusive',
],
},
],
});