Ir al contenido principal

Caso de éxito · Reformas del hogar · Web

Caso de éxito Mosokna: plataforma multi-tenant en Laravel para presupuestar ventanas

Publicado el · Actualizado el · Por YuSMP Group Engineering

Caso de éxito Mosokna: cómo lanzamos en producción una plataforma de presupuestos de ventanas (un motor de precios en Laravel, un configurador en React y un CRM que dan servicio a tres sitios de marca distintos) que ofrece a los compradores un presupuesto preciso al milímetro en minutos y al equipo comercial una bandeja unificada de leads, con un enfoque preparado para auditoría para EE. UU. y la UE.

SectorReformas del hogar · Web
Año del proyecto2023
ColaboraciónPrecio cerrado + soporte
Mosokna: configurador de ventanas en Laravel + React con búsqueda por dirección, configuraciones multicristal y carrito de compra

El reto: tres sitios de marca, tres calculadoras y una consolidación

El fabricante Mosokna llegó con tres sitios de marca, tres calculadoras de presupuestos independientes y tres conjuntos distintos de errores de precios acumulados. La misma ventana estándar se presupuestaba a tres precios distintos según el sitio de marca al que llegara el cliente, y el equipo comercial no tenía una bandeja unificada para los leads que entraban por los tres escaparates. El encargo de producto era inequívoco: consolidar todas las calculadoras en un único motor, ofrecer a los compradores de Estados Unidos y la Unión Europea un presupuesto preciso al milímetro con medidas rellenadas previamente a partir de la dirección, y conectar el embudo a un CRM real. Auditamos cada calculadora heredada a pesar de una documentación incompleta, diseñamos un motor de precios en Laravel que reúne todas las reglas de negocio en un solo lugar, construimos un configurador en React que maneja el motor y pusimos en marcha a su lado un módulo de CRM que el equipo comercial usa a diario. Una arquitectura multi-tenant significa que un único despliegue da servicio a los tres sitios de marca, con diseños por marca, adaptadores de precios por región y una pista de auditoría compartida. El producto en servicio está en mosokna.ru, para el público de reformas del hogar de EE. UU. y la UE.

Aspectos destacados del proyecto

Motor de precios en Laravel: una única fuente de verdad Máquina de estados del configurador en React Detección automática de medidas a partir de la dirección Multi-tenant en 3 sitios de marca Configuraciones de un cristal, doble y triple acristalamiento Configurador de puerta de balcón CRM con lead scoring Preparación para auditorías · EE. UU. y la UE

En cifras

Un resumen de lo que aportó la consolidación de Mosokna en el motor de precios, el configurador, el CRM y tres sitios de marca en su primer ciclo de producción.

3sitios de marca atendidos por un único motor, con diseños por marca y adaptadores de precios por región
1motor de precios: todas las reglas de negocio residen en un único servicio Laravel para toda la superficie de EE. UU. y la UE
0deriva de calculadoras heredadas: las tres calculadoras anteriores a la reconstrucción se retiran por completo, no se parchean
1 mmprecisión del presupuesto: introducción de medidas a nivel de milímetro con validación en el servidor
3configuraciones de acristalamiento: de un cristal, doble y triple, además de subtipos de puerta de balcón
16–22 sem.plazo de entrega típico de una plataforma de presupuestos multi-tenant comparable con CRM
Embudo de leads de Mosokna: motor de precios en Laravel que consolida tres sitios de marca en una única bandeja de CRM

Por qué un motor multi-tenant en Laravel en lugar de plugins de WordPress o configuradores SaaS

La decisión de arquitectura dominó todas las demás palancas de la reconstrucción. Elegimos un motor multi-tenant en Laravel frente a los plugins de calculadora de WordPress y a un configurador SaaS estándar porque las contrapartidas encajaban con un fabricante que gestiona tres sitios de marca que comparten la física del producto pero no el relato de marca. Los plugins de WordPress son rápidos de instalar y son exactamente la razón por la que Mosokna estaba en apuros: cada sitio de marca tenía su propia copia del plugin, su propio historial de errores y sus propias ediciones de reglas de precios que nadie lograba conciliar. Un configurador SaaS resuelve el problema del motor de precios, pero lo cambia por restricciones de plantillas del proveedor, dependencia de los datos del proveedor y la imposibilidad de vincular el diseño de una marca al motor sin acrobacias con iframes.

El multi-tenant en Laravel invierte ambas contrapartidas. Un solo servicio reúne todas las reglas de negocio (número de cristales, familias de perfiles, complementos de herrajes, recargos regionales) y los diseños de cada marca leen del mismo motor a través de una API REST limpia. La máquina de estados del configurador reside en Laravel y el frontend es un cliente ligero en React + Redux Toolkit que muestra lo que el motor permite, de modo que un cambio de precios llega a los tres sitios de marca a la vez sin copias por sitio. Un futuro cuarto sitio de marca es una fila de configuración, no un proyecto de ingeniería.

Laravel multi-tenant frente a WordPress + plugins frente a configurador SaaS: de un vistazo
Criterio Multi-tenant en Laravel (Mosokna) WordPress + plugins Configurador SaaS
Aislamiento de la lógica de configuraciónUn motor, un conjunto de reglas, adaptadores por marcaUna copia del plugin por sitio: se desincroniza enseguidaPropiedad del proveedor: esquema fijo
Coste de reconstruir el motor de preciosSe toca un servicio y se publica en los tres sitiosSe tocan tres plugins y se espera que coincidanTicket al proveedor: esperar a la hoja de ruta
Acoplamiento del formulario de leads con el CRMMismo backend: escritura directa en el CRMPlugin de formulario + plugin puente + tarea de sincronizaciónSolo webhook hacia un CRM externo
Encaje con precios regionales (EE. UU. y la UE)Un adaptador por región sobre un único motorUn plugin por región: deriva del esquemaBloqueado por región o con coste adicional del proveedor
Diseño propio por marcaCapa de React independiente por marcaPlantilla de tema por marcaRestricciones de plantillas del proveedor
Pista de auditoría entre sitios de marcaUn único registro de auditoría a nivel de motorTres registros: conciliación manualRegistro del proveedor: exportación limitada
Dependencia del proveedor / de las dependenciasFramework abierto: portableEcosistema de plugins: moderadoFuerte dependencia del proveedor (vendor lock-in)

Referencias: documentación del framework Laravel, documentación de React, geocodificación Nominatim de OpenStreetMap.

Flujo de conversión de Mosokna: configurador en React con búsqueda por dirección, selección de cristales, selector de perfiles y entrada al milímetro

Desarrollo del configurador: React, Redux Toolkit y una máquina de estados

El configurador está desarrollado en React, con Redux Toolkit manejando una máquina de estados que replica una a una el motor de Laravel. El comprador introduce una dirección, un paso de geocodificación con OpenStreetMap Nominatim la resuelve a un edificio y una consulta de tipología según la serie del edificio muestra las medidas típicas de ventana de esa unidad. Cada transición (dirección resuelta, medidas confirmadas, número de cristales elegido, perfil seleccionado, complementos de herrajes elegidos) es un estado protegido de la máquina, de modo que el motor nunca puede recibir una configuración mal formada. La entrada al milímetro se valida primero en el cliente para dar agilidad y después en el servidor, que es quien tiene la autoridad, antes de fijar un precio.

La misma máquina de estados maneja todos los sitios de marca. Los temas de React por marca aportan la tipografía, la paleta de colores y la densidad de diseño que exige cada marca, pero el grafo de estados y el intercambio con el motor son idénticos. El resultado es un configurador que un comprador de Estados Unidos o de la Unión Europea puede completar en minutos, con un precio vinculante y no meramente orientativo, y un carrito terminado que llega directamente al CRM como lead cualificado. La superficie web completa se entrega como parte de nuestra práctica de desarrollo de aplicaciones web.

Flujo de presupuesto de Mosokna: motor de precios en Laravel, configurador de puerta de balcón y adaptadores de recargos por región

Motor de precios: Laravel, adaptadores regionales y el caso de la puerta de balcón

El motor de precios está desarrollado en Laravel, con servicios PHP que reúnen todas las reglas de negocio acumuladas en dos décadas de fabricación de ventanas. Las configuraciones de un cristal, doble y triple acristalamiento tienen cada una su propia física y sus propios componentes de precio; los subtipos de puerta de balcón heredan del mismo motor, pero añaden tipos de apertura, conjuntos de herrajes y recargos de instalación adicionales. Los adaptadores regionales añaden recargos, moneda y multiplicadores de mano de obra por región, de modo que el mismo motor presupuesta la misma configuración con honestidad en los mercados de EE. UU. y la UE sin bifurcar el conjunto de reglas.

Cada error heredado de las tres calculadoras retiradas se clasificó frente al nuevo motor, y un banco de pruebas de paridad comparó línea por línea 4,000+ presupuestos históricos con los nuevos precios. Donde el resultado heredado era sencillamente erróneo, el nuevo motor entrega la respuesta correcta; donde el resultado heredado era una concesión deliberada, el motor la conserva con un comentario explícito de regla de negocio para que el siguiente ingeniero pueda encontrarla. El motor está tras la misma API REST que usa el configurador, y el CRM lee de él directamente: ninguna copia aparte de «instantánea de precio» se desvía en el registro del lead. La capa de precios se entrega como parte de nuestra práctica de desarrollo de software a medida.

Panel de operaciones de Mosokna: bandeja de CRM, lead scoring, aislamiento de datos multi-tenant y enfoque preparado para auditoría

CRM, aislamiento de datos multi-tenant y enfoque de privacidad

El CRM está integrado en la misma aplicación Laravel que el motor de precios, de modo que un lead llega a la bandeja en el instante en que el comprador completa un carrito: sin puentes por webhook, sin tareas de sincronización, sin desfases de consistencia eventual. Los responsables comerciales ven los leads agrupados por sitio de marca, puntuados según la compleción del configurador y la resolución de la dirección, y encaminados automáticamente al equipo de consulta adecuado. El aislamiento de datos multi-tenant funciona a nivel de fila de la base de datos: cada registro lleva una clave de tenant, cada consulta la aplica, y un responsable de la marca A no puede leer un lead de la marca B ni siquiera con una URL construida a mano. El acceso basado en roles controla qué responsable puede leer qué lead, y los registros de auditoría recogen cada lectura y escritura para la revisión de cumplimiento.

La privacidad del cliente está integrada en la plataforma desde el primer día. El flujo de captación de leads depende de la región: los usuarios de la Unión Europea reciben una pantalla de consentimiento granular del RGPD, con interruptores separados para el seguimiento comercial y la analítica de producto; los usuarios de California reciben en el mismo flujo el aviso de la CCPA / CPRA, «No vender ni compartir mi información personal». Los registros del CRM tienen retención limitada, las solicitudes de eliminación son una única tarea del backend en los tres sitios de marca y el registro de auditoría conserva la pista de evidencias para el entorno regulatorio de EE. UU. y la UE.

Enfoque de cumplimiento: alineado con el RGPD · preparado para ISO 27001 · SOC 2 Type II en curso · apto para HIPAA · CCPA contemplada.

Metodología de entrega

Un desarrollo en cinco fases que llevó a Mosokna de tres calculadoras de marca que se desviaban a una única plataforma multi-tenant consolidada con un CRM.

Fase 1

Auditoría heredada y extracción de reglas

Tres calculadoras de sitios de marca auditadas línea por línea, reglas de negocio extraídas a un conjunto canónico de reglas, historial de errores clasificado, enfoque del RGPD y la CCPA mapeado y modelo de datos multi-tenant diseñado.

Fase 2

Motor y configurador

Esqueleto del motor de precios en Laravel, máquina de estados del configurador, contrato de la API REST, cliente en React + Redux Toolkit y detección automática de medidas a partir de la dirección mediante OpenStreetMap.

Fase 3

Diseños de marca y CRM

Temas de React por marca que leen de un único motor, subtipo de configurador de puerta de balcón, módulo de CRM, lead scoring, acceso basado en roles y encaminamiento de consultas a los responsables.

Fase 4

Refuerzo de seguridad listo para auditoría

Aislamiento de datos multi-tenant a nivel de fila, políticas de retención, flujos de consentimiento según la región, banco de pruebas de paridad que compara 4,000+ presupuestos heredados con el nuevo motor y estructura base de la evaluación de preparación por terceros.

Fase 5

Lanzamiento y telemetría

Cutover en los tres sitios de marca, calculadoras heredadas retiradas, incorporación del equipo comercial al CRM, telemetría del embudo de conversión y primer ciclo de corrección en las superficies de EE. UU. y la UE.

CRM del equipo comercial, lead scoring y una base para canales de partners

El CRM de Mosokna se construyó para que el equipo comercial trabaje con una sola bandeja, no con tres. Cada lead lleva el sitio de marca de origen, la puntuación de compleción del configurador, el estado de resolución de la dirección y el historial completo de configuración que construyó el comprador, incluidos los borradores abandonados que la máquina de estados del configurador captura en cada transición. Los responsables clasifican los leads por puntuación, los leads calientes se encaminan automáticamente a llamadas de consulta y los leads tibios pasan a una cadencia de seguimiento con plantillas que rellenan previamente la configuración que el comprador realmente construyó. El modelo de lead scoring es un objeto de configuración que el responsable puede ajustar sin tocar código, de modo que el negocio puede afinar qué significa «cualificado» a medida que madura el embudo. Un canal de partners (distribuidores e instaladores que quieren incorporar el configurador a su propio sitio con su propia marca) es una fila de configuración multi-tenant más un adaptador de precios por partner, no un desarrollo aparte. Todo el subsistema está diseñado para que un futuro partner de financiación, un nivel de precios por contrato B2B para Estados Unidos y la Unión Europea o un traspaso a un marketplace de grandes cadenas de reformas del hogar sea un cambio de configuración sobre el motor y el servicio de derechos, no una publicación de código.

Lanzamiento en Estados Unidos y la Unión Europea

Mosokna se lanzó en los tres sitios de marca con fichas activas en Estados Unidos y en la Unión Europea. La versión en inglés atiende a compradores de California, Nueva York, Texas, Florida y Washington en EE. UU., y a compradores de Países Bajos, Alemania, Francia, Irlanda y Suecia en la UE, sin una base de código distinta por región. Los adaptadores de precios por región tratan con honestidad la moneda, los multiplicadores de mano de obra y los impuestos, y el configurador muestra un aviso regional bajo cada presupuesto para que el comprador vea qué está incluido y qué no antes de fijar el precio. Los flujos de consentimiento dependen de la región en la capa del cliente: los usuarios de la UE y del EEE reciben una pantalla de consentimiento granular al estilo del RGPD, con interruptores separados para el seguimiento comercial; los usuarios de California reciben en el mismo flujo un aviso al estilo de la CCPA, «No vender ni compartir mi información personal». Las prácticas de tratamiento de datos están alineadas con el RGPD para los usuarios europeos y con el mosaico de normas estatales de privacidad de EE. UU.: CCPA / CPRA (California), VCDPA (Virginia), CPA (Colorado), CTDPA (Connecticut), UCPA (Utah), TDPSA (Texas) y la CPA de Oregón.

El configurador y el CRM se desplegaron en paralelo en regiones de distribuidores de EE. UU. y la UE (Países Bajos, Alemania, Francia, Suecia e Irlanda para la cobertura de la UE; territorios de distribuidores de la costa este y la costa oeste de EE. UU. para Norteamérica), con los leads de cada región aprovisionados de forma idéntica sobre la misma base de datos multi-tenant. El servicio de emparejamiento que elige el equipo de consulta adecuado para cada lead ejecuta workers sin estado que pueden fijarse de forma independiente a regiones de la UE o de EE. UU. para futuros compromisos de residencia de datos. El equipo de ingeniería que está detrás del desarrollo está repartido en la zona CET y trabaja con una jornada CET con solapamiento con la costa este de EE. UU. (9:00–13:00 ET) para las reuniones diarias del equipo comercial, la coordinación con el fabricante y la respuesta a incidencias: la franja horaria que permite a un equipo comercial estadounidense y a un equipo de ingeniería europeo compartir cuatro horas de solapamiento en directo cada día.

Stack tecnológico y hoja de ruta

PHP Laravel React Redux Toolkit PostgreSQL Redis REST API Arquitectura multi-tenant OpenStreetMap Nominatim DSL del motor de precios Máquina de estados del configurador Módulo de CRM Lead scoring Entrega por webhook Docker Nginx CDN Caché en el edge Almacén de registros de auditoría

La hoja de ruta activa de desarrollo de software a medida de Mosokna incluye una integración con un partner de financiación que muestre cuotas a plazos dentro del configurador, un nivel de precios por contrato B2B con gestión de equipos, un portal de traspaso a instaladores para los distribuidores partners y una versión incrustable del configurador para sitios de terceros de reformas del hogar. Está prevista una extensión de tejados y acristalamientos que reutilice el mismo motor multi-tenant, y el subsistema de derechos ya está estructurado para la asignación a varios usuarios. Los planes de infraestructura incluyen más ajuste del rendimiento del motor de precios, un banco de pruebas interno de regresión contra el conjunto de pruebas de paridad y una futura evaluación independiente de preparación integrada en la hoja de ruta de cloud y DevOps.

Cree una plataforma de presupuestos como esta: hable con nosotros

Si está planificando una plataforma de presupuestos, un configurador multi-tenant o cualquier consolidación en la que varias calculadoras que se desvían deban fundirse en un único motor para públicos de EE. UU. y la UE, hemos entregado este stack de principio a fin y podemos acortar de forma significativa el plazo de desarrollo. El producto en servicio está disponible en mosokna.ru, y el equipo de ingeniería que lo desarrolló forma parte de YuSMP Group. Trabajamos a precio cerrado para MVP bien acotados y con equipos de desarrollo dedicados para la entrega continua, con una jornada CET y una franja garantizada de solapamiento con la costa este de EE. UU. (9:00–13:00 ET) para reuniones diarias, demos y respuesta a incidencias.

Reservar una llamada inicial Ver servicios de desarrollo web

Preguntas frecuentes

¿Cuánto cuesta crear una plataforma de presupuestos de ventanas con configurador y CRM?

Un MVP acotado de presupuestos de ventanas, con un motor de precios en Laravel, un configurador en React, búsqueda por dirección, un carrito de compra y un CRM básico para la gestión de leads, suele costar $120k–$240k. Añadir sitios de marca multi-tenant que comparten un motor, un configurador de puerta de balcón, adaptadores de precios regionales, bibliotecas de perfiles y complementos e integraciones con el stack contable del distribuidor lleva una plataforma completa a $260k–$520k. Los principales factores de coste son la consolidación de la lógica del motor de precios, la máquina de estados del configurador y la capa de aislamiento de datos multi-tenant.

¿Por qué usar un motor multi-tenant en Laravel en lugar de plugins de WordPress o un configurador SaaS?

Los plugins de calculadora de WordPress son rápidos de desplegar, pero atan cada sitio de marca a su propia copia de la lógica de precios, que es exactamente el problema que tenía Mosokna antes de la reconstrucción: tres sitios, tres calculadoras que se desviaban, tres conjuntos de errores acumulados. Un configurador SaaS resuelve el problema del motor, pero cede al proveedor cada decisión de diseño, de CRM y de contenido a través de sus plantillas. El multi-tenant en Laravel da al negocio un motor, un CRM y diseños por marca con adaptadores de precios regionales que comparten la misma pista de auditoría.

¿Cómo funciona la detección automática de medidas a partir de la dirección?

El comprador introduce una dirección; un paso de geocodificación con OpenStreetMap la resuelve a un edificio y una consulta de tipología según la serie del edificio muestra las medidas típicas de ventana de esa unidad. El comprador sigue confirmando o ajustando cada medida al milímetro antes de que se fije el precio, pero la detección automática reduce la fricción de medición en un orden de magnitud para las series de edificios más comunes. Cuando no existe coincidencia de tipología, el comprador introduce las medidas manualmente con la misma precisión y validación.

¿Cómo es el cumplimiento del RGPD y la CCPA en una plataforma de presupuestos con CRM?

Una plataforma de presupuestos con CRM recoge datos personales reales (nombres, teléfonos, direcciones, historial de configuración), por lo que las obligaciones son de primer nivel. El flujo de captación de leads ofrece una pantalla de consentimiento granular para los usuarios de la Unión Europea que satisface el RGPD, y un aviso de la CCPA / CPRA para los usuarios de California en el mismo flujo. Los registros del CRM tienen retención limitada, el acceso basado en roles controla qué responsable puede leer qué lead y una solicitud de eliminación es una única tarea del backend en todo el plano de datos multi-tenant.

¿Cuánto se tarda en lanzar una plataforma de presupuestos multi-tenant con CRM?

Un MVP acotado con un motor de precios en Laravel, un configurador en React, búsqueda por dirección, un carrito de compra, un módulo de CRM y un único sitio de marca suele llevar de 16 a 22 semanas. Añadir un segundo y un tercer sitio de marca que compartan el mismo motor, adaptadores de precios regionales, un configurador de puerta de balcón y el encaminamiento de consultas a los responsables suma de 6 a 10 semanas. La fase de refuerzo preparada para auditoría (aislamiento de datos multi-tenant, acceso basado en roles, políticas de retención y flujos de consentimiento del RGPD + la CCPA) suele subestimarse y conviene presupuestarla en 3–5 semanas.

Compartir este caso

LinkedIn X

Planifique un desarrollo similar

Reservar una llamada inicial

Pedir propuesta

Cuéntenos algunos detalles y un consultor sénior le responderá en un día hábil.