Cargando…

Esto está tardando más de lo esperado.

Pruebas gratuitas y cupones

Deja que un suscriptor nuevo pruebe un plan de pago antes de pagar, y acepta códigos promocionales de Stripe en el checkout.

Dos cosas suavizan el primer pago: un periodo de prueba en todo plan de pago, y un campo de código promocional en Stripe Checkout. Ambas son interruptores en config/pricing.php, leídos del entorno, y ambas actúan sólo en el momento en que una suscripción se crea por Checkout.

Opción Variable Valor por omisión Efecto
Prueba gratuita BILLING_FREE_TRIAL_ENABLED false Las suscripciones de pago nuevas empiezan con una prueba en lugar de un cargo.
Duración de la prueba BILLING_FREE_TRIAL_DAYS 14 Días de prueba. 0 o menos deshabilita la prueba aunque esté encendida.
Cupones BILLING_COUPONS_ENABLED true Checkout muestra un campo para un código promocional.

Cómo funciona la prueba

La prueba es genérica: una sola duración para todo plan de pago, dada cuando una cuenta pasa a un plan de pago desde /account/plans por primera vez. Una cuenta nueva suele empezar en el plan gratuito, así que la prueba es lo que recibe al dejar el plan gratuito por uno de pago. Se da una vez por cuenta: una cuenta que ya tuvo una prueba, o que alguna vez pagó un plan o un complemento, se suscribe sin ella. No se configura por plan, y no es una prueba sobre el cliente que termine antes de elegir un plan.

Qué pasa, paso a paso:

  1. El usuario hace clic en Suscribirse en un plan de pago. La sesión de Checkout se crea con un trial_end de hoy más BILLING_FREE_TRIAL_DAYS. Stripe exige que esa fecha esté al menos 48 horas adelante, así que una prueba de un día se vuelve de dos.
  2. Checkout pide una tarjeta. Stripe recoge un método de pago aunque el primer pago sea cero, y el kit no cambia eso, así que una prueba nunca es sin tarjeta.
  3. La suscripción se crea en Stripe con estatus trialing, y el webhook la guarda localmente con su trial_ends_at. Desde entonces el usuario está suscrito: el plan se muestra como actual, los límites aplican, /app está abierto.
  4. Cuando la prueba termina Stripe emite la primera factura y cobra la tarjeta. Si tiene éxito el estatus pasa a active y llega invoice.paid, que es cuando se registran las recompensas de referidos y los ingresos. Si falla el estatus pasa a past_due y empieza el periodo de gracia después de un pago fallido: la pantalla de cobro muestra Pago fallido con la fecha en que termina el periodo de gracia y un botón Reintentar pago, y el plan se conserva hasta entonces. El periodo de gracia y lo que pasa cuando se acaba están en Colas y trabajo programado.

Una cuenta que deja el plan gratuito con una tarjeta ya guardada no pasa por Checkout: su suscripción cambia al plan de pago dentro de la prueba, y no se cobra nada hasta que la prueba termina. Lo mismo pasa cuando cambia a la vez el periodo de cobro.

Dónde no aplica la prueba:

  • Un plan gratuito. No hay nada que diferir, así que un precio 0 se suscribe directo.
  • Un cambio entre planes de pago. Una subida o una bajada no lleva prueba.
  • Una cuenta que ya tuvo una. Una prueba ya usada, o cualquier plan o complemento pagado antes, hace que el siguiente plan de pago se cobre de inmediato, también para un suscriptor que vuelve tras terminar su suscripción.

La prueba también cubre el arranque por complemento: cuando un usuario sin suscripción compra un complemento de pago, Checkout se abre con el plan gratuito más el complemento, y la misma prueba se aplica a esa sesión. Ver Vende complementos.

Con la prueba encendida y los planes vivos, las tarjetas de planes muestran la línea "¡Comienza con una prueba gratuita de :days días!" arriba del selector de intervalo. En /account/plans solo la ve una cuenta a la que la prueba todavía aplica, para no prometerle a nadie una prueba que no recibirá; en la página de inicio, donde no hay una cuenta a quién preguntar, se muestra siempre que la prueba está encendida.

Qué ve el usuario durante y después de la prueba

En /account/billing la etiqueta de estatus lee el estatus de Stripe, En prueba, y Próximo pago muestra la fecha en que termina la prueba, leída en vivo desde Stripe. Cancelar durante la prueba sigue la regla ordinaria, cancelar al final del periodo: Stripe termina la suscripción cuando acaba la prueba y no se cobra nada.

El kit no envía ningún correo sobre una prueba que está por terminar, y no maneja el evento customer.subscription.trial_will_end. Los recordatorios vienen de Stripe: su configuración de correos al cliente en el Dashboard incluye un correo de fin de prueba, enviado unos días antes del primer cargo; enciéndelo ahí. Un pago que necesita la autenticación del cliente es el único caso sobre el que el kit puede enviar correo, mediante CASHIER_PAYMENT_NOTIFICATION; ver Activa los planes y el cobro.

Quién está en prueba

El panel de administración no tiene filtro de prueba. Dónde se ve una prueba:

  • La página de precios de un plan, /admin/billing-plans/{id}/pricing/{country}, lista a sus suscriptores con una columna Estado; una prueba muestra trialing, y pasa a active después del primer pago.
  • La lista de usuarios cuenta una suscripción en prueba como plan actual, así que la columna Plan actual y el filtro Plan las incluyen.
  • La métrica Suscripciones creadas del tablero del panel cuenta una suscripción el día en que se creó, con prueba o sin ella. Ingresos diarios sólo cuenta facturas pagadas, así que una prueba aparece ahí el día en que se cobra por primera vez.
  • En la base de datos, subscriptions.stripe_status es trialing y subscriptions.trial_ends_at guarda la fecha de fin. En código, $subscription->onTrial().

La página de precios de un plan con sus suscriptores y su estado

Pruebas en complementos

Los complementos tienen pruebas propias, aparte de esta: define Días gratuitos de prueba en un complemento y el usuario puede pulsar Probar N días. No se pide tarjeta, el usuario recibe un aviso el día antes de que termine, y cuando termina el complemento se apaga sin cobrar nada. Una prueba por cuenta y complemento, para siempre. Un administrador también puede otorgar una desde la página del usuario con Conceder una prueba. El flujo completo está en Vende complementos; los interruptores BILLING_FREE_TRIAL_* de arriba no lo tocan.

Cupones y códigos promocionales

Con BILLING_COUPONS_ENABLED encendido, la sesión de Checkout se crea con allow_promotion_codes, y Stripe muestra un campo Agregar código promocional en la página de pago. El kit no tiene pantalla propia de cupones: crea el cupón en el Dashboard de Stripe, en Product catalog, Coupons, y dale un código promocional, que es el texto que el cliente escribe. Stripe aplica el descuento, la factura lo refleja, y el evento SubscriptionPaid lleva el monto con descuento, así que las recompensas de referidos se calculan sobre lo que realmente se pagó.

El campo aparece en los dos Checkout que un plan puede abrir: una suscripción de pago nueva, y el cambio de un plan gratuito a uno de pago sin tarjeta guardada. No se ofrece en el Checkout de complementos, y un cambio de plan que ocurre dentro de la aplicación, un intercambio entre planes de pago o un cambio de intervalo, nunca muestra Checkout y por lo tanto nunca pide un código. Apagar la opción oculta el campo; los cupones ya adjuntos a una suscripción siguen aplicando, porque viven en Stripe.

Volver