Skip to main content
SYNTIcat es un catálogo de productos con carrito de compras y checkout por WhatsApp. Esta guía cubre variantes, carrito y órdenes.

Productos con Variantes

Las variantes permiten ofrecer un producto en diferentes tallas, colores o configuraciones.

Estructura de Variantes

Las variantes se guardan en el campo variants (JSON) de la tabla products:
{
  "variants": [
    {
      "id": "v1",
      "name": "Talla S",
      "price_modifier": 0,
      "stock": 10
    },
    {
      "id": "v2",
      "name": "Talla M",
      "price_modifier": 0,
      "stock": 15
    },
    {
      "id": "v3",
      "name": "Talla L",
      "price_modifier": 2,
      "stock": 8
    }
  ]
}

Crear Variantes

1

Edita un producto existente

Desde el dashboard de productos, haz clic en “Editar” sobre el producto que quieres variantizar.
2

Haz clic en 'Agregar variantes'

Verás un modal para configurar variantes.Tipo de variante: Talla, Color, Material, Capacidad (o personalizado)
3

Define cada variante

Ejemplo para una camisa:
NombreModificador de precioStock
S+0 REF10
M+0 REF15
L+2 REF8
XL+3 REF5
El modificador de precio se suma al precio base del producto.Ejemplo:
  • Precio base: 25 REF
  • Talla L: 25 + 2 = 27 REF
  • Talla XL: 25 + 3 = 28 REF
4

Guarda las variantes

El sistema actualiza el campo variants en la base de datos.En el catálogo público, aparece un selector de variantes antes de agregar al carrito.

Variantes Extras (Plan Anual)

Solo disponible en Plan Anual de SYNTIcat.
Permite agregar opciones adicionales con precio extra (ingredientes, personalización, etc.). Ejemplo para una torta:
{
  "extras": [
    {
      "id": "ex1",
      "name": "Mensaje personalizado",
      "price": 3
    },
    {
      "id": "ex2",
      "name": "Vela número",
      "price": 2
    }
  ]
}
El cliente puede seleccionar múltiples extras al agregar al carrito.

Sistema de Carrito

Flujo del Carrito

1

Cliente navega el catálogo

Ve productos con imágenes, precios y badges.URL pública: https://{subdomain}.syntiweb.com
2

Agrega productos al carrito

Haz clic en “Agregar al carrito” sobre un producto.Si tiene variantes, primero selecciona la variante deseada.El carrito se guarda en localStorage del navegador:
localStorage.setItem('synticat_cart', JSON.stringify(cart));
3

Drawer lateral del carrito

Al agregar un producto, se abre un drawer lateral mostrando:
  • Productos agregados
  • Cantidades
  • Subtotal por producto
  • Total general
El cliente puede:
  • Cambiar cantidad
  • Eliminar productos
  • Continuar comprando
  • Proceder al checkout
4

Procede al checkout

Haz clic en “Finalizar pedido”.Se abre un formulario con:
  • Nombre del cliente (obligatorio)
  • Teléfono (opcional)
  • Dirección de entrega (opcional)
  • Notas adicionales (opcional)

Checkout y Generación de Orden

1

Cliente completa el formulario

Ejemplo:
Nombre: María Rodríguez
Teléfono: 0412-1234567
Dirección: Av. Libertador, Chacao, Caracas
Notas: Entregar después de las 5pm
2

Envía el formulario

Endpoint:
POST /{subdomain}/checkout
Controlador: CheckoutController::store()El sistema:
  1. Valida datos del cliente
  2. Calcula total con tasa BCV actual
  3. Genera código de orden SC-XXXX (Shopping Cart)
  4. Guarda en tabla orders
  5. Retorna mensaje formateado para WhatsApp
3

Formato del código SC

Generación del código (CheckoutController.php):
$orderCode = 'SC-' . strtoupper(substr(uniqid(), -4));
// Resultado: SC-A3F9, SC-B7K2, etc.
El código es único y se usa para rastreo del pedido.
4

Mensaje de WhatsApp

El sistema construye:
🛒 *Pedido desde Tu Tienda*
Código: *SC-A3F9*

📦 *Productos:*
1x Camisa polo azul (Talla L) - REF 27.00
2x Gorra deportiva - REF 20.00

💰 *Total: REF 47.00*
(Aprox. Bs. 1,692.00 según BCV)

📍 *Entrega:*
Av. Libertador, Chacao, Caracas

