Alien Style 51 — Manual de Usuario
Sistema web para gestión de un negocio de estampados personalizados: catálogo, diseñador visual, pedidos, chat con el cliente, facturación electrónica con logotipo, dashboard con métricas y control por método de pago.
Desarrollado en PHP puro + SQLite. Sin frameworks pesados, sin dependencias de build. Ideal para operaciones pequeñas o medianas en Colombia (COP, IVA 19%, NIT).
Índice
- Qué hace el sistema
- Roles y accesos
- Guía del cliente
- Guía del administrador
- Sistema de facturación
- Instalación local
- Configuración inicial
- Estructura del proyecto
- Despliegue a Vercel
- Alternativas de hosting
- Preguntas frecuentes
Qué hace el sistema
Un negocio que estampa camisas, tazas, gorras y llaveros con diseños personalizados. El cliente entra al sitio, diseña sobre un producto en vivo (Mockup Studio), sube su archivo, hace el pedido. El administrador ve todo desde un panel, cambia estados, se comunica con el cliente, registra el pago y emite factura con NIT y correlativo.
Características principales:
- Landing con catálogo, hero editorial y sección de diseño interactiva.
- Mockup Studio en tiempo real: cambiar producto, cambiar color, subir diseño, ajustar escala/rotación/opacidad, arrastrar sobre el producto.
- Registro y login con contraseñas cifradas (bcrypt), sesiones seguras y tokens CSRF.
- Panel cliente con dashboard, historial de pedidos, chat en cada pedido, edición de perfil.
- Panel admin con métricas del negocio, gráfico de ingresos por método de pago, gestión de pedidos, usuarios, productos y configuración.
- Facturación electrónica: correlativo automático, PDF imprimible con logotipo, NIT, IVA calculado, sello de "Pagado" o "Cancelado".
- Base de datos SQLite (archivo único), migraciones idempotentes.
Roles y accesos
El sistema tiene dos roles:
| Rol | Puede | No puede |
|---|---|---|
| Cliente | Registrarse, diseñar, hacer pedidos, chatear con el equipo, editar su perfil | Ver otros pedidos, cambiar precios, emitir facturas |
| Admin | Todo lo del cliente + gestionar todos los pedidos, usuarios, productos, emitir facturas, ver métricas | — |
Credenciales de administrador por defecto (cambiar en producción):
- Email:
admin@alienstyle51.com - Contraseña:
admin123
Cambia la contraseña desde Panel Admin → Configuración → Cambiar contraseña.
Guía del cliente
1. Crear cuenta
- Entra a
/auth/register.php. - Ingresa nombre, correo, teléfono (WhatsApp opcional) y contraseña (mínimo 6 caracteres).
- Iniciás sesión automáticamente al registrarte.
2. Diseñar en el Studio
- Abre Studio desde el menú lateral o desde la landing.
- Elige un producto (Camisa, Taza, Gorra o Llavero).
- Elige un color base entre los disponibles (Marfil, Negro, Océano, Cereza, etc.).
- Sube tu diseño: PNG con fondo transparente da los mejores resultados.
- Ajusta escala (50–150 %), rotación (-45 a +45°) y opacidad.
- Arrastra el diseño sobre el producto para reubicarlo. Se muestra una guía cruzada al centrar.
- Descarga el mockup como PNG si quieres guardarlo.
3. Hacer un pedido
- Desde Nuevo pedido replicas el flujo del Studio pero además indicas cantidad, talla (si aplica) e instrucciones.
- Al enviar, se guarda una vista previa del diseño para que nuestro equipo lo vea exactamente como tú lo diseñaste.
- Recibes un código de pedido único (formato
AS51-XXXXXX).
4. Seguir tu pedido
- Vas a Mis pedidos. Cada tarjeta muestra la vista previa, el estado y el precio.
- Estados posibles: Pendiente → Confirmado → En producción → Listo → Entregado. También puede pasar a Cancelado.
- Entra a un pedido para ver detalles, cancelar (solo si está pendiente o confirmado) y chatear con producción.
5. Chat con el equipo
- Dentro de cada pedido, hay una sección Conversación. Los mensajes tuyos aparecen a la derecha, los del admin a la izquierda.
- El admin recibe la conversación en su panel y responde.
Guía del administrador
1. Dashboard
Al iniciar sesión como admin, ves de un vistazo:
- Pedidos totales, En proceso, Entregados, Ingresos totales (en COP).
- Gráfico de ingresos por método de pago (Web, Efectivo, Transferencia, Tarjeta) — barras horizontales con etiqueta directa del valor.
- Distribución por estado — barras por cada estado.
- Reservas recientes con teléfono del cliente (click abre WhatsApp), hora, estilo pedido y estado.
2. Gestionar pedidos
- Pedidos → lista: filtra por estado o busca por código/cliente/email.
- Pedido individual: cambia el estado, agrega notas internas (visibles para el cliente), responde el chat.
- Método de pago: cuatro botones (Efectivo, Transferencia, Web, Tarjeta). Uno solo se registra por pedido.
- Emitir factura: genera un correlativo único y abre la factura imprimible.
3. Gestionar usuarios
- Lista con nombre, rol, pedidos, gastado total.
- Cambia el rol (cliente ↔ admin) desde el selector inline.
- Crea usuarios nuevos manualmente (útil para dar acceso a socios).
- Elimina usuarios (borra sus pedidos por CASCADE — usar con cuidado).
4. Gestionar productos
- Cada producto: nombre, slug, precio, ícono FontAwesome, tipo de mockup 3D, activo/inactivo.
- Precio en COP (pesos colombianos). Se guarda como número sin separador.
- Puedes desactivar un producto sin borrarlo — así deja de aparecer en el catálogo pero mantiene los pedidos históricos.
5. Configuración
Datos que aparecen en la cabecera de todas las facturas:
- Nombre comercial, NIT (formato colombiano tipo
900.000.000-1), dirección, teléfono, email. - Porcentaje de IVA (por defecto 19 %).
- Prefijo del correlativo (por defecto
AS51, se muestra comoAS51-F-000001).
También puedes cambiar tu contraseña de admin y ver el estado del sistema (tamaño de la base de datos, versión de PHP, archivos subidos).
Sistema de facturación
Correlativo
Cada factura tiene un número único e irrepetible con el formato:
AS51-F-000001
AS51-F-000002
...
El correlativo se emite dentro de una transacción atómica en SQLite — no hay riesgo de números repetidos aún con dos admins emitiendo al mismo tiempo.
Contenido de la factura
- Logotipo del negocio (arriba a la izquierda) — el mismo alien cyan que da identidad al proyecto.
- Datos de la empresa: nombre, NIT, dirección, teléfono, email.
- Número de factura y fecha de emisión.
- Datos del cliente: nombre, email, teléfono.
- Detalle del producto: cantidad, precio unitario, total, descripción del diseño.
- Subtotal, IVA 19 % y Total (formato colombiano:
$ 150.000). - Sello "Pagado" o "Cancelado" según el estado del pedido.
- Términos y agradecimiento en Fraunces italic (estilo editorial).
Imprimir / Guardar como PDF
- Abre la factura desde Admin → Facturación → Ver o desde el detalle del pedido.
- Botón Imprimir / Guardar PDF dispara el diálogo de impresión del navegador.
- El CSS
@media printestá optimizado para A4 con márgenes correctos y sin controles visibles. - Desde el diálogo puedes elegir "Guardar como PDF" (Chrome, Edge, Firefox).
Instalación local
Requisitos
- PHP 8.1+ con extensiones
pdo_sqliteymbstring(vienen por defecto en XAMPP, MAMP, Laragon, y en la mayoría de hostings PHP). - No requiere Composer, MySQL, ni build de assets.
Pasos
- Copia todo el proyecto a una carpeta (por ejemplo
htdocs/alien-style-51). - Asegúrate de que las carpetas
data/yuploads/sean escribibles (se crean automáticamente en la primera petición si no existen). - Levanta un servidor de desarrollo. Con el PHP embebido:
``bash php -S 127.0.0.1:8000 ``
- Abre
http://127.0.0.1:8000en tu navegador.
En la primera petición, se crean todas las tablas de la base de datos y se insertan:
- El usuario admin por defecto (
admin@alienstyle51.com/admin123). - Los 4 productos iniciales del catálogo.
- La configuración de empresa (nombre, IVA 19 %, etc.).
Estructura de directorios
alien-style-51/
├─ index.php # Landing
├─ auth/
│ ├─ login.php
│ ├─ register.php
│ └─ logout.php
├─ cliente/
│ ├─ index.php # Dashboard cliente
│ ├─ nuevo-pedido.php # Studio + form
│ ├─ pedidos.php # Historial
│ ├─ pedido.php # Detalle + chat
│ ├─ disenador.php # Studio libre
│ └─ perfil.php
├─ admin/
│ ├─ index.php # Dashboard con gráficos
│ ├─ pedidos.php
│ ├─ pedido.php # Detalle + estado + pago + facturar
│ ├─ facturas.php # Listado
│ ├─ factura.php # Factura imprimible
│ ├─ usuarios.php
│ ├─ productos.php
│ └─ configuracion.php
├─ includes/
│ ├─ config.php # DB, sesión, helpers
│ ├─ head.php
│ ├─ topnav.php
│ ├─ footer.php
│ ├─ sidebar_admin.php
│ └─ sidebar_cliente.php
├─ assets/
│ ├─ styles.css # Sistema de diseño completo
│ ├─ mockup-studio.js # Studio interactivo (SVG + drag)
│ └─ reveal.js # Animaciones scroll
├─ IMAGENES/
│ └─ unnamed.jpg # Logotipo
├─ data/ # SQLite (creada automáticamente)
│ └─ alien.sqlite
└─ uploads/ # Diseños y previews (creada automáticamente)
Configuración inicial
Al iniciar por primera vez en producción:
- Cambia la contraseña del admin desde Configuración.
- Actualiza los datos de empresa (nombre real, NIT real, dirección, teléfono, email, IVA correcto).
- Ajusta los productos: nombres, precios en COP, descripciones. Puedes editar los 4 seed o agregar más.
- Sube tu logotipo real reemplazando
IMAGENES/unnamed.jpg(mantén el mismo nombre y las dimensiones cuadradas).
Despliegue a Vercel
⚠️ Importante: Vercel es una plataforma serverless donde el sistema de archivos es efímero — cada petición corre en una instancia nueva y los archivos escritos desaparecen. Esto es incompatible con SQLite, que necesita un archivo persistente.
Si igual quieres desplegar a Vercel, tienes dos rutas:
Opción A — Vercel solo para el frontend + DB externa (recomendado)
Migra la persistencia a una base de datos gestionada:
- Turso — libSQL (fork de SQLite) en la nube. Free tier generoso. Mínimo cambio de código: usa el driver
libSQL/PHPo cambia el DSN de PDO. - Neon — Postgres serverless free tier. Requiere migrar el schema.
- Supabase — Postgres + storage + auth. Free tier útil.
Adicionalmente, los archivos subidos (uploads/) no persisten en Vercel serverless — necesitas almacenamiento externo:
Opción B — Vercel con vercel-php (sirve el proyecto tal cual, pero la DB no persiste)
Sirve para demo o entorno de prueba. No usar en producción real porque los pedidos se perderían entre despliegues.
Crea en la raíz un archivo vercel.json:
{
"version": 2,
"functions": {
"api/index.php": {
"runtime": "vercel-php@0.7.3"
}
},
"routes": [
{ "src": "/assets/(.*)", "dest": "/assets/$1" },
{ "src": "/IMAGENES/(.*)", "dest": "/IMAGENES/$1" },
{ "src": "/uploads/(.*)", "dest": "/uploads/$1" },
{ "src": "/(.*)", "dest": "/api/index.php" }
]
}
Y un api/index.php mínimo como front controller:
<?php
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) ?: '/index.php';
$path = ltrim($path, '/');
if ($path === '') $path = 'index.php';
$file = __DIR__ . '/../' . $path;
if (is_file($file) && str_ends_with($file, '.php')) {
require $file;
} else {
http_response_code(404);
echo 'Not found';
}
Ver el archivo vercel.json incluido en el repo para el ejemplo listo para usar.
Pasos de despliegue
- Instala Vercel CLI:
npm i -g vercel. - En la raíz del proyecto:
vercel loginy luegovercel. - Sigue las preguntas: link a un proyecto nuevo, framework: "Other".
- La primera visita a
/disparará la creación de la DB en/tmp(que se borra cada request → no persistente).
Para producción de verdad, migra a Turso o similar (Opción A).
Alternativas de hosting (recomendadas para PHP + SQLite)
Estas plataformas soportan PHP con almacenamiento persistente sin cambios de código:
- Railway — Deploy directo desde Git, PHP + SQLite/Postgres, plan gratuito con horas mensuales. Muy similar a Vercel en experiencia.
- Render — Servicios web con disco persistente. Free tier con sleep.
- Hostinger — Hosting compartido PHP tradicional, muy económico.
- Fly.io — Contenedores globales con volúmenes persistentes.
- SiteGround / A2 Hosting — Hosting compartido clásico, ideal si prefieres cPanel.
Recomendación: Para empezar rápido sin migrar código, Railway o Render. Sube el proyecto tal cual, apuntá data/ como volumen persistente y listo.
Preguntas frecuentes
¿Puedo cambiar los colores de la marca? Sí. Toca assets/styles.css — todas las variables de color están en :root al inicio (bloque --brand, --ink, --rose, etc.). Cambia el hex una sola vez y se refleja en todo el sistema.
¿Cómo agrego un producto nuevo? Panel admin → Productos → Nuevo producto. Elige uno de los mockups 3D disponibles (Camisa, Taza, Gorra, Llavero). Si quieres un producto sin mockup, elige "Camisa" pero desactiva los previews del sitio.
¿Puedo cambiar el idioma? El sistema está 100 % en español. Traducir requeriría reemplazar los textos manualmente en cada archivo PHP — no hay sistema i18n integrado por ahora.
¿Cómo hago backup? Copia el archivo data/alien.sqlite (contiene todos los datos: usuarios, pedidos, facturas, mensajes, configuración) y la carpeta uploads/ (contiene los archivos de diseño de los clientes y las previews PNG). Con esos dos elementos tienes un backup completo.
¿Qué pasa si un cliente sube un archivo grande? El límite está en 8 MB por archivo. Los formatos aceptados son JPG, PNG, SVG, WEBP y PDF. Puedes ajustar el límite en cliente/nuevo-pedido.php.
¿Cómo se calcula el IVA? La factura toma el total del pedido y lo divide entre 1 + IVA/100 para obtener el subtotal, y la diferencia es el IVA. Es decir, los precios de los productos ya incluyen IVA — si prefieres el enfoque inverso (precios sin IVA), edita admin/factura.php para calcular al revés.
¿Hay un endpoint API para integrar? Actualmente no. El sistema es 100 % HTML server-side rendered. Si necesitas API JSON para una app móvil, es un trabajo adicional sobre la misma capa de acceso a datos.
¿Qué hago si olvido la contraseña de admin? No hay recuperación por email (aún). Puedes editar directamente el hash en la base de datos con cualquier cliente SQLite:
-- Genera un hash con: php -r "echo password_hash('nueva-contra', PASSWORD_BCRYPT).PHP_EOL;"
UPDATE usuarios SET password = '<hash-pegado-aquí>' WHERE email = 'admin@alienstyle51.com';
Créditos técnicos
- Backend: PHP 8.1+, SQLite 3, PDO.
- Frontend: HTML server-side, CSS3 con custom properties, JavaScript ES6 modules (sin bundler).
- Fuentes: Fraunces (display editorial), Inter (cuerpo), JetBrains Mono (código).
- Íconos: Font Awesome 6.
- Mockups: SVG line-art hecho a mano, estilo editorial minimalista.
Alien Style 51 — Estampados con carácter.