Productos y Funcionalidades
Define qué vendes. Crea productos con una o más variantes y adjunta funcionalidades reutilizables para el control de acceso basado en permisos.
Proyecta Commerce utiliza tres conceptos: productos, variantes y funcionalidades.
- Producto — lo que vendes (por ejemplo: “Plan Pro”, “Camiseta”, “Consultoría Estratégica”)
- Variante — un nivel de precios o configuración de un producto (por ejemplo: “Pro Mensual $29”, “Pro Anual $290”, “Camiseta – Talla Grande”)
- Funcionalidad — una clave de permiso reutilizable que tu app verifica en tiempo de ejecución (por ejemplo:
pro_features,unlimited_projects,api_access)
Un producto puede tener múltiples variantes. Un producto también tiene uno o más recursos adjuntos — generalmente funcionalidades — que otorgan acceso cuando un cliente se suscribe.
Crear un producto
Sección titulada «Crear un producto»En Dashboard > Commerce > Products, haz clic en Create product (o pídele a la IA: "Create a Pro plan at $29/month and a Business plan at $99/month."). Cada producto necesita:
- Un nombre para mostrar (por ejemplo: “Pro”)
- Al menos una variante
Variantes
Sección titulada «Variantes»Cada variante tiene su propio precio:
| Campo | Notas |
|---|---|
name | Etiqueta de visualización de la variante (“Monthly”, “Annual”, “Large”) |
currency | Código ISO de tres letras — USD, EUR, GBP, JPY, BRL, MXN, INR… (el SDK admite más de 130) |
unit_amount | Precio en la unidad monetaria más pequeña (centavos). 2900 = $29.00 |
recurring | Opcional — { interval: 'week' | 'month' | 'year' }. Omite este campo para precios de pago único. La facturación diaria no está disponible actualmente. |
is_default | Se acepta, pero aún no se aplica — la selección de variante predeterminada no está implementada actualmente. |
media | Adjunta imágenes o videos mediante el ID de archivo del CDN (consulta Archivos) |
Los precios son inmutables. Una vez creada una variante, su precio no puede modificarse — en su lugar, crea una nueva variante. Esto protege a los suscriptores existentes de cambios de precio accidentales.
Funcionalidades (permisos)
Sección titulada «Funcionalidades (permisos)»Las funcionalidades son el elemento primitivo del control de acceso. Crea una funcionalidad una sola vez y luego adjúntala a uno o más productos.
// Create a featureconst pro = await proyecta.commerce.features.create({ name: 'Pro features', description: 'Unlocks the Pro tier capabilities', // optional custom id — lowercase alphanumeric and underscores only (e.g. 'pro_features')});Cuando creas un producto, adjuntas funcionalidades a él mediante “recursos”. Los clientes que se suscriben a un producto obtienen acceso a todas las funcionalidades adjuntas a él.
Luego, en tu app, verifica si un cliente tiene acceso:
const { has_access } = await proyecta.commerce.check({ customer_id: 'cus_123', resource_id: 'pro_features',});Nota: El
resource_iddebe ser la clave de la funcionalidad — el slug derivado del nombre de la funcionalidad (por ejemplo,pro_features), no la propiedad.iddel objeto de funcionalidad que devuelvefeatures.create().
Así es como restringes páginas, endpoints de API o funcionalidades exclusivas para usuarios Pro en el código de tu app.
Formas comunes de productos
Sección titulada «Formas comunes de productos»Suscripciones SaaS
Create products: Free ($0/month), Pro ($29/month, $290/year), Business ($99/month, $990/year).Attach a 'pro_features' feature to Pro and Business so I can gate access in my code.Productos físicos
Create a T-shirt product with three variants: Small, Medium, Large at $25 each.Productos digitales
Create a course product with a single one-time variant at $149.Donaciones
Create a donation product with three variants: $25, $50, $100 — all one-time.Inventario
Sección titulada «Inventario»Proyecta Commerce no lleva un seguimiento de inventario para productos físicos actualmente. Si vendes artículos con stock, gestiona los conteos de existencias en la base de datos de tu app y verifícalos en tu flujo de checkout.
Próximamente
Sección titulada «Próximamente»- Personalización de campos en el checkout — recopila información adicional de los compradores
- Precios de “paga lo que quieras”
- Seguimiento de inventario integrado para productos físicos