Un cliente recentemente ha sviluppato un nuovo sistema di gestione delle scorte .net sviluppato che si aggancia al proprio EPOS e consente ai propri negozi di tenere traccia di ordini, prodotti, clienti, ecc. da un unico database centrale che utilizza MS SQL Server 2003. Il client spera di usarlo come un'opportunità per rinnovare / ri-sviluppare il loro sito per utilizzare anche questo database back-end centralizzato.
Ho esperienza con l'e-commerce, ma questa è la prima volta che sviluppo un sito che ha bisogno di lavorare con i sistemi di back-end delle aziende.
Speravo di utilizzare una piattaforma off-the-shelf come Magento per semplificare il processo di sviluppo e consentire futuri aggiornamenti e l'uso di plug-in / moduli. Tuttavia, dopo aver esaminato lo schema per i loro nuovi sistemi di back-end, è evidente che potrebbero esserci diversi problemi. Il loro database ha molti problemi di progettazione, le tabelle sono mal normalizzate e il loro approccio al design del database mi sembra datato.
Se dovessi utilizzare una piattaforma off-shelf come Magento, l'unico modo in cui posso vederlo funzionare è ricreare tutti i prodotti / categorie / clienti nel front-end DB, questo potrebbe dover essere fatto manualmente perché delle differenze di schema tra il backend (centralizzato db) e frontend (magento db). Sarebbe un compito immenso e creerebbe un nuovo problema su come gestire la replica dei dati (prodotti, livelli di scorte, prezzi, ordini, stati degli ordini). Il cliente attualmente gestisce tutti i prodotti e ordina i dati sul proprio sistema .net e vuole continuare a farlo, quindi ci dovrebbe essere un modo per aggiornare i siti db quando apportano modifiche ai loro sistemi back-end (per esempio nel caso l'ordine è stato spedito / annullato / ecc.). Allo stesso modo, il database centralizzato dovrebbe essere aggiornato dal front-end quando un cliente fa un ordine, aggiorna i livelli delle scorte, ecc. Questi sono solo due esempi di dati che dovranno essere sincronizzati, ma sono innumerevoli altri scenari.
Qualcuno ha esperienza di lavoro con Magento o altre piattaforme in situazioni simili a quelle sopra? Come hai gestito la replica dei dati e l'invio di dati tra il db centralizzato back-end e il front-end db?
Sto attraversando un periodo difficile per trovare il miglior setup / architettura per un sito come questo, qualsiasi suggerimento nella giusta direzione sarebbe molto apprezzato.
In retrospettiva non posso fare a meno di ritenere che la soluzione migliore sarebbe quella di creare una piattaforma interna da zero che possa connettersi direttamente al loro database centralizzato invece di utilizzare una piattaforma off-shelf e preoccuparsi della sincronizzazione dei dati tra back-end / fine frontale. Qualche idea?