Skip to main content

Pricing Model

Piani fissi per numero di dispositivi (1-10), con pricing per-device e scaglioni.

πŸ“Š Piani Completi​

Mensile​

Piano IDNΒ° Device€/mese/devPrezzo Totale
monthly_11€4,90€4,90
monthly_22€4,90€9,80
monthly_33€3,90€11,70
monthly_44€3,90€15,60
monthly_55€3,90€19,50
monthly_66€3,90€23,40
monthly_77€3,90€27,30
monthly_88€3,90€31,20
monthly_99€3,90€35,10
monthly_1010€3,90€39,00

Semestrale (-20%)​

Piano IDNΒ° Device€/mese/devPrezzo Totale
semiannual_11€3,92€23,50
semiannual_22€3,92€47,00
semiannual_33€3,12€56,10
semiannual_44€3,12€74,80
semiannual_55€3,12€93,50
semiannual_66€3,12€112,20
semiannual_77€3,12€130,90
semiannual_88€3,12€149,60
semiannual_99€3,12€168,30
semiannual_1010€3,12€187,00

Annuale (-40%)​

Piano IDNΒ° Device€/mese/devPrezzo Totale
annual_11€2,92€35,00
annual_22€2,92€70,00
annual_33€2,33€84,00
annual_44€2,33€112,00
annual_55€2,33€140,00
annual_66€2,33€168,00
annual_77€2,33€196,00
annual_88€2,33€224,00
annual_99€2,33€252,00
annual_1010€2,33€280,00

πŸ”§ Product IDs per Provider​

Stripe​

price_monthly_1, price_monthly_2, ... price_monthly_10
price_semiannual_1, price_semiannual_2, ... price_semiannual_10
price_annual_1, price_annual_2, ... price_annual_10

Apple App Store​

com.visla.gps.monthly_1, com.visla.gps.monthly_2, ...
com.visla.gps.semiannual_1, com.visla.gps.semiannual_2, ...
com.visla.gps.annual_1, com.visla.gps.annual_2, ...

Google Play​

monthly_1, monthly_2, ... monthly_10
semiannual_1, semiannual_2, ... semiannual_10
annual_1, annual_2, ... annual_10

πŸ“± UI Flow​

Selezione Piano​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Quanti dispositivi vuoi tracciare? β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1] [2] [3] [4] [5] β”‚
β”‚ [6] [7] [8] [9] [10] β”‚
β”‚ β”‚
β”‚ Hai selezionato: 5 dispositivi β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β—‹ Mensile €19,50/mese β”‚
β”‚ β—‹ Semestrale €93,50 (-20%) β”‚
β”‚ ● Annuale €140,00 (-40%) β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [Abbonati Ora] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Upgrade Flow​

Se l'utente ha 3 device e ne vuole 5:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Upgrade Piano β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Attuale: 3 dispositivi (€11,70/m) β”‚
β”‚ Nuovo: 5 dispositivi (€19,50/m) β”‚
β”‚ β”‚
β”‚ Differenza: +€7,80/mese β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [Conferma Upgrade] [Annulla] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ”„ Logica Backend​

Verificare limite dispositivi​

def can_add_device(user_id: int) -> bool:
"""Check if user can add another device."""
subscription = get_active_subscription(user_id)
if not subscription:
return False

# Estrai numero devices dal plan_id (es: "monthly_5" β†’ 5)
max_devices = int(subscription.plan_id.split("_")[-1])
current_devices = count_user_devices(user_id)

return current_devices < max_devices

Upgrade subscription​

Per Stripe:

# Cambia subscription a nuovo piano
stripe.Subscription.modify(
subscription_id,
items=[{
'id': subscription_item_id,
'price': 'price_monthly_5', # Nuovo piano
}],
proration_behavior='create_prorations' # Calcola differenza
)

βœ… Vantaggi di questo approccio​

AspettoVantaggio
SemplicitΓ 30 piani fissi, facili da gestire
CompatibilitΓ Funziona su Stripe, Apple, Google
UX chiaraUtente sceglie N dispositivi, vede prezzo
Upgrade facileCambio piano = cambio subscription

πŸ“ Prossimi Passi​

  1. Creare prodotti su Stripe, App Store Connect, Google Play
  2. Implementare UI per selezione dispositivi
  3. Logica backend per verificare limiti
  4. Webhook handling (giΓ  implementato!)

πŸ“Š Tabella Prezzi​

Mensile​

DispositiviPrezzo/mese/deviceEsempio 5 devices
1-2€4,90€9,80 (2 dev)
3-10€3,90€19,50
10+€2,90-

Semestrale (-20%)​

DispositiviPrezzo 6 mesi/device€/mese/device
1-2€23,50€3,92
3-10€18,70€3,12
10+€13,90€2,32

Annuale (-40%)​

DispositiviPrezzo anno/device€/mese/device
1-2€35,00€2,92
3-10€28,00€2,33
10+€20,90€1,74

⚠️ ComplessitΓ  Implementativa​

Questo modello Γ¨ piΓΉ complesso di una subscription flat. Ecco le sfide:

Problema 1: Come calcolare il prezzo?​

Il prezzo dipende da quanti dispositivi ha l'utente.

User A: 2 dispositivi β†’ Tier 1-2 β†’ €4.90 Γ— 2 = €9.80/mese
User B: 5 dispositivi β†’ Tier 3-10 β†’ €3.90 Γ— 5 = €19.50/mese
User C: 15 dispositivi β†’ Tier 10+ β†’ €2.90 Γ— 15 = €43.50/mese

Problema 2: Cosa succede se aggiunge dispositivi?​

Scenario: User ha 2 dispositivi (€9.80/mese), vuole aggiungerne 3.

  • Nuovo totale: 5 dispositivi
  • Nuovo tier: 3-10
  • Nuovo prezzo: €3.90 Γ— 5 = €19.50/mese

Opzioni:

  • A) Upgrade immediato: Cambia subito subscription, prorata
  • B) Upgrade al rinnovo: PuΓ² aggiungere, ma nuovo prezzo da prossimo ciclo

Problema 3: Stripe/Apple/Google supportano questo?​

ProviderSupporto per-seat pricing
Stripeβœ… SΓ¬ - quantity + price tiers
Apple❌ No - Solo prezzi fissi
Google❌ No - Solo prezzi fissi

πŸ”§ Soluzioni Proposte​

Opzione A: Stripe per tutti i pagamenti (Consigliato)​

Usa Stripe come unico provider di pagamento, anche su mobile.

Pro:

  • Pricing flessibile con quantity e tiers
  • Un solo sistema da gestire
  • Cross-platform nativo
  • Upgrade/downgrade facili

Contro:

  • Su iOS, Apple prende il 30% se passi da App Store (ma puoi evitarlo per apps B2B)
  • Su Android, Google puΓ² richiedere Play Billing per alcuni casi

Come funziona:

# Stripe subscription con quantity
subscription = stripe.Subscription.create(
customer=customer_id,
items=[{
"price": "price_per_device_monthly",
"quantity": 5 # Number of devices
}]
)

Opzione B: Piani Fissi Pre-calcolati​

Crea piani fissi per ogni combinazione:

Piano IDDispositiviDurataPrezzo
monthly_2dev1-2Mese€9.80
monthly_5dev3-5Mese€19.50
monthly_10dev6-10Mese€39.00
annual_2dev1-2Anno€70.00
............

Pro: Funziona su Apple/Google Contro: Tanti piani da gestire, meno flessibile

Opzione C: Ibrido​

  • Mobile: Piani fissi semplificati (Es: "Pro 5 devices", "Pro 10 devices")
  • Web: Stripe con quantity dinamica

🎯 Raccomandazione​

Per GPS Tracking B2B β†’ Opzione A (Solo Stripe)​

PoichΓ© Visla GPS sembra un prodotto B2B (flotte, tracking veicoli), puoi:

  1. Evitare App Store/Play Store per pagamenti
  2. Usare Stripe come unico gateway
  3. Link nel app: "Manage Subscription" β†’ apre browser web
// iOS - Apri web per gestione abbonamento
if let url = URL(string: "https://app.vislagps.com/subscription") {
UIApplication.shared.open(url)
}

Se devi usare In-App Purchases β†’ Opzione B​

Apple/Google richiedono IAP per consumer apps. In questo caso:

Piani semplificati per Mobile:

PianoDispositiviPrezzo MensilePrezzo Annuale
StarterFino a 2€9.80€70.00
ProFino a 5€19.50€140.00
BusinessFino a 10€39.00€280.00
EnterpriseIllimitatiContattaciContattaci

πŸ€” Domande per Te​

  1. Visla GPS Γ¨ B2B o consumer?

    • B2B (flotte aziendali) β†’ Puoi usare solo Stripe
    • Consumer (privati) β†’ Devi usare IAP su mobile
  2. Upgrade device durante subscription?

    • Utente puΓ² aggiungere device a metΓ  ciclo?
    • O deve aspettare il rinnovo?
  3. Vuoi piani semplificati per mobile?

    • Es: "Starter (2 dev)", "Pro (5 dev)", "Business (10 dev)"
    • Invece del pricing esatto per-device

Fammi sapere e aggiorno tutta la documentazione! πŸš€