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 croisage.
Qu'est-ce qu'un Groupe de Souscription?
Section intitulée « 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 d'Abonnements sont Importants
Section intitulée « Pourquoi les Groupes d'Abonnements sont Importants »Les groupes d'abonnements permettent :
- Tarification Échelonnée: Proposez des plans de base, premium et ultime
- Différentes durées: Options mensuelles, annuelles et à vie
- Logique de mise à niveau/diminution: Gestion automatique des changements d'abonnements
- Gestion Simplifiée: Groupez les abonnements liés ensemble
Niveaux d'Abonnement
Niveaux de souscriptionDans un groupe, chaque souscription devrait être classée du niveau le plus élevé (niveau 1) au niveau le plus bas. Cette classification détermine comment les changements de souscription sont classés :

Exemples de niveau
Niveau 1(Valeur la plus élevée) Annuel Premium (99,99 $ par an)
- Mensuel Ultimate (19,99 $ par mois)
- Niveau 2
(Valeur moyenne) Annuel Standard (49,99 $ par an)
- Exemples de niveau
- Abonnement mensuel Premium ($9.99/mois)
Niveau 3 (Valeur la plus basse)
- Abonnement annuel de base ($29.99/an)
- Abonnement mensuel standard ($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 classement des niveaux :
1. Mise à niveau
Section intitulée “1. Mise à niveau”Passer à un niveau supérieur abonnement (par exemple, niveau 2 → niveau 1).
Comportement :
- Prend effet immédiatement
- L'utilisateur reçoit un remboursement partiel pour le temps restant
- Un nouveau abonnement commence aussitôt
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. Downgrade
Section intitulée “2. Downgrade”Passer à un abonnement de niveau inférieur (par exemple, niveau 1 → niveau 2). Comportement : Prend effet à la date de renouvellement suivante
L'utilisateur conserve son abonnement actuel jusqu'à la fin de la période
- Un nouveau abonnement commence automatiquement après expiration Exemple :
- Copier dans le presse-papier
- 3. Crossgrade
Section intitulée “3. Crossgrade”
// User currently has: Premium Annual (Level 1)// User downgrades to: Standard Monthly (Level 2)// Result: Premium access continues until annual renewal date, then switchesTakes effect at
User keeps current subscription until period endsPasser à une autre abonnement au même niveau de tarification.
Le comportement dépend de la durée :
Durée différente → Comporte le même comportement que dégrader
- Prend effet à la date de renouvellement suivante
- Exemple : Abonnement mensuel Premium (Niveau 1) → Abonnement annuel Premium (Niveau 1)
Même Durée → Comporte le même comportement 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 »-
Naviguez vers les abonnements
Dans App Store Connect, sélectionnez votre application et allez à Monétiser > Abonnements.
-
Créer un groupe
Cliquez + à côté de « 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 niveau de classement.
-
Définir les Classements de Niveau
Organisez les abonnements de la valeur la plus élevée (1) à la valeur la plus basse. Considérez :
- Les plans annuels sont généralement classés plus haut que les plans mensuels
- Les niveaux de tarification les plus élevés se situent au-dessus des niveaux de tarification les moins élevés
- Les niveaux ultimes/premières sont classés en haut
Utilisation dans Votre Application
Sous-section intitulée “Utilisation dans Votre Application”Le plugin de ventes natives 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 avec l'utilisateur
Section intitulée « Communication avec 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 dégradations :
Vous continuerez d'avoir accès à la version Premium jusqu'à [date de renouvellement], puis vous passerez à la version Standard.
Pour les Crossgrades :
Votre plan sera changé en facturation annuelle à la prochaine renouvellement le [date].
Surveillance du serveur
Section intitulée « Surveillance du serveur »Utilisez les notifications de serveur de l'App Store de Apple 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 à l'écouteur afin que le client et le backend restent synchronisés. transactionUpdated Meilleures Pratiques
Section intitulée « Meilleures Pratiques »
Organisation de groupeSection intitulée « Organisation de groupe »
Gardez les abonnements liés dans le même groupe- Vous continuerez d'avoir accès à la version Premium jusqu'à __CAPGO_KEEP_0__ , puis vous passerez à la version Standard.
- Ne mêlez pas les fonctionnalités non liées (par exemple, stockage et 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 plus chers → Niveau supérieur
- Considérez la valeur, pas seulement le prix
Expérience de l'utilisateur
Section intitulée « Expérience de l'utilisateur »- Affichez clairement l'abonnement actuel
- Affichez toutes les options disponibles dans le groupe
- Indiquez lesquelles des modifications sont immédiates par rapport à la renouvellement
- Permettre un changement facile entre les plans
- Tester tous les scénarios de mise à niveau
- Tester tous les scénarios de dégradation
- Vérifier le comportement de croisade
- Vérifier l'envoi de 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)- Basic → Premium : Mise à niveau (immédiate)
- Premium → Ultimate : Mise à niveau (immédiate)
- Ultimate → Premium : Degrader (à la renouvellement)
- Basic → Ultimate : Mise à niveau (immédiate)
Scénario 2 : Plans de durée mixtes
Section intitulée “Scénario 2 : Plans de durée mixtes”Level 1: Premium Annual ($99.99/year)Level 2: Premium Monthly ($9.99/month)- Mensuel → Annuel : Croiser (à la renouvellement)
- Annuel → Mensuel : Degrader (à 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 »
- Assurez-vous que l'ID du produit est correct
Comportement d'amélioration/diminution incorrect :
- Vérifiez que les classements de niveau sont corrects (1 = le plus élevé)
- Vérifiez que les niveaux de souscription sont sensés
- 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 - garder les produits liés dans le même groupe
getActiveProducts affichant plusieurs abonnements :
- Vérifiez si les abonnements sont dans des groupes différents
- Vérifiez que l'utilisateur n'est pas abonné via la partage familial
- Vérifiez l'état d'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'abonnement.
Continuez depuis la création du groupe d'abonnement iOS
Section intitulée « Continuez depuis la création du groupe d'abonnement iOS »Si vous utilisez Créer un groupe d'abonnements iOS pour planifier l'approbation et la distribution de l'application, connectez-le avec Utiliser @capgo/native-purchases pour la capacité native dans Utiliser @capgo/native-purchases, @capgo/capacitor-examen-de-produit-intérieur pour le détail d'implémentation dans @capgo/capacitor-examen-de-produit-intérieur, Utiliser @capgo/capacitor-examen-de-produit-intérieur pour la capacité native dans Utiliser @capgo/capacitor-examen-de-produit-intérieur, @capgo/capacitor-marché-natif pour le détail d'implémentation dans @capgo/capacitor-marché-natif, et Utiliser @capgo/capacitor-marché-natif pour la capacité native dans l'utilisation de @capgo/capacitor-native-market.