Strategia Abbonamenti - Finale
Questa documentazione descrive la strategia definitiva per i Product IDs degli abbonamenti Visla GPS su tutte le piattaforme.
Panoramicaβ
| Piattaforma | Dispositivi | Metodo |
|---|---|---|
| iOS | 1-10 | In-App Purchase (StoreKit 2) |
| Android | 1-10 | Google Play Billing |
| Web | 1-10 | Stripe |
| Web | 11+ | 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}
| Componente | Valori |
|---|---|
sub_ | Prefisso fisso |
{period} | monthly, semiannual, annual |
{devices} | 1 - 10 oppure bulk |
Tutti i 30 Abbonamentiβ
Mensiliβ
| Product ID | Display Name (IT) | Display Name (EN) | Prezzo |
|---|---|---|---|
sub_monthly_1 | Mensile - 1 Dispositivo | Monthly - 1 Device | β¬4,99/mese |
sub_monthly_2 | Mensile - 2 Dispositivi | Monthly - 2 Devices | β¬9,99/mese |
sub_monthly_3 | Mensile - 3 Dispositivi | Monthly - 3 Devices | β¬14,99/mese |
sub_monthly_4 | Mensile - 4 Dispositivi | Monthly - 4 Devices | β¬19,99/mese |
sub_monthly_5 | Mensile - 5 Dispositivi | Monthly - 5 Devices | β¬24,99/mese |
sub_monthly_6 | Mensile - 6 Dispositivi | Monthly - 6 Devices | β¬29,99/mese |
sub_monthly_7 | Mensile - 7 Dispositivi | Monthly - 7 Devices | β¬34,99/mese |
sub_monthly_8 | Mensile - 8 Dispositivi | Monthly - 8 Devices | β¬39,99/mese |
sub_monthly_9 | Mensile - 9 Dispositivi | Monthly - 9 Devices | β¬44,99/mese |
sub_monthly_10 | Mensile - 10 Dispositivi | Monthly - 10 Devices | β¬49,99/mese |
Semestrali (-20%)β
| Product ID | Display Name (IT) | Display Name (EN) | Prezzo |
|---|---|---|---|
sub_semiannual_1 | Semestrale - 1 Dispositivo | Semiannual - 1 Device | β¬23,99/6 mesi |
sub_semiannual_2 | Semestrale - 2 Dispositivi | Semiannual - 2 Devices | β¬47,99/6 mesi |
sub_semiannual_3 | Semestrale - 3 Dispositivi | Semiannual - 3 Devices | β¬71,99/6 mesi |
sub_semiannual_4 | Semestrale - 4 Dispositivi | Semiannual - 4 Devices | β¬95,99/6 mesi |
sub_semiannual_5 | Semestrale - 5 Dispositivi | Semiannual - 5 Devices | β¬119,99/6 mesi |
sub_semiannual_6 | Semestrale - 6 Dispositivi | Semiannual - 6 Devices | β¬143,99/6 mesi |
sub_semiannual_7 | Semestrale - 7 Dispositivi | Semiannual - 7 Devices | β¬167,99/6 mesi |
sub_semiannual_8 | Semestrale - 8 Dispositivi | Semiannual - 8 Devices | β¬191,99/6 mesi |
sub_semiannual_9 | Semestrale - 9 Dispositivi | Semiannual - 9 Devices | β¬215,99/6 mesi |
sub_semiannual_10 | Semestrale - 10 Dispositivi | Semiannual - 10 Devices | β¬239,99/6 mesi |
Annuali (-40%)β
| Product ID | Display Name (IT) | Display Name (EN) | Prezzo |
|---|---|---|---|
sub_annual_1 | Annuale - 1 Dispositivo | Annual - 1 Device | β¬35,99/anno |
sub_annual_2 | Annuale - 2 Dispositivi | Annual - 2 Devices | β¬71,99/anno |
sub_annual_3 | Annuale - 3 Dispositivi | Annual - 3 Devices | β¬107,99/anno |
sub_annual_4 | Annuale - 4 Dispositivi | Annual - 4 Devices | β¬143,99/anno |
sub_annual_5 | Annuale - 5 Dispositivi | Annual - 5 Devices | β¬179,99/anno |
sub_annual_6 | Annuale - 6 Dispositivi | Annual - 6 Devices | β¬215,99/anno |
sub_annual_7 | Annuale - 7 Dispositivi | Annual - 7 Devices | β¬251,99/anno |
sub_annual_8 | Annuale - 8 Dispositivi | Annual - 8 Devices | β¬287,99/anno |
sub_annual_9 | Annuale - 9 Dispositivi | Annual - 9 Devices | β¬323,99/anno |
sub_annual_10 | Annuale - 10 Dispositivi | Annual - 10 Devices | β¬359,99/anno |
Piani Bulk (Solo Stripe)β
Per utenti con 11+ dispositivi, redirect al sito web con Stripe:
| Product ID | Display Name | Prezzo |
|---|---|---|
sub_monthly_bulk | Mensile - Per dispositivo | β¬3,99/dispositivo/mese |
sub_semiannual_bulk | Semestrale - Per dispositivo | β¬19,99/dispositivo/6 mesi |
sub_annual_bulk | Annuale - 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.swiftcon nuovi ID - Aggiornare
BillingManager.ktcon nuovi ID - Aggiornare frontend web con nuovi ID
- Testare acquisti su tutte le piattaforme