Análisis técnico de Mi Tienda v2

Arquitectura, dependencias, entradas, rutas y riesgos · 27 de julio de 2026
Resumen ejecutivo. Mi Tienda v2 es una aplicación monolítica de comercio electrónico construida con Laravel 12, PHP 8.2, Blade, Livewire y Volt. Incluye catálogo, carrito, checkout para invitados, pagos con Culqi, Izipay y PayPal, facturación mediante Nubefact, panel administrativo, permisos, reportes, respaldos, autenticación de dos factores y pruebas automatizadas.

1. Alcance de la revisión

La revisión original fue de solo lectura. No se inspeccionaron valores privados de .env, no se ejecutaron migraciones, comandos Artisan, pruebas funcionales ni operaciones sobre la base de datos.

Se validó el manifiesto Composer y la sintaxis de los archivos PHP. El manifiesto es válido y los archivos examinados no presentaron errores de sintaxis.

2. Tecnologías principales

CapaTecnologíaVersión observada
BackendPHPRequisito ^8.2; entorno 8.2.12
FrameworkLaravel12.64.0
Interfaz dinámicaLivewire / Volt3.8.2 / 1.11.1
PlantillasBladeIncluido con Laravel
CSSTailwind CSS3.4.19
Construcción frontendVite6.4.3
Pruebas PHPPest / PHPUnit3.8.7 / 11.5.56
Pruebas E2EPlaywright1.62.0
Análisis estáticoLarastan3.10.0, nivel 5

3. Estructura del proyecto

DirectorioResponsabilidad
app/Http/Controllers44 controladores para tienda, cuenta, checkout, webhooks y administración.
app/Models28 modelos Eloquent: productos, variantes, usuarios, pedidos, pagos, comprobantes y otros.
app/Services20 servicios para carrito, pedidos, precios, envíos, importaciones, pagos y facturación.
app/LivewireCarrito, wishlist, formularios de producto y componentes administrativos.
app/JobsFacturación, notas de crédito, reservas, recordatorios y alertas de stock.
resources/viewsVistas Blade de tienda, checkout, cuenta, autenticación y panel administrativo.
database49 migraciones, factories, seeders y datos de ubigeo peruano.
tests76 archivos de pruebas unitarias y funcionales.
e2ePruebas de navegador que utilizan una aplicación y base local reales.
docsDocumentación de seguridad, lanzamiento, pagos y diferenciadores locales.

4. Módulos funcionales

5. Dependencias relevantes

PaqueteVersiónUso
spatie/laravel-permission6.25.0Roles y permisos administrativos.
spatie/laravel-backup9.3.6Respaldo de base de datos y archivos.
barryvdh/laravel-dompdf3.1.2Generación de documentos PDF.
maatwebsite/excel3.1.69Importaciones y exportaciones Excel.
srmklive/paypal3.1.1Integración con PayPal.
intervention/image-laravel1.5.9Procesamiento de imágenes.
pragmarx/google2fa9.0.0Autenticación administrativa en dos pasos.
bacon/bacon-qr-code3.1.1Generación de códigos QR.
laravel/socialite5.29.0Base para autenticación OAuth.

6. Configuración y entradas

Puntos de entrada

Configuración principal

composer.json, package.json, vite.config.js, tailwind.config.js, phpunit.xml, phpstan.neon, playwright.config.js, .env.example y el directorio config/.

7. Mapa de rutas

ArchivoÁreas cubiertas
routes/web.phpCatálogo, carrito, checkout, cuenta, políticas, reclamos, APIs locales, pagos y webhooks.
routes/auth.phpRegistro, acceso, recuperación de contraseña y verificación de correo.
routes/admin.phpPanel administrativo protegido por guard, estado de cuenta y permisos.
routes/console.phpBackups, monitorización y limpieza de la bitácora.

8. Riesgos y observaciones

  1. Alto — Confianza global en proxies. TRUSTED_PROXIES admite * por defecto. En producción debe restringirse y configurarse de forma compatible con la caché de configuración.
  2. Alto — Pruebas E2E sobre datos locales reales. Playwright usa la aplicación y base de desarrollo. Puede registrar usuarios, crear pedidos o cambiar datos; debe ejecutarse en una base desechable.
  3. Medio — Sin Content Security Policy. Existen encabezados de seguridad básicos, pero no CSP debido a widgets de pagos y analítica.
  4. Medio — Deuda de análisis estático. El baseline de PHPStan contiene alrededor de 90 marcadores ignorados que deberían auditarse periódicamente.
  5. Medio — Manual versionado. El PDF del manual incluye credenciales de ejemplo y detalles internos; debe verificarse que no contenga secretos reales.
  6. Medio — Dependencias Tailwind mezcladas. Se usa Tailwind 3 mediante PostCSS, pero está instalado el plugin Vite de Tailwind 4 sin registrarlo.
  7. Medio — Estabilidad Composer. minimum-stability permite paquetes dev, aunque prefer-stable reduce el riesgo.
  8. Medio — Valores de ejemplo para desarrollo. Antes de producción deben comprobarse modo, depuración, correo, pagos, cookies, backups y proxies.
  9. Operativo — Workers y cron. Colas, facturación, avisos y respaldos dependen de procesos externos correctamente supervisados.
  10. Operativo — Sesiones. El ejemplo configura sesiones en base de datos sin cifrado del contenido almacenado.
Recomendación prioritaria: antes de desplegar, utilizar una base exclusiva para pruebas, restringir proxies, revisar secretos y valores de producción, confirmar workers/cron y ejecutar la suite automatizada junto con Larastan en un entorno aislado.

9. Estado general

La solución tiene una cobertura funcional amplia y una organización coherente por controladores, servicios, modelos y tareas. Las integraciones sensibles muestran controles específicos: autorización de pedidos, verificación de firma de Izipay y confirmación de Culqi consultando su API. Los principales riesgos están relacionados con configuración de producción, aislamiento de pruebas, deuda estática y operación continua.