📝 *Notas:*
Entregar después de las 5pm

👤 *Cliente:*
María Rodríguez
0412-1234567
5

Abre WhatsApp automáticamente

URL generada:
https://wa.me/584121234567?text={mensaje_codificado}
El cliente presiona “Enviar” y el pedido llega al WhatsApp del negocio.

Planes y Funcionalidades del Carrito

SYNTIcat Features por Plan:
FeatureBásico ($9)Semestral ($39)Anual ($69)
Productos20100Ilimitado
Carrito completo
Código SC-XXXX
Variantes (talla/color)
Extras/opciones
Plan Básico:
  • Solo catálogo visual
  • Botón “Consultar precio” → WhatsApp simple
  • Sin carrito ni checkout
Plan Semestral y Anual:
  • Carrito completo con drawer
  • Generación de código SC-XXXX
  • Checkout con formulario
  • Mensaje estructurado a WhatsApp

Gestión de Órdenes (Dashboard)

1

Accede a 'Órdenes'

Desde el dashboard del negocio, ve a la pestaña Órdenes.Solo visible para Plan Semestral y Anual de SYNTIcat.
2

Lista de pedidos

Verás tabla con:
  • Código (SC-XXXX)
  • Cliente
  • Total
  • Fecha y hora
  • Estado (pendiente, procesando, completado, cancelado)
Endpoint:
GET /tenant/{tenantId}/orders
Controlador: OrdersController::index()
3

Detalles del pedido

Haz clic en un pedido para ver:
  • Productos con cantidades y variantes
  • Datos del cliente
  • Dirección de entrega
  • Notas adicionales
  • Histórico de estados
4

Cambiar estado

Actualiza el estado desde el dashboard:
  • Pendiente → Recién creado, esperando confirmación
  • Procesando → En preparación
  • Completado → Entregado
  • Cancelado → No procesado
Esto no notifica automáticamente al cliente (debe hacerse por WhatsApp).

Badges de Productos

Los badges son etiquetas visuales sobre las imágenes:
  • hot → Producto popular (ícono de fuego)
  • new → Producto nuevo (ícono de estrella)
  • promo → En promoción (ícono de etiqueta)
Se configuran al crear/editar el producto desde el dashboard.

Configuración de Moneda

El catálogo soporta los mismos modos de moneda que SYNTIstudio:
  • reference_only → Solo REF
  • bolivares_only → Solo Bs (con tasa BCV)
  • both_toggle → Toggle automático REF/Bs
  • hidden → Sin precios (solo “Consultar”)
Configura desde: Dashboard → Config → Moneda

Ejemplo Completo: Tienda de Ropa

Producto 1: Camisa Polo

Nombre: Camisa polo clásica
Precio base: 25 REF
Descripción: 100% algodón peinado, cuello ribeteado
Badge: new

Variantes:
- S (stock: 10)
- M (stock: 15)
- L (+2 REF, stock: 8)
- XL (+3 REF, stock: 5)

Colores:
- Azul marino
- Blanco
- Negro
- Gris

Producto 2: Jeans

Nombre: Jeans slim fit
Precio base: 40 REF
Descripción: Denim elástico, corte moderno
Badge: hot

Variantes:
- 28 (stock: 6)
- 30 (stock: 12)
- 32 (stock: 10)
- 34 (+2 REF, stock: 7)
- 36 (+2 REF, stock: 4)

Flujo de Compra

  1. Cliente navega tutienda.syntiweb.com
  2. Agrega:
    • 1x Camisa polo (Talla L, Azul marino) → 27 REF
    • 1x Jeans (Talla 32, Negro) → 40 REF
  3. Total carrito: 67 REF
  4. Procede al checkout:
    • Nombre: Juan Pérez
    • Dirección: Parque Central, Caracas
  5. Sistema genera: SC-H8K3
  6. Mensaje a WhatsApp con resumen completo
  7. Dueño de tienda ve orden en dashboard y confirma por WhatsApp

Rutas de la API

AcciónMétodoEndpoint
Ver catálogo públicoGET/{subdomain}
Crear ordenPOST/{subdomain}/checkout
Listar órdenes (dashboard)GET/tenant/{tenantId}/orders
Ver detalle de ordenGET/tenant/{tenantId}/orders/{orderId}
El carrito se maneja en frontend (localStorage). Solo al hacer checkout se crea registro en base de datos.

Build docs developers (and LLMs) love