Inicio rápido
De cero a tu primera llamada a la API en menos de 5 minutos. Al final vas a tener una tienda funcionando con productos que podés consultar vía API.
Paso 0 — Cloná el starter kit (recomendado)
El starter kit es un proyecto Next.js con catálogo, carrito y checkout ya conectados a TiendaAPI. Lo clonás, pegás tu API key y lo modificás con tu IA favorita.
git clone https://github.com/vercel/next.js tiendaapi-starter && cd tiendaapi-starter/examples/with-stripe-typescript
cp .env.example .env.local
# Editá .env.local y pegá tu API key como TIENDAAPI_KEY
pnpm install
pnpm devRepo: https://github.com/vercel/next.js/tree/canary/examples/with-stripe-typescript
curl. También podés usar el playground interactivo.Requisitos previos
- Una cuenta en TiendaAPI (o una instalación local)
- Tu API key (empieza con
ta_) — se entrega cuando se crea tu tienda
Pasos
Obtené tu API key
Cuando se crea tu tienda, recibís una API key. Esta clave identifica tu tienda en cada request. Guardala segura — tratala como una contraseña.
# Tu API key tiene este formato:
ta_abc123def456ghi789jkl012mno345pqr678stu901vwxpnpm db:seed para crear una tienda de demo. El script imprime la API key en la terminal.Listá tus productos
Hacé tu primera llamada a la API para listar productos. Pasá tu API key en el header x-api-key.
curl -s http://localhost:3000/api/store/products \
-H "x-api-key: YOUR_API_KEY" | jqRespuesta:
{
"data": [
{
"id": "550e8400-...",
"name": "Remera negra clásica",
"slug": "remera-negra-clasica",
"price": 2500,
"images": ["https://placehold.co/600x600/1a1a1a/ffffff?text=Remera"],
"isActive": true
}
],
"meta": {
"has_more": true,
"cursor": "550e8400-...",
"count": 20,
"limit": 20
}
}Obtené un producto específico
Buscá un producto por su slug (nombre amigable para URLs).
curl -s http://localhost:3000/api/store/products/remera-negra-clasica \
-H "x-api-key: YOUR_API_KEY" | jqRespuesta:
{
"data": {
"id": "550e8400-...",
"name": "Remera negra clásica",
"slug": "remera-negra-clasica",
"description": "Remera cómoda de algodón orgánico 100%.",
"price": 2500,
"comparePrice": 3500,
"images": ["https://..."],
"isActive": true,
"metadata": {},
"createdAt": "2026-04-03T10:00:00.000Z"
}
}Creá un carrito
Creá un carrito vacío. Vas a recibir un token para identificarlo.
curl -s -X POST http://localhost:3000/api/store/cart \
-H "x-api-key: YOUR_API_KEY" | jqRespuesta:
{
"data": {
"id": "660e8400-...",
"token": "cart_abc123def456..."
}
}token en una cookie o localStorage. Lo vas a necesitar para todas las operaciones del carrito.Agregá un producto al carrito
Agregá un producto usando el token del carrito y el ID del producto.
curl -s -X POST http://localhost:3000/api/store/cart/CART_TOKEN/items \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"productId": "PRODUCT_ID", "quantity": 2}'El precio queda fijado al momento de agregar — si el precio del producto cambia después, el ítem del carrito mantiene el precio original.
Consultá el carrito
Obtenés el carrito completo con ítems, detalles de productos y subtotal.
curl -s http://localhost:3000/api/store/cart/CART_TOKEN \
-H "x-api-key: YOUR_API_KEY" | jqRespuesta:
{
"data": {
"id": "660e8400-...",
"token": "cart_abc123...",
"status": "active",
"items": [
{
"id": "...",
"productId": "550e8400-...",
"productName": "Remera negra clásica",
"quantity": 2,
"priceAtAdd": 2500,
"productImages": ["https://..."]
}
],
"subtotal": 5000,
"itemCount": 2
}
}Creá una sesión de checkout
Enviá el token del carrito, el email del cliente y la dirección de envío para crear una sesión de Stripe Checkout. Redirigí al cliente a la URL devuelta.
curl -s -X POST http://localhost:3000/api/store/checkout \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"cartToken": "cart_abc123...",
"email": "cliente@ejemplo.com",
"shippingAddress": {
"name": "Juan Pérez",
"line1": "Av. Corrientes 1234",
"city": "Buenos Aires",
"state": "CABA",
"postalCode": "C1043",
"country": "AR"
}
}'Respuesta:
{
"data": {
"checkout_url": "https://checkout.stripe.com/c/pay/cs_test_..."
}
}¿Qué pasa después?
- El cliente paga en Stripe Checkout
- Stripe envía el webhook
checkout.session.completeda tu servidor - TiendaAPI crea el pedido automáticamente (idempotente — seguro contra duplicados)
- El cliente es redirigido a la página de confirmación del pedido
- Se envía el email de confirmación (si Resend está configurado)
Próximos pasos
- Conceptos clave — Entendé autenticación, multi-tenancy y paginación
- Guías prácticas — Aprendé a gestionar productos, webhooks y más
- Referencia de API — Explorá todos los endpoints en el playground interactivo