Crear Grupo de Suscripción iOS
Copie un prompt de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
Los grupos de suscripción son fundamentales para organizar y gestionar múltiples niveles de suscripción en tu aplicación iOS. Comprender cómo funcionan es crucial para implementar la funcionalidad de actualización, desactualización y crossgrade.
¿Qué es un Grupo de Suscripción?
Sección titulada “¿Qué es un Grupo de Suscripción?”Un grupo de suscripción es una colección de suscripciones relacionadas que los usuarios pueden elegir entre. Los usuarios solo pueden suscribirse a una suscripción dentro de un grupo en un momento dado. Cuando cambian de suscripción, Apple gestiona la transición automáticamente.
¿Por qué los Grupos de Suscripción Importan?
Sección titulada “¿Por qué los Grupos de Suscripción Importan?”Los grupos de suscripción permiten:
- Precios escalonados: Ofrecer planes básicos, premium y de máximo nivel
- Diferentes duracionesOpciones mensuales, anuales y de por vida
- Lógica de actualización/descualificaciónAutomático manejo de cambios de suscripción
- Gestión simplificadaNiveles de suscripción
Niveles de suscripción
Dentro de un grupo, cada suscripción debe ser clasificada desde el valor más alto (nivel 1) hasta el valor más bajo. Esta clasificación determina cómo se clasifican los cambios de suscripción:Jerarquía de niveles de suscripción

Ejemplos de niveles
Nivel 1__CAPGO_KEEP_0__ (Valor más alto)
- Anual Premium ($99,99/año)
- Mensual Ultimate ($19,99/mes)
Nivel 2 (Valor medio)
- Anual Estándar ($49,99/año)
- Mensual Premium ($9,99/mes)
Nivel 3 (Valor más bajo)
- Anual Básico ($29,99/año)
- Mensual Estándar ($4,99/mes)
Tipos de cambios de suscripción
Sección titulada “Tipos de cambios de suscripción”Apple maneja automáticamente tres tipos de cambios de suscripción según el nivel de clasificación:
1. Actualización
Sección titulada “1. Actualización”Cambiar a una suscripción de mayor nivel (por ejemplo, nivel 2 → nivel 1). Comportamiento:
Tiene efecto
- inmediatamente El usuario recibe
- una devolución parcial refrendo para el tiempo restante
- La nueva suscripción comienza de inmediato
Ejemplo:
// User currently has: Standard Monthly (Level 2)// User upgrades to: Premium Annual (Level 1)// Result: Immediate access to Premium, refund for unused Standard time2. Descargar
Sección titulada “2. Descargar”Moviéndose a un suscripción de nivel inferior (por ejemplo, nivel 1 → nivel 2). Comportamiento:
Tiene efecto en la
- fecha de renovación siguiente Tiene efecto a partir de la
- El usuario mantiene la suscripción actual hasta que termine el período
- La nueva suscripción comienza automáticamente después de la expiración
Ejemplo:
// 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
Título de la sección “3. Crossgrade”Cambiar a otra suscripción en el mismo nivel de tarifa.
El comportamiento depende de la duración:
Diferentes Duraciones → Se comporta como descender
- Toma efecto a la próxima fecha de renovación
- Ejemplo: Suscripción mensual (Nivel 1) → Suscripción anual (Nivel 1)
Duración igual → Se comporta como actualizar
- Toma efecto inmediatamente
- Ejemplo: Suscripción Premium mensual (Nivel 1) → Suscripción Ultimate mensual (Nivel 1)
Crear un Grupo de Suscripciones
Sección titulada “Crear un Grupo de Suscripciones”-
Ir a Suscripciones
En App Store Connect, seleccione su aplicación y vaya a Monetizar > Suscripciones.
-
Crear Grupo
Haga clic + al lado de “Grupos de Suscripción” para crear un nuevo grupo.
-
Nombre del Grupo
Elige un nombre descriptivo que refleje las suscripciones que contiene:
- “Acceso Premium”
- “Planes de Almacenamiento en la Nube”
- “Características Pro”
-
Agregar Suscripciones
Después de crear el grupo, agrega suscripciones individuales a él. Cada suscripción tendrá un nivel de clasificación.
-
Establecer Clasificaciones de Nivel
Arregla las suscripciones desde el valor más alto (1) hasta el valor más bajo. Considera: __CAPGO_KEEP_0__
- Los planes anuales suelen tener un ranking más alto que los mensuales
- Los niveles de precios más altos se clasifican por encima de los más bajos
- Los niveles de precios máximos/premiun se clasifican en primer lugar
Usar en tu aplicación
Sección titulada “Usar en tu aplicación”El plugin de compras nativas maneja automáticamente la lógica de grupos de suscripción:
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);});Gestionar cambios de suscripción
Sección titulada “Gestionar cambios de suscripción”Detectar tipo de cambio
Sección titulada “Detectar tipo de cambio”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(); }});Comunicación del usuario
Título de la sección “Comunicación del usuario”Siempre comunica claramente el comportamiento de cambio:
Para actualizaciones:
“Obtendrá acceso inmediato a características Premium. Reembolsaremos su suscripción actual.”
Para descargas:
“Mantendrá acceso Premium hasta [fecha de renovación], luego se cambiará a estándar.”
Para cambios de categoría:
“Su plan cambiará a facturación anual en la próxima renovación el [fecha].”
Monitoreo del servidor
Título de la sección “Monitoreo del servidor”Utilice las notificaciones del servidor de Apple Store Notifications v2 o su propio backend de validación de recibos para reflejar los cambios de StoreKit en su base de datos. Asocie las notificaciones del servidor con el transactionUpdated escucha ambos el cliente y el backend se mantengan sincronizados.
Prácticas recomendadas
Sección titulada “Prácticas recomendadas”Organización de grupos
Sección titulada “Organización de grupos”- Mantenga las suscripciones relacionadas en el mismo grupo
- No mezcle características no relacionadas (por ejemplo, almacenamiento y eliminación de anuncios)
- Crear grupos separados para diferentes conjuntos de características
Estrategia de clasificación de niveles
Sección titulada “Estrategia de clasificación de niveles”- Planes anuales → Nivel superior que los mensuales (para la misma categoría)
- Niveles de precios más altos → Nivel superior
- Considera el valor, no solo el precio
Experiencia del usuario
Sección titulada “Experiencia del usuario”- Muestra la suscripción actual de manera clara
- Muestra todas las opciones disponibles en el grupo
- Indica qué cambios son inmediatos vs. a la renovación
- Permite cambiar fácilmente entre planes
Pruebas
Sección titulada “Pruebas”- Prueba todos los escenarios de actualización
- Prueba todos los escenarios de descenso
- Verifica el comportamiento de crossgrade
- Ver si se está disparando el webhook
Escenarios comunes
Sección titulada “Escenarios comunes”Escenario 1: Planes mensuales de tres niveles
Sección titulada “Escenario 1: Planes mensuales de tres niveles”Level 1: Ultimate Monthly ($19.99)Level 2: Premium Monthly ($9.99)Level 3: Basic Monthly ($4.99)- Básico → Premium: Actualizar (inmediato)
- Premium → Ultimate: Actualizar (inmediato)
- Ultimate → Premium: Descender (a la renovación)
- Básico → Ultimate: Actualizar (inmediato)
Escenario 2: Planes de duración mixta
Sección titulada “Escenario 2: Planes de duración mixta”Level 1: Premium Annual ($99.99/year)Level 2: Premium Monthly ($9.99/month)- Mensual → Anual: Cambiar a anual (en renovación)
- Anual → Mensual: Descender a mensual (en renovación)
Escenario 3: Multi-Nivel Multi-Duración
Sección titulada “Escenario 3: Multi-Nivel Multi-Duración”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)Esta configuración proporciona la máxima flexibilidad mientras mantiene una lógica de actualización/descualificación clara.
Solución de problemas
Sección titulada “Solución de problemas”Suscripción no aparece en el grupo:
- Verifique que esté asignado al grupo correcto
- Asegúrese de que esté en al menos el estado “Listo para enviar”
- Asegúrese de que el ID del producto sea correcto
Comportamiento de actualización/descualificación incorrecto:
- Revisar clasificaciones de nivel (1 = más alto)
- Verificar que los niveles de suscripción tengan sentido
- Compruebe que los niveles estén configurados correctamente
Productos de diferentes grupos:
- Los usuarios pueden suscribirse a múltiples grupos simultáneamente
- Esto es intencional - mantenga los productos relacionados en el mismo grupo
getActiveProducts muestra múltiples suscripciones:
- Compruebe si las suscripciones están en diferentes grupos
- Verifique que el usuario no esté suscrito a través de Family Sharing
- Revisar el estado de la suscripción en App Store Connect
Recursos Adicionales
Sección titulada “Recursos Adicionales”Para obtener más detalles, consulte la documentación oficial de Apple sobre grupos de suscripción.
Siga adelante desde Crear Grupo de Suscripción iOS
Sección titulada “Siga adelante desde Crear Grupo de Suscripción iOS”Si está utilizando Crear Grupo de Suscripción iOS para planificar la aprobación y distribución de la tienda, conecte Usando @capgo/native-purchases para la capacidad nativa en Usando @capgo/native-purchases, @capgo/capacitor-revisión en la tienda para el detalle de implementación en @capgo/capacitor-revisión-en-aplicación, Usando @capgo/capacitor-revisión-en-aplicación para la capacidad nativa en Usando @capgo/capacitor-revisión-en-aplicación, @capgo/capacitor-mercado-nativo para el detalle de implementación en @capgo/capacitor-mercado-nativo, y Usando @capgo/capacitor-mercado-nativo para la capacidad nativa en Usando @capgo/capacitor-mercado-nativo.