Skip to main content
Los servicios son ofertas intangibles de tu negocio (peluquería, consultoría, reparaciones, etc.). Esta guía te muestra cómo gestionarlos.

Acceder al Panel de Servicios

1

Ingresa al dashboard

Presiona Alt + S (desktop) o mantén presionado el logo 3 segundos (móvil), luego ingresa tu PIN.
2

Abre la pestaña Servicios

Haz clic en Servicios en la barra de navegación del dashboard.

Límites por Plan

Servicios disponibles según plan:
  • Plan Oportunidad: 3 servicios
  • Plan Crecimiento: 6 servicios
  • Plan Visión: 9 servicios
Si intentas crear más servicios del límite, verás:
"Has alcanzado el límite de {N} servicios en tu plan. Actualiza para agregar más."

Crear un Servicio

1

Haz clic en 'Nuevo Servicio'

Verás un formulario con:
  • Nombre (obligatorio) — Máximo 100 caracteres
  • Descripción (opcional) — Máximo 500 caracteres
  • Ícono (opcional) — Nombre del ícono Tabler
  • Activo — Checkbox para visibilidad pública
2

Completa el formulario

Ejemplo para barbería:
Nombre: Afeitado clásico
Descripción: Afeitado con navaja, toalla caliente y tratamiento post-afeitado
Ícono: razor
Activo: ✓
Ejemplo para consultora:
Nombre: Asesoría contable
Descripción: Revisión de estados financieros y optimización fiscal
Ícono: calculator
3

Guarda el servicio

El sistema ejecuta:
POST /tenant/{tenantId}/services
Validaciones aplicadas (DashboardController.php:600):
  • Verifica límite del plan (3/6/9)
  • Asigna position automáticamente
  • Guarda con tenant_id
Código de validación:
$maxServices = $tenant->plan->services_limit ?? 3;
if ($tenant->services->count() >= $maxServices) {
    return response()->json([
        'success' => false,
        'message' => "Has alcanzado el límite de {$maxServices} servicios"
    ], 422);
}

Diferencia: Ícono vs Imagen

Los servicios pueden tener ícono o imagen, pero no ambos al mismo tiempo.

Modo Ícono

1

Selecciona un ícono Tabler

Escribe el nombre del ícono en el campo icon_name.Ejemplos populares:
  • scissors → Tijeras (peluquería)
  • tools → Herramientas (técnico)
  • briefcase → Maletín (negocios)
  • heart → Corazón (salud)
  • paint → Pintura (arte)
  • truck → Camión (transporte)
2

Catálogo completo de íconos

Visita tabler.io/icons para explorar los +4,000 íconos disponibles.Usa el nombre exacto sin prefijo. Ejemplo: tabler-scissors → escribe solo scissors

Modo Imagen

1

Sube una imagen personalizada

Haz clic en “Subir imagen” desde el card del servicio.Endpoint:
POST /tenant/{tenantId}/upload/service/{serviceId}
Formatos: JPG, PNG, WebP Tamaño máx: 2 MB Dimensiones recomendadas: 400×400 px (cuadrado)
2

Conversión automática ícono → imagen

Cuando subes una imagen, el sistema ejecuta:
if (!empty($validated['icon_name'])) {
    $validated['image_filename'] = null;
}
Esto significa: si guardas con icon_name, se borra image_filename automáticamente.
Los íconos cargan más rápido y son ideales para servicios genéricos. Usa imágenes solo si necesitas mostrar algo específico (ej. foto del equipo técnico).

Editar un Servicio

1

Localiza el servicio

En la lista de servicios, haz clic en “Editar” (ícono de lápiz).
2

Modifica los campos

Puedes cambiar nombre, descripción, ícono o estado.Endpoint:
PUT /tenant/{tenantId}/services/{serviceId}
3

Guardar cambios

Los cambios se reflejan inmediatamente en tu página pública.Respuesta del servidor:
{
  "success": true,
  "message": "Servicio actualizado",
  "service": { ... }
}

Reordenar Servicios

1

Activa modo reordenamiento

Haz clic en “Reordenar” en la esquina superior de la lista.
2

Arrastra y suelta

Los servicios se muestran con handles para drag & drop.El orden define cómo aparecen en la sección de servicios de tu página.
3

Guarda el orden

El campo position se actualiza automáticamente al soltar.

Eliminar un Servicio

1

Haz clic en 'Eliminar'

Desde el card del servicio, busca el botón rojo.
2

Confirma la acción

Esta acción elimina permanentemente:
  • El registro del servicio
  • La imagen asociada (si existe)
3

El sistema ejecuta

DELETE /tenant/{tenantId}/services/{serviceId}
Lógica de eliminación (DashboardController.php:709):
// 1. Eliminar imagen si existe
if ($service->image_filename) {
    $imagePath = storage_path('app/public/tenants/' . $tenantId . '/' . $service->image_filename);
    if (file_exists($imagePath)) {
        unlink($imagePath);
    }
}

// 2. Eliminar servicio
$service->delete();

Toggle de Estado

Servicio Activo/Inactivo: Haz clic en el switch “Activo” para ocultar/mostrar el servicio sin eliminarlo. Cuando un servicio está inactivo:
  • No aparece en la página pública
  • Permanece en el dashboard para reactivación futura
  • No cuenta para el límite del plan

Ejemplos por Segmento

Barbería

1. Corte clásico (scissors)
2. Afeitado con navaja (razor)
3. Tratamiento capilar (droplet)

Consultora

1. Asesoría fiscal (calculator)
2. Auditoría contable (file-invoice)
3. Declaración de impuestos (report-money)

Taller mecánico

1. Cambio de aceite (droplet)
2. Alineación y balanceo (steering-wheel)
3. Diagnóstico computarizado (device-laptop)

Clínica estética

1. Limpieza facial (wash)
2. Depilación láser (flame)
3. Masajes relajantes (heart-handshake)

API Endpoints de Referencia

AcciónMétodoEndpoint
Listar serviciosGET/tenant/{tenantId}/dashboard
Crear servicioPOST/tenant/{tenantId}/services
Editar servicioPUT/tenant/{tenantId}/services/{serviceId}
Eliminar servicioDELETE/tenant/{tenantId}/services/{serviceId}
Subir imagenPOST/tenant/{tenantId}/upload/service/{serviceId}
Los servicios se ordenan por position ascendente. La posición inicial es max(position) + 1.

Build docs developers (and LLMs) love