Ir al contenido

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.

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

Cada variante tiene su propio precio:

CampoNotas
nameEtiqueta de visualización de la variante (“Monthly”, “Annual”, “Large”)
currencyCódigo ISO de tres letras — USD, EUR, GBP, JPY, BRL, MXN, INR… (el SDK admite más de 130)
unit_amountPrecio en la unidad monetaria más pequeña (centavos). 2900 = $29.00
recurringOpcional — { interval: 'week' | 'month' | 'year' }. Omite este campo para precios de pago único. La facturación diaria no está disponible actualmente.
is_defaultSe acepta, pero aún no se aplica — la selección de variante predeterminada no está implementada actualmente.
mediaAdjunta 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.

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 feature
const 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_id debe ser la clave de la funcionalidad — el slug derivado del nombre de la funcionalidad (por ejemplo, pro_features), no la propiedad .id del objeto de funcionalidad que devuelve features.create().

Así es como restringes páginas, endpoints de API o funcionalidades exclusivas para usuarios Pro en el código de tu app.

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.

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.

  • 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