Créer un groupe d'abonnements iOS
Copiez un prompt de configuration avec les étapes d'installation et la 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 croisée de niveau.
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 seule 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 ?
Sous-titre « Pourquoi les Groupes de Souscriptions sont-ils importants ? »Les groupes de souscriptions permettent :
- Tarification échelonnée : Offrir des plans de base, premium et ultime
- Diverses durées: Options mensuels, annuels et à vie
- Logique d'augmentation/réduction: Gestion automatique des changements de souscription
- Gestion simplifiée: Regrouper les souscriptions liées
Niveaux de souscription
Section intitulée « Niveaux de souscription »Dans un groupe, chaque souscription doit être classée par ordre décroissant de valeur (niveau 1) à la valeur la plus basse. Cette classification détermine comment les changements de souscription sont classés :

Exemples de niveau
Section intitulée « Exemples de niveau »Niveau 1 (Valeur la plus élevée)
- Abonnement Premium Annuel (99,99 $ par an)
- Abonnement Ultimate Mensuel (19,99 $ par mois)
Niveau 2 (Valeur moyenne)
- Abonnement Standard Annuel (49,99 $ par an)
- Abonnement Premium Mensuel (9,99 $ par mois)
Niveau 3 (Valeur la plus basse)
- Abonnement de base Annuel (29,99 $ par an)
- Abonnement Standard Mensuel (4,99 $ par mois)
Types de changements d'abonnement
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 abonnement de niveau supérieur (par exemple, niveau 2 → niveau 1). Comportement :
Prend effet
- immédiatement L'utilisateur reçoit
- un remboursement partiel proratisé 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
Sous-section intitulée « 2. Réduire »Passer à un abonnement de niveau inférieur (par exemple, niveau 1 → niveau 2). Comportement :
Prend effet à
- la date de renouvellement suivante 2. Downgrade
- L'utilisateur conserve la souscription actuelle jusqu'à la fin de la période
- La nouvelle souscription démarre 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. Crossgrade
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 d'une désinscription
- Prend effet à la date de renouvellement suivante
- Exemple : Abonnement mensuel Premium (Niveau 1) → Abonnement annuel Premium (Niveau 1)
Durée identique → Comporte les mêmes caractéristiques que mise à niveau
- 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 »-
Naviguer vers les abonnements
Dans App Store Connect, sélectionnez votre application et allez à Monétisation > Abonnements.
-
Créer un groupe
Cliquez + sur « Groupe d'abonnements » pour créer un nouveau groupe.
-
Nommer le groupe
Choisissez un nom descriptif qui reflète les abonnements qu'il contient :
- « Accès Premium »
- « Plans de stockage Cloud »
- « Fonctionnalités Pro »
-
Ajouter des abonnements
Après avoir créé le groupe, ajoutez des abonnements individuels à celui-ci. Chaque abonnement aura un classement de niveau.
-
Définir les classements de niveau
Organisez les abonnements du niveau le plus élevé (1) au niveau le plus bas. Considérez :
- Les plans annuels sont généralement classés en haut des plans mensuels
- Les niveaux de tarification plus élevés sont classés au-dessus des niveaux de tarification moins élevés
- Les niveaux ultimes/premières classent le plus haut
Utilisation dans votre application
Section intitulée « Utilisation dans votre application »Le 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
Section intitulée « Gestion des changements d'abonnement »Détection du type de changement
Section intitulée « Détection du type de changement »import { 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 de l'utilisateur
Section intitulée « Communication de l'utilisateur »Communiquez 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 baisses de niveau :
« Vous conserverez l'accès Premium jusqu'à la date de renouvellement, puis vous passerez à Standard. »
Pour les changements de niveau :
« Votre plan changera à la facturation annuelle à la prochaine renouvellement le [date]. »
Surveillance du serveur
Section intitulée « Surveillance du serveur »Utilisez les notifications de 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 de serveur avec la transactionUpdated Écouteur afin que le client et le serveur restent synchronisés.
Meilleures Pratiques
Section intitulée « Meilleures Pratiques »Organisation du Groupe
Section intitulée « Organisation du Groupe »- Conservez les abonnements liés dans le même groupe
- N'associez pas des fonctionnalités non liées (par exemple, le stockage et la suppression des publicités)
- Créez des groupes séparés pour différents ensembles de fonctionnalités
Stratégie de Classement de Niveau
Section intitulée « Stratégie de Classement de Niveau »- Plans annuels → Niveau supérieur que les plans mensuels (pour le même niveau)
- Niveaux de tarification plus élevés → Niveau supérieur
- Prenez en compte la valeur, et non seulement le prix
Expérience de l'utilisateur
Section intitulée « Expérience de l'utilisateur »- Affichez clairement la souscription actuelle
- Affichez toutes les options disponibles dans le groupe
- Indiquez les changements qui sont immédiats par rapport à la renouvellement
- Permettez un changement facile entre les plans
- Testez tous les scénarios de mise à niveau
- Testez tous les scénarios de dégradation
- Vérifiez le comportement de croisade
- Vérifiez si le webhook est activé
Scénarios courants
Scénario 1 : Plans mensuels à trois niveauxScénario 1 : Plans mensuels à trois niveaux
Copier dans le presse-papierLevel 1: Ultimate Monthly ($19.99)Level 2: Premium Monthly ($9.99)Level 3: Basic Monthly ($4.99)- 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
Scénarios courants
Scénario 2 : Plans de durées mixtesLevel 1: Premium Annual ($99.99/year)Level 2: Premium Monthly ($9.99/month)- Mensuel → Annuel : Croissance (à la renouvellement)
- Annuel → Mensuel : Déclassement (à la renouvellement)
Scénario 3 : Multi-niveau Multi-durée
Section intitulée « Scénario 3 : Multi-niveau 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 la plus grande flexibilité tout en maintenant une logique d'amélioration/diminution claire.
Résolution des problèmes
Section intitulée « Résolution des problèmes »Abonnement ne s'affiche pas dans le groupe :
- Vérifiez qu'il est affecté au groupe correct
- Vérifiez qu'il est en au moins « Prêt à soumettre »
- Vérifiez que l'ID du produit est correct
Comportement de mise à niveau/diminution incorrect :
- Rappelez-vous les rangs de niveau (1 = le plus élevé)
- Vérifiez que les niveaux de souscription ont du sens
- Vérifiez que les niveaux sont correctement configurés
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 la partage de famille
- Rappelez-vous l'état de la souscription 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 de souscriptions.
Continuez à partir de Créer un groupe de souscription iOS
Section intitulée « Continuez à partir de Créer un groupe de souscription iOS »Si vous utilisez Créer un groupe de souscription iOS pour planifier l'approbation et la distribution dans les magasins, connectez-l’à En utilisant @capgo/achats-natifs pour la capacité native dans En utilisant @capgo/achats-natifs, @capgo/capacitor-avis-de-l'utilisateur pour les détails d'implémentation dans @capgo/capacitor-examen de la boutique En utilisant @capgo/capacitor-examen de la boutique pour la capacité native dans En utilisant @capgo/capacitor-examen de la boutique @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