Aplica cualquier Offer compatible directamente para campañas, retención y experimentos.
Una Promotional Offer es una Offer aplicada directamente mediante offerId. Promotional describe el canal de aplicación, no otro recurso de catálogo ni un purpose.
La Offer permanece independiente de planes y precios hasta que tu integración la selecciona.
Las Offers directas pueden combinar una prueba gratuita con fases ordenadas de descuento o precio fijo:
const retentionOffer = await commet.offers.create({
name: 'Volver a Pro',
phases: [
{ type: 'free_trial', durationDays: 7 },
{ type: 'fixed_price', durationCycles: 2, prices: [
{ currency: 'usd', amount: 2900 },
{ currency: 'ars', amount: 3990000 },
] },
{ type: 'percentage', durationCycles: null, percentage: 2000 },
],
})Las fases específicas por moneda deben tener un valor explícito para la moneda del checkout. Commet no reutiliza silenciosamente un monto en USD para otra moneda.
await commet.subscriptions.create({
customerId: 'user_123',
planCode: 'pro',
offerId: retentionOffer.id,
})La Offer debe estar activa, dentro de su ventana de disponibilidad y poder resolverse en la moneda seleccionada. No necesita una asociación previa con el plan ni con el precio.
Un offerId explícito reemplaza la selección introductoria automática. No puede combinarse con promoCode, customTrialDays ni skipTrial: true.
Los cambios inmediatos de plan, sus previews y los flujos de reactivación compatibles también aceptan offerId. Los cambios de plan programados no aceptan una Offer.
Usá offerId directo cuando tu aplicación decide quién recibe las condiciones. Usá un Promo Code cuando el customer deba ingresar un código y la campaña necesite restricciones de canje.
Un Promo Code solo puede referenciar una Offer con una fase percentage o amount_off. Las Offers con varias fases, trials o fixed_price siguen disponibles para aplicación directa.
¿Cómo está esta guía?