Audit legacy & estrazione regole
Tre calcolatrici sito brand verificate riga per riga, regole di business estratte in un set canonico, bug history triagliata, postura GDPR + CCPA mappata, modello dati multi-tenant progettato.
Caso di studio · Edilizia residenziale · Web
Come abbiamo rilasciato in produzione una piattaforma di preventivi finestre — un unico motore prezzi Laravel, un unico configuratore React, un unico CRM, a supporto di tre siti brand separati — che offre agli acquirenti un preventivo preciso al millimetro in pochi minuti e al team vendite una casella di posta lead unificata, con postura pronta per audit per US e UE.
Il produttore Mosokna si è presentato con tre siti brand, tre calcolatrici di preventivazione indipendenti e tre diverse serie di bug di pricing accumulati. La stessa finestra standard veniva preventivata a tre prezzi diversi a seconda del sito brand su cui il cliente atterrava, e il team vendite non aveva una casella di posta unificata per i lead che arrivavano dai tre negozi online. Il brief di prodotto era inequivocabile: consolidare ogni calcolatrice in un unico motore, offrire agli acquirenti negli Stati Uniti e nell'Unione Europea un preventivo accurato al millimetro con un prefill delle dimensioni basato sull'indirizzo, e collegare il funnel a un CRM reale. Abbiamo verificato ogni calcolatrice legacy nonostante la documentazione incompleta, progettato un motore prezzi Laravel che contiene ogni regola di business in un unico posto, costruito un configuratore React che pilota il motore, e affiancato un modulo CRM che il team vendite usa ogni giorno. Un'architettura multi-tenant significa che un unico deploy alimenta tutti e tre i siti brand con layout per brand, adattatori di pricing regionali e un audit trail condiviso. Il prodotto live è su mosokna.ru per il pubblico home improvement US & UE.
Una panoramica di ciò che il consolidamento Mosokna ha consegnato attraverso il motore prezzi, il configuratore, il CRM e tre siti brand nel primo ciclo di produzione.

La decisione architetturale ha dominato ogni altra leva nella ricostruzione. Abbiamo scelto un motore multi-tenant Laravel rispetto ai plugin calcolatrice WordPress e a un configuratore SaaS preconfezionato perché i compromessi si adattavano a un produttore che gestisce tre siti brand che condividono la fisica del prodotto ma non il racconto del brand. I plugin WordPress sono veloci da installare ed è esattamente la ragione per cui Mosokna era nei guai: ogni sito brand aveva la propria copia del plugin, la propria storia di bug, le proprie modifiche alle regole di pricing che nessuno riusciva a riconciliare. Un configuratore SaaS risolve il problema del motore di pricing ma lo scambia con vincoli di template del fornitore, lock-in dei dati del fornitore e impossibilità di legare un layout di brand al motore senza acrobazie con iframe.
Laravel multi-tenant ribalta entrambi i compromessi. Un unico servizio contiene ogni regola di business — conteggi dei vetri, famiglie di profili, optional hardware, supplementi regionali — e i layout per brand leggono dallo stesso motore tramite una REST API pulita. La macchina a stati del configuratore risiede in Laravel e il front end è un thin client React + Redux Toolkit che renderizza tutto ciò che il motore consente, così una modifica di pricing viene distribuita a tutti e tre i siti brand simultaneamente senza copia per sito. Un futuro quarto sito brand è una riga di configurazione, non un progetto di ingegneria.
| Dimensione | Laravel multi-tenant (Mosokna) | WordPress + plugin | Configuratore SaaS |
|---|---|---|---|
| Isolamento logica configurazione | Un motore, un set di regole, adattatori per brand | Copia plugin per sito — deriva immediata | Proprietà del fornitore — schema fisso |
| Costo ricostruzione motore prezzi | Modifica un servizio, distribuisci a tutti e tre i siti | Modifica tre plugin, sperare nella parità | Ticket al fornitore — attesa roadmap |
| Collegamento form lead a CRM | Stesso backend — scrittura diretta nel CRM | Plugin form + plugin bridge + sync job | Solo webhook a CRM esterno |
| Adattamento pricing regionale (US & UE) | Adattatore per regione su un unico motore | Plugin per regione — deriva dello schema | Bloccato per regione o extra fee fornitore |
| Layout personalizzato per brand | Layer React indipendente per brand | Template tema per brand | Vincoli template fornitore |
| Audit trail tra siti brand | Un unico log di audit — a livello di motore | Tre log — riconciliazione manuale | Log fornitore — export limitato |
| Lock-in fornitore / dipendenze | Framework open — portabile | Ecosistema plugin — moderato | Lock-in fornitore rigido |
Riferimenti: Documentazione framework Laravel, Documentazione React, Geocodifica OpenStreetMap Nominatim.

Il configuratore è sviluppato in React con Redux Toolkit che pilota una macchina a stati che rispecchia il motore Laravel uno a uno. L'acquirente inserisce un indirizzo, un passaggio di geocodifica OpenStreetMap Nominatim lo risolve a un edificio, e una ricerca tipologica sulle serie dell'edificio fa emergere le dimensioni tipiche delle finestre per quella unità. Ogni transizione — indirizzo risolto, dimensioni confermate, conteggio vetri scelto, profilo selezionato, optional hardware selezionati — è uno stato guardato nella macchina, così il motore non può mai ricevere una configurazione malformata. L'input al millimetro si valida prima lato client per reattività, poi lato server per autorevolezza prima che un prezzo si blocchi.
La stessa macchina a stati pilota ogni sito brand. I temi React per brand forniscono la tipografia, la palette di colori e la densità di layout che ogni brand richiede, ma il grafo di stati e il round trip del motore sono identici. Il risultato è un configuratore che un acquirente negli Stati Uniti o nell'Unione Europea può completare in pochi minuti, con un prezzo vincolante anziché indicativo, e un carrello completato che approda direttamente nel CRM come lead qualificato. L'intera superficie web viene consegnata nell'ambito della nostra pratica di sviluppo di applicazioni web.

Il motore prezzi è sviluppato in Laravel con servizi PHP che contengono ogni regola di business accumulata in due decenni di produzione di infissi. Le configurazioni a vetro singolo, doppio e triplo portano ciascuna la propria fisica e i propri componenti di prezzo; i sottotipi porta-finestra balcone ereditano dallo stesso motore ma aggiungono tipi di apertura extra, set hardware e supplementi di installazione. Gli adattatori regionali aggiungono supplementi per regione, valuta e moltiplicatori di manodopera in modo che lo stesso motore prezzi onestamente la stessa configurazione nei mercati US e UE senza biforcazione del set di regole.
Ogni bug legacy proveniente dalle tre calcolatrici ritirate è stato triagliato rispetto al nuovo motore, e un harness di parità ha confrontato oltre 4.000 preventivi storici con i nuovi prezzi riga per riga. Dove il risultato legacy era semplicemente errato, il nuovo motore fornisce la risposta corretta; dove il risultato legacy era una concessione deliberata, il motore la porta avanti con un commento esplicito alla regola di business in modo che il prossimo ingegnere possa trovarla. Il motore si trova dietro la stessa REST API usata dal configuratore, e il CRM vi legge direttamente — nessuna copia separata di «snapshot prezzo» deriva nel record lead. Il livello di pricing viene consegnato nell'ambito della nostra pratica di sviluppo software su misura.

Il CRM è integrato nella stessa applicazione Laravel del motore prezzi, così un lead approda nella casella di posta nell'istante in cui l'acquirente completa un carrello — nessun bridge webhook, nessun sync job, nessun gap di consistenza eventuale. I responsabili vendite vedono i lead raggruppati per sito brand, classificati per completezza del configuratore e risoluzione dell'indirizzo, e instradati automaticamente al team di consulenza corretto. L'isolamento dei dati multi-tenant opera a livello di riga del database: ogni record porta una chiave tenant, ogni query la applica, e un responsabile del brand A non può leggere un lead del brand B nemmeno con un URL costruito. I controlli di accesso basati su ruoli indicano quale responsabile può leggere quale lead, e i log di audit catturano ogni lettura e scrittura per la revisione di conformità.
La privacy dei clienti è integrata nella piattaforma fin dal primo giorno. Il flusso di acquisizione lead è consapevole della regione: gli utenti nell'Unione Europea ricevono una schermata di consenso granulare GDPR con toggle separati per il follow-up di marketing e l'analisi del prodotto; gli utenti in California ricevono la disclosure CCPA / CPRA «Non vendere o condividere le mie informazioni personali» nello stesso flusso. I record CRM hanno un periodo di retention definito, le richieste di cancellazione sono un singolo job backend su tutti e tre i siti brand, e il log di audit conserva la traccia evidenziale per l'ambiente normativo US & UE.
Postura di conformità: conforme al GDPR · pronto per ISO 27001 · SOC 2 Type II in corso · compatibile HIPAA · CCPA riconosciuto.
Un progetto in cinque fasi che ha portato Mosokna da tre calcolatrici brand alla deriva a un'unica piattaforma multi-tenant consolidata con CRM.
Tre calcolatrici sito brand verificate riga per riga, regole di business estratte in un set canonico, bug history triagliata, postura GDPR + CCPA mappata, modello dati multi-tenant progettato.
Scheletro motore prezzi Laravel, macchina a stati configuratore, contratto REST API, client React + Redux Toolkit, rilevamento automatico dimensioni per indirizzo tramite OpenStreetMap.
Temi React per brand che leggono da un unico motore, sottotipo configuratore porta-finestra balcone, modulo CRM, lead scoring, accesso basato su ruoli, instradamento consulenza responsabile.
Isolamento dati multi-tenant a livello di riga, politiche di retention, flussi di consenso consapevoli della regione, harness di parità che confronta oltre 4.000 preventivi legacy con il nuovo motore, scaffolding preparazione terze parti.
Cutover sui tre siti brand, calcolatrici legacy ritirate, onboarding del team vendite sul CRM, telemetria del funnel di conversione, ciclo di correzione del primo ciclo nelle superfici US e UE.
Il CRM di Mosokna è stato costruito in modo che il team vendite lavori su una sola casella di posta, non tre. Ogni lead porta il sito brand sorgente, il punteggio di completezza del configuratore, lo stato di risoluzione dell'indirizzo e la cronologia completa della configurazione che l'acquirente ha costruito — incluse le bozze abbandonate che la macchina a stati del configuratore acquisisce a ogni transizione. I responsabili smistano i lead per punteggio, i lead caldi vengono instradati automaticamente alle telefonate di consulenza, e i lead tiepidi entrano in una sequenza di follow-up con template che pre-compilano la configurazione che l'acquirente aveva effettivamente costruito. Il modello di lead scoring è un oggetto di configurazione che il responsabile può regolare senza toccare il codice, così l'azienda può calibrare il significato di «qualificato» man mano che il funnel matura. Un canale partner — dealer e installatori che vogliono inserire il configuratore sul proprio sito con il proprio brand — è una riga di configurazione multi-tenant più un adattatore di pricing per partner, non un build separato. L'intero sottosistema è progettato in modo che un futuro partner finanziario, un livello di pricing contrattuale B2B per gli Stati Uniti e l'Unione Europea, o un passaggio a grandi catene di home improvement sia una modifica alla configurazione del motore e del servizio di entitlement, non un rilascio di codice.
Mosokna è stata lanciata sui tre siti brand con store attivi negli Stati Uniti e nell'Unione Europea. La build in lingua inglese serve gli acquirenti in California, New York, Texas, Florida e Washington negli USA, e gli acquirenti nei Paesi Bassi, Germania, Francia, Irlanda e Svezia nell'UE, senza una codebase separata per regione. Gli adattatori di pricing regionali gestiscono onestamente valuta, moltiplicatori di manodopera e trattamento delle tasse, e il configuratore mostra una disclosure regionale sotto ogni preventivo in modo che l'acquirente veda cosa è incluso e cosa è escluso prima che il prezzo si blocchi. I flussi di consenso sono consapevoli della regione al livello del client: gli utenti nell'UE e nello SEE ricevono una schermata di consenso granulare in stile GDPR con toggle separati per il follow-up di marketing; gli utenti in California ricevono una disclosure in stile CCPA «Non vendere o condividere le mie informazioni personali» nello stesso flusso. Le pratiche di gestione dei dati sono allineate con il GDPR per gli utenti europei e con il patchwork privacy statunitense — CCPA / CPRA (California), VCDPA (Virginia), CPA (Colorado), CTDPA (Connecticut), UCPA (Utah), TDPSA (Texas) e Oregon CPA.
Il configuratore e il CRM sono stati distribuiti nelle regioni dealer US e UE in parallelo — Paesi Bassi, Germania, Francia, Svezia e Irlanda per la copertura UE; territori dealer US Est e US Ovest per il Nord America — con i lead di ogni regione provisionati in modo identico rispetto allo stesso database multi-tenant. Il servizio di corrispondenza che sceglie il team di consulenza corretto per lead esegue worker stateless che possono essere assegnati a regioni UE o US in modo indipendente per futuri impegni di residenza dei dati. Il team di ingegneria dietro il progetto opera in CET e mantiene un orario di lavoro CET con sovrapposizione con la costa est degli Stati Uniti (9:00–13:00 ET) per gli stand-up del team vendite, il coordinamento lato produttore e la risposta agli incidenti — il fuso orario che permette a un team vendite US e a un team di ingegneria UE di condividere quattro ore di sovrapposizione live ogni giorno.
La roadmap attiva di sviluppo software su misura per Mosokna include un'integrazione con partner finanziario che mostra preventivi a rate dentro il configuratore, un livello di pricing contrattuale B2B con gestione del team, un portale di handoff installatori per dealer partner e un embed del configuratore per siti di home improvement di terze parti. Un'estensione tetti-e-vetrazione che riutilizza lo stesso motore multi-tenant è pianificata, e il sottosistema di entitlement è già strutturato per l'assegnazione multi-postazione. I piani infrastrutturali includono ulteriore ottimizzazione delle prestazioni del motore prezzi, un harness di regressione interno rispetto al set di test di parità e una futura valutazione di preparazione indipendente inserita nella roadmap Cloud & DevOps.
Se stai pianificando una piattaforma di preventivazione, un configuratore multi-tenant o qualsiasi consolidamento dove diverse calcolatrici alla deriva devono convergere in un unico motore per i pubblici in US e UE, abbiamo consegnato questo stack end-to-end e possiamo ridurre significativamente la timeline del progetto. Il prodotto live è disponibile su mosokna.ru, e il team di ingegneria dietro di esso fa parte di YuSMP Group. Lavoriamo a prezzo fisso per MVP ben definiti e con team di sviluppo dedicati per la consegna continuativa, con un orario di lavoro CET e una finestra garantita di sovrapposizione con la costa est degli Stati Uniti (9:00–13:00 ET) per stand-up, demo e risposta agli incidenti.
Un MVP focalizzato per preventivi finestre con motore prezzi Laravel, configuratore React, ricerca per indirizzo, carrello e CRM base per la gestione dei lead ha un costo tipico compreso tra €120.000 e €240.000. L'aggiunta di siti brand multi-tenant che condividono un unico motore, un configuratore porta-finestra balcone, adattatori di pricing regionali, librerie di profili e optional e integrazioni con il sistema contabile del dealer porta un prodotto completo a €260.000–€520.000. I principali fattori di costo sono il consolidamento della logica del motore prezzi, la macchina a stati del configuratore e il livello di isolamento dati multi-tenant.
I plugin calcolatrice di WordPress sono rapidi da installare ma bloccano ogni sito brand nella propria copia della logica di pricing, che era esattamente il problema di Mosokna prima della ricostruzione — tre siti, tre calcolatrici alla deriva, tre serie di bug accumulati. Un configuratore SaaS risolve il problema del motore ma cede ogni scelta di layout, CRM e contenuto ai template del fornitore. Laravel multi-tenant offre all'azienda un unico motore, un unico CRM e layout per brand con adattatori di pricing regionali che condividono lo stesso audit trail.
L'acquirente inserisce un indirizzo; un passaggio di geocodifica OpenStreetMap lo risolve a un edificio e una ricerca tipologica sulle serie dell'edificio fa emergere le dimensioni tipiche delle finestre per quella unità. L'acquirente conferma o regola comunque ogni dimensione al millimetro prima che il prezzo si blocchi, ma il rilevamento automatico riduce significativamente l'attrito di misurazione per le serie di edifici più comuni. Dove non esiste una corrispondenza tipologica, l'acquirente inserisce le dimensioni manualmente con la stessa precisione e validazione.
Una piattaforma di preventivazione con CRM raccoglie dati personali reali — nomi, numeri di telefono, indirizzi, cronologia delle configurazioni — quindi gli obblighi sono di primo livello. Il flusso di acquisizione lead espone una schermata di consenso granulare per gli utenti dell'Unione Europea che soddisfa il GDPR, e una disclosure CCPA / CPRA per gli utenti in California nello stesso flusso. I record CRM hanno un periodo di retention definito, i controlli di accesso basati su ruoli indicano quale responsabile può leggere quale lead, e una richiesta di cancellazione è un singolo job backend sull'intero piano dati multi-tenant.
Un MVP focalizzato con motore prezzi Laravel, configuratore React, ricerca per indirizzo, carrello, modulo CRM e un singolo sito brand richiede tipicamente 16–22 settimane. L'aggiunta di un secondo e terzo sito brand che condividono lo stesso motore, adattatori di pricing regionali, configuratore porta-finestra balcone e instradamento consulenza con il responsabile aggiunge 6–10 settimane. Il passaggio di consolidamento pronto per audit — isolamento dati multi-tenant, accesso basato su ruoli, politiche di retention e flussi di consenso GDPR + CCPA — è spesso sottostimato e dovrebbe essere pianificato con 3–5 settimane.
Casi correlati

Ecosistema offline-first che sostituisce i diari cartacei per il controllo dei processi del reattore.
Vedi il caso →
Sito web riprogettato e ottimizzato SEO per un'azienda di ristrutturazione e design di appartamenti.
Vedi il caso →
Landing Tilda con acquisizione lead tramite bot Telegram — funnel inbound rapido per un'azienda di servizi.
Vedi il caso →Condividi alcuni dettagli e un consulente senior risponderà entro un giorno lavorativo.