Créer un groupe d'abonnements iOS
Copiez un prompt de configuration avec les étapes d'installation et le guide Markdown complet pour ce plugin.
Les groupes de souscriptions sont essentiels pour organiser et gérer plusieurs niveaux de souscription dans votre application iOS. Comprendre comment ils fonctionnent est crucial pour mettre en œuvre la fonctionnalité d'amélioration, de dégradation et de croisement.
Qu'est-ce qu'un Groupe de Souscription ?
Sous-titre « Qu'est-ce qu'un Groupe de Souscription ? »Un groupe de souscription est une collection de souscriptions liées que les utilisateurs peuvent choisir entre. Les utilisateurs ne peuvent souscrire qu'à une souscription au sein d'un groupe à la fois. Lorsqu'ils changent de souscription, Apple gère la transition automatiquement.
Pourquoi les Groupes de Souscriptions sont-ils importants ?
Pourquoi les groupes d'abonnements comptentLes groupes de souscriptions permettent :
- Tarification échelonnée : Offrir des plans de base, premium et ultime
- Diverses durées: Options mensuelles, annuelles et à vie
- Logique de mise à niveau/diminution: Gestion automatique des changements de souscription
- Gestion simplifiée: Regrouper les souscriptions liées
Niveaux de souscription
Sous-titre « Niveaux de souscription »Dans un groupe, chaque abonnement doit être classé par ordre décroissant de valeur (niveau 1 en haut). Cette classification détermine comment les changements d'abonnement sont catégorisés :

Exemples de niveau
Sous-titre « Exemples de niveau »Niveau 1 (Valeur la plus élevée)
- Niveau Premium Annuel (99,99 €/an)
- Niveau Élité Mensuel (19,99 €/mois)
Niveau 2 (Valeur moyenne)
- Niveau Standard Annuel (49,99 €/an)
- Niveau Premium Mensuel (9,99 €/mois)
Niveau 3 (Valeur la plus basse)
- Niveau Basique Annuel (29,99 €/an)
- Niveau Standard Mensuel (4,99 €/mois)
Types de changements de souscription
Section intitulée “Types de changements de souscription”Apple gère automatiquement trois types de changements de souscription en fonction du niveau de classement :
1. Mise à niveau
Section intitulée “1. Mise à niveau”Passage à un higher-tier abonnement (par exemple, niveau 2 → niveau 1).
Prend effet
- immédiatement immediately
- L'utilisateur reçoit remboursement partiel pour le temps restant
- La nouvelle souscription commence immédiatement
Exemple :
// User currently has: Standard Monthly (Level 2)// User upgrades to: Premium Annual (Level 1)// Result: Immediate access to Premium, refund for unused Standard time2. Réduire
Titre de la section « 2. Réduire »Passer à un lower-tier abonnement (par exemple, niveau 1 → niveau 2).
Prend effet à
- Remboursement partiel pour le temps restant date de renouvellement suivante
- User keeps current subscription until period ends
- Une nouvelle souscription commence automatiquement après expiration
Exemple :
// User currently has: Premium Annual (Level 1)// User downgrades to: Standard Monthly (Level 2)// Result: Premium access continues until annual renewal date, then switches3. Mise à niveau
Section intitulée « 3. Crossgrade »Passer à une autre souscription au même niveau de tarification.
Le comportement dépend de la durée :
Durée différente → Comporte le comportement Réduire
- Prend effet à la date de renouvellement suivante
- Exemple : Abonnement mensuel Premium (Niveau 1) → Abonnement annuel Premium (Niveau 1)
Même Durée → Comporte les mêmes caractéristiques que Augmenter
- Prend effet immédiatement
- Exemple : Abonnement mensuel Premium (Niveau 1) → Abonnement mensuel Ultimate (Niveau 1)
Créer un groupe d'abonnements
Section intitulée « Créer un groupe d'abonnements »-
Navigation vers les abonnements
Dans App Store Connect, sélectionnez votre application et allez à Monétiser > Abonnements.
-
Créer un groupe
Cliquez + sur « Groupe d'abonnements » pour créer un nouveau groupe.
-
Dénommez le groupe
Choisissez un nom descriptif qui reflète les abonnements qu'il contient :
- « Accès Premium »
- « Plans de stockage Cloud »
- « Fonctionnalités Pro »
-
Ajoutez des abonnements
Après avoir créé le groupe, ajoutez des abonnements individuels à celui-ci. Chaque abonnement aura un classement de niveau.
-
Définissez les classements de niveau
Organisez les abonnements par valeur la plus élevée (1) à la valeur la plus basse. Considérez :
- Plans annuels sont généralement classés plus élevés que mensuels
- Higher-priced tiers rank above lower-priced ones
- Les niveaux ultimes/premières sont classés en haut
Utilisation dans votre application
Utilisation dans votre applicationLe plugin native-purchases gère automatiquement la logique de groupe d'abonnements :
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Fetch all subscriptions in a groupconst { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly', 'premium_annual', 'ultimate_monthly'], productType: PURCHASE_TYPE.SUBS,});
// Display current subscription using StoreKit transactionsconst { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS,});
const activeSubs = purchases.filter((purchase) => purchase.isActive);
// Detect pending downgrade/cancellation (StoreKit sets willCancel === true)const pendingChange = purchases.find((purchase) => purchase.willCancel === true);if (pendingChange) { console.log('Subscription will stop auto-renewing on', pendingChange.expirationDate);}
// Purchase (StoreKit handles upgrades/downgrades automatically)await NativePurchases.purchaseProduct({ productIdentifier: 'premium_annual', productType: PURCHASE_TYPE.SUBS,});
// Listen for StoreKit updates (fires on upgrades/downgrades/refunds)NativePurchases.addListener('transactionUpdated', (transaction) => { console.log('Subscription updated:', transaction);});Gestion des changements d'abonnement
Sous-section intitulée « Gestion des changements d'abonnement »Détection du type de changement
Détection du type de changementimport { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Get current subscription infoconst { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS,});
const currentSubscription = purchases.find( (purchase) => purchase.subscriptionState === 'subscribed',);
if (currentSubscription) { // StoreKit reports if user cancelled auto-renew if (currentSubscription.willCancel) { console.log( `User cancelled. Access remains until ${currentSubscription.expirationDate}`, ); }
if (currentSubscription.isUpgraded) { console.log('User recently upgraded to this plan.'); }}
// Listen for automatic upgrades/downgradesNativePurchases.addListener('transactionUpdated', (transaction) => { console.log('Subscription changed!', transaction); if (transaction.subscriptionState === 'revoked') { revokeAccess(); } else if (transaction.isActive) { unlockPremiumFeatures(); }});Communication avec l'utilisateur
Communication de l'utilisateurCommuniquez toujours clairement le comportement de changement :
Pour les mises à jour :
« Vous obtiendrez un accès immédiat aux fonctionnalités Premium. Nous proratiserons votre abonnement actuel. »
Pour les dégradations :
« Vous conserverez l'accès Premium jusqu'à la date de renouvellement, puis vous passerez à Standard. »
Pour les croisades :
« Votre plan changera à la facturation annuelle à la prochaine renouvellement le [date]. »
Surveillance du serveur
Section intitulée « Surveillance du serveur »Utilisez les notifications du serveur d'Apple Store v2 ou votre propre backend de validation de récépissé pour refléter les modifications de StoreKit dans votre base de données. Associez les notifications du serveur avec le transactionUpdated écouteur afin que le client et le backend restent synchronisés.
Meilleures Pratiques
Organisation des GroupesSection intitulée « Organisation des Groupes »
Gardez les abonnements liés dans le même groupe- Garder les abonnements liés dans le même groupe
- Créez des groupes séparés pour différents ensembles de fonctionnalités
- Créez des groupes séparés pour différents ensembles de fonctionnalités
Stratégie de classement de niveau
Stratégie de classement de niveau- Plans annuels → Niveau supérieur que les plans mensuels (pour le même niveau)
- Niveaux plus élevés → Niveau supérieur
- Considérez la valeur, pas seulement le prix
Expérience de l'utilisateur
Section intitulée « Expérience de l'utilisateur »- Afficher clairement la souscription actuelle
- Afficher toutes les options disponibles dans le groupe
- Indiquer les changements immédiats par rapport à la renouvellement
- Permettre un changement facile entre les plans
- Testez tous les scénarios d'amélioration
- Tester tous les scénarios de dégradation
- Vérifiez le comportement de promotion croisée
- Vérifiez l'envoi de la notification webhook
Scénarios courants
Section intitulée « Scénarios courants »Scénario 1 : Plans mensuels à trois niveaux
Section intitulée « Scénario 1 : Plans mensuels à trois niveaux »Level 1: Ultimate Monthly ($19.99)Level 2: Premium Monthly ($9.99)Level 3: Basic Monthly ($4.99)- De base → Premium : Mise à niveau (immédiate)
- Premium → Ultimate : Mise à niveau (immédiate)
- Ultimate → Premium : Degrader (à la renouvellement)
- De base → Ultimate : Mise à niveau (immédiate)
Scénario 2 : Plans de durées mixtes
Titre de la section “Scénario 2 : Plans de durée mixtes”Level 1: Premium Annual ($99.99/year)Level 2: Premium Monthly ($9.99/month)- Mois → Annuel : Promotion croisée (à la renouvellement)
- Annuel → Mois : Degrader (à la renouvellement)
Étude de cas 3 : Multi-niveau Multi-durée
Titre de la section “Étape 3 : Abonnements multi-niveaux multi-durée”Level 1: Ultimate Annual ($199/year)Level 2: Ultimate Monthly ($19.99/month)Level 3: Premium Annual ($99/year)Level 4: Premium Monthly ($9.99/month)Level 5: Basic Annual ($49/year)Level 6: Basic Monthly ($4.99/month)Cette configuration offre une grande flexibilité tout en maintenant une logique d'actualisation/diminution claire.
Troubleshooting
Résolution de problèmesTitre de la section « Aide »
- Vérifiez qu'il est affecté au groupe correct
- Vérifiez qu'il est au moins en état « Prêt à soumettre »
- Assurez-vous que l'ID du produit est correct
Comportement d'upgrade/dégrade incorrect :
- Classement de niveau de revue (1 = le plus élevé)
- Vérifiez que les niveaux de souscription sont logiques
- Check that levels are set correctly
Produits provenant de différents groupes :
- Les utilisateurs peuvent s'abonner à plusieurs groupes simultanément
- Cela est intentionnel - gardez les produits liés dans le même groupe
getActiveProducts montrant plusieurs abonnements :
- Vérifiez si les abonnements se trouvent dans différents groupes
- Vérifiez que l'utilisateur n'est pas abonné via le partage familial.
- Vérifiez l'état de votre abonnement dans App Store Connect
Ressources supplémentaires
Section intitulée « Ressources supplémentaires »Pour plus de détails, consultez la documentation officielle d'Apple sur les groupes d'abonnements.
Continuez de la section « Créer un groupe d'abonnement iOS »
Section intitulée « Continuez de la section « Créer un groupe d'abonnement iOS » »Si vous utilisez Créer un groupe d'abonnement iOS pour planifier l'approbation et la distribution dans les magasins, connectez-l’à En utilisant @capgo/native-purchases pour la capacité native dans En utilisant @capgo/native-purchases, @capgo/capacitor-en-revue-des-utilisateurs pour les détails d'implémentation dans @capgo/capacitor-en-revue-des-utilisateurs Utiliser @capgo/capacitor-avis de l'application pour la capacité native dans En utilisant @capgo/capacitor-en-revue-des-utilisateurs @capgo/capacitor-marché-natif pour les détails d'implémentation dans @capgo/capacitor-marché-natif, et En utilisant @capgo/capacitor-marché-natif pour la capacité native dans En utilisant @capgo/capacitor-marché-natif