Skip to main content

Strategia Abbonamenti - Finale

Questa documentazione descrive la strategia definitiva per i Product IDs degli abbonamenti Visla GPS su tutte le piattaforme.

Panoramica​

PiattaformaDispositiviMetodo
iOS1-10In-App Purchase (StoreKit 2)
Android1-10Google Play Billing
Web1-10Stripe
Web11+Stripe (quantitΓ  dinamica)
Stesso ID ovunque

Per i piani 1-10, stesso Product ID su iOS, Android e Stripe per massima coerenza.


Formato Product ID​

sub_{period}_{devices}
ComponenteValori
sub_Prefisso fisso
{period}monthly, semiannual, annual
{devices}1 - 10 oppure bulk

Tutti i 30 Abbonamenti​

Mensili​

Product IDDisplay Name (IT)Display Name (EN)Prezzo
sub_monthly_1Mensile - 1 DispositivoMonthly - 1 Device€4,99/mese
sub_monthly_2Mensile - 2 DispositiviMonthly - 2 Devices€9,99/mese
sub_monthly_3Mensile - 3 DispositiviMonthly - 3 Devices€14,99/mese
sub_monthly_4Mensile - 4 DispositiviMonthly - 4 Devices€19,99/mese
sub_monthly_5Mensile - 5 DispositiviMonthly - 5 Devices€24,99/mese
sub_monthly_6Mensile - 6 DispositiviMonthly - 6 Devices€29,99/mese
sub_monthly_7Mensile - 7 DispositiviMonthly - 7 Devices€34,99/mese
sub_monthly_8Mensile - 8 DispositiviMonthly - 8 Devices€39,99/mese
sub_monthly_9Mensile - 9 DispositiviMonthly - 9 Devices€44,99/mese
sub_monthly_10Mensile - 10 DispositiviMonthly - 10 Devices€49,99/mese

Semestrali (-20%)​

Product IDDisplay Name (IT)Display Name (EN)Prezzo
sub_semiannual_1Semestrale - 1 DispositivoSemiannual - 1 Device€23,99/6 mesi
sub_semiannual_2Semestrale - 2 DispositiviSemiannual - 2 Devices€47,99/6 mesi
sub_semiannual_3Semestrale - 3 DispositiviSemiannual - 3 Devices€71,99/6 mesi
sub_semiannual_4Semestrale - 4 DispositiviSemiannual - 4 Devices€95,99/6 mesi
sub_semiannual_5Semestrale - 5 DispositiviSemiannual - 5 Devices€119,99/6 mesi
sub_semiannual_6Semestrale - 6 DispositiviSemiannual - 6 Devices€143,99/6 mesi
sub_semiannual_7Semestrale - 7 DispositiviSemiannual - 7 Devices€167,99/6 mesi
sub_semiannual_8Semestrale - 8 DispositiviSemiannual - 8 Devices€191,99/6 mesi
sub_semiannual_9Semestrale - 9 DispositiviSemiannual - 9 Devices€215,99/6 mesi
sub_semiannual_10Semestrale - 10 DispositiviSemiannual - 10 Devices€239,99/6 mesi

Annuali (-40%)​

Product IDDisplay Name (IT)Display Name (EN)Prezzo
sub_annual_1Annuale - 1 DispositivoAnnual - 1 Device€35,99/anno
sub_annual_2Annuale - 2 DispositiviAnnual - 2 Devices€71,99/anno
sub_annual_3Annuale - 3 DispositiviAnnual - 3 Devices€107,99/anno
sub_annual_4Annuale - 4 DispositiviAnnual - 4 Devices€143,99/anno
sub_annual_5Annuale - 5 DispositiviAnnual - 5 Devices€179,99/anno
sub_annual_6Annuale - 6 DispositiviAnnual - 6 Devices€215,99/anno
sub_annual_7Annuale - 7 DispositiviAnnual - 7 Devices€251,99/anno
sub_annual_8Annuale - 8 DispositiviAnnual - 8 Devices€287,99/anno
sub_annual_9Annuale - 9 DispositiviAnnual - 9 Devices€323,99/anno
sub_annual_10Annuale - 10 DispositiviAnnual - 10 Devices€359,99/anno

Piani Bulk (Solo Stripe)​

Per utenti con 11+ dispositivi, redirect al sito web con Stripe:

Product IDDisplay NamePrezzo
sub_monthly_bulkMensile - Per dispositivo€3,99/dispositivo/mese
sub_semiannual_bulkSemestrale - Per dispositivo€19,99/dispositivo/6 mesi
sub_annual_bulkAnnuale - Per dispositivo€29,99/dispositivo/anno
Nelle app iOS/Android

Mostrare per 11+ dispositivi:

"Hai piΓΉ di 10 dispositivi? Abbonati dal sito web"


Configurazione per Piattaforma​

iOS (App Store Connect)​

Monetizzazione β†’ Abbonamenti β†’ + Crea
β”œβ”€β”€ ID prodotto: sub_monthly_1
β”œβ”€β”€ Nome riferimento: Mensile - 1 Dispositivo
β”œβ”€β”€ Gruppo abbonamenti: Visla GPS
└── Prezzi β†’ €4,99

Android (Play Console)​

Monetizza β†’ Prodotti β†’ Abbonamenti β†’ + Crea
β”œβ”€β”€ ID prodotto: sub_monthly_1
β”œβ”€β”€ Nome: Mensile - 1 Dispositivo
β”œβ”€β”€ Piano base ID: sub_monthly_1_base
└── Prezzo: €4,99

Stripe​

// Crea prodotto
const product = await stripe.products.create({
id: 'sub_monthly_1',
name: 'Mensile - 1 Dispositivo',
});

// Crea prezzo
const price = await stripe.prices.create({
product: 'sub_monthly_1',
unit_amount: 499,
currency: 'eur',
recurring: { interval: 'month' },
});

Database Schema​

CREATE TABLE subscriptions (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL,
product_id VARCHAR(50) NOT NULL, -- es: sub_monthly_3
provider VARCHAR(20) NOT NULL, -- 'stripe', 'apple', 'google'
status VARCHAR(20) NOT NULL,
devices INTEGER NOT NULL,
current_period_end TIMESTAMP,
created_at TIMESTAMP DEFAULT NOW()
);

Parsing Product ID (Backend)​

def parse_product_id(product_id: str) -> dict:
"""
Parse product_id in devices and period.

Example: 'sub_monthly_3' β†’ {'period': 'monthly', 'devices': 3}
"""
parts = product_id.split('_')
if len(parts) != 3:
raise ValueError(f"Invalid product_id: {product_id}")

period = parts[1] # 'monthly', 'semiannual', 'annual'
devices_str = parts[2]

if devices_str == 'bulk':
return {'period': period, 'devices': None, 'is_bulk': True}

return {'period': period, 'devices': int(devices_str), 'is_bulk': False}

Checklist Implementazione​

  • Creare 30 prodotti su App Store Connect (iOS)
  • Creare 30 prodotti su Play Console (Android)
  • Creare 30 prodotti + 3 bulk su Stripe
  • Aggiornare StoreManager.swift con nuovi ID
  • Aggiornare BillingManager.kt con nuovi ID
  • Aggiornare frontend web con nuovi ID
  • Testare acquisti su tutte le piattaforme