Negozi Refactor

Da Webmobili Wiki.

ShopNet

Il campo ID corrisponde esattamente a PROG_Author.idShopGroup.
Questo ci permette di collegare la ShopNet all'utente (rappresentato da un GUID).
No chiave esterna.

WM_ShopNet
IDP int (pk) id della ShopNet
Name nvarchar(200) Nome della ShopNet
RagSociale nvarchar(100) Nome della Ragione sociale
Firmatario nvarchar(100) Nome del firmatario del contratto
Piva nvarchar(50) Partita IVA
MainMail nvarchar(255) Mail principale
Notes text (nullable) Note
StatusID int Stato della ShopNet
AgentID int (nullable) ID dell'agente assegnato
Enable_LMWorld bit Se abilitato a ricevere lead dall'estero
TP_ID int (nullable) Se valorizzato possiede un Trovaprodotti
Enable_Outlet bit Indica se ha l'outlet attivo
Enable_Commerce bit Indica se ha il commerce attivo
ESW bit Indica se proviene da EasyStoreWeb

ShopNet Ad Hoc

Queste ShopNet sono diverse e si comportano in questo modo:

  • ShopNet Anagrafiche - Contiene tutti gli ShopPoint di tipo != 0 che sono anagrafiche.
  • ShopNet Estero - Contiene tutti gli ShopPoint Esteri (che non hanno accesso alle statistiche). Se mai dovessero avere un'area statistiche sarà necessario rimuovere gli ShopPoint implicati creando una ShopNet ad Hoc.

ShopPoint

Rappresenta la singola sede fisica di una ShopNet.

WM_ShopPoint
IDP int (pk) id della sede
ShopNetID int (nullable) id della ShopNet di appartenenza (se null si tratta di anagrafiche o anagrafiche plus)
Name nvarchar(200) Nome della sede
Logo nvarchar(255) (nullable) Nome dell'immagine logo che potrebbe essere shoppoint-<id>-logo.gif
Website nvarchar(500) (nullable) Sito web della sede
Referente nvarchar(100) (nullable) Nome del referente della sede
Mail nvarchar(255) (nullable) Email della sede
Phone nvarchar(500) (nullable) Telefono della Sede
Fax nvarchar(200) (nullable) Fax della Sede
Address nvarchar(500) Indirizzo della sede
ZipCode nvarchar(20) CAP della sede
CityID int ID della città della sede
GeoCoordinates nvarchar(500) (nullable) Coordinate geografiche della sede
Sort int (default 0) Indica l'importanza di questa sede
Visible bit Visibilità della sede
TipoVisibilitaID int Indica la "classe sociale": vetrina, vetrina light (from easystore), anagrafica plus o anagrafica

ShopPointCulture

Una volta entrata in produzione la SP FT_ShopOneLineIndex sarà da modificare e dovrà attingere da questa.
Di conseguenza anche la View che si occupa della FullText FullTextShopsIT

WM_ShopPointCulture
IDP int (pk) ID univoco
ShopPointIDU int ID della sede di riferimento
CultureU varchar(5) Lingua a scelta tra (it-IT, fr-FR, de-DE o en-AU)
Description nvarchar(4000) Descrizione della sede
OpeningHours nvarchar(500) (nullable) Orari di apertura
OtherManufacturers nvarchar(1100) (nullable) Campo libero per altri manu
Sort int Ordinamento delle sedi

ShopPointPicture

WM_ShopPointPicture
IDP int (pk) ID della picture
ShopPointID int ID della sede
Master bit Picture master
Cover nvarchar(255) (nullable) Nome dell'immagine cover che potrebbe essere shoppoint-<id>-cover-<sort>.jpg
Picture nvarchar(255) (nullable) Nome dell'immagine normale che potrebbe essere shoppoint-<id>-p-<sort>.jpg
Sort int Ordinamento

Nella convenzione dei nomi di immagini abbiamo usato

  • logo che sta per logo (unico per ShopPoint)
  • cover che sta per cover (slider iniziale della scheda negozio, manca ancora l'alternativa)
  • p che sta per picture (quella del modulino con la gallery in scheda negozio)

ShopPointPictureCulture

Descrizione delle singole immagini della gallery in scheda negozio

WM_ShopPointPictureCulture
ShopPointPictureIDP int (pk) ID della picture
CultureP varchar(5) Cultura
Description nvarchar(2000) Descrizione dell'immagine

Trovaprodotti

Un Trovaprodotti è legato ad una ShopNet e rappresenta l'insieme di tutti i prodotti di tutte le sedi presenti in essa.
Trovaprodotti mostra anche i prodotti delle ShopSede non abilitate (caso di un cliente che ha Trovaprodotti senza Store Channel).

WM_Trovaprodotti
IDP int (pk) ID del trovaprodotti
ShopNetID int ID della ShopNet di appartenenza
Enabled bit Indica se abilitato
EmbedUrl nvarchar(255) (nullable) Eventuale url di embed
CSS text (nullable) Il CSS personalizzato di questo Trovaprodotti
PrivacyPolicyUrl nvarchar(255) (nullable) Eventuale link alla privacy policy del sito parente
MasterCulture varchar(5) Lingua master per questo Trovaprodotti (e per la sua Backoffice)

TrovaprodottiCulture

Ogni Trovaprodotti può avere più lingue, il parametro di culture sta nella url ed è obbligatorio.
Rimosse tutte le complicazioni precedenti (duplicati di duplicati per avere le altre lingue).

WM_TrovaprodottiCulture
TrovaprodottiIDP int (pk) ID del trovaprodotti
LinguaP varchar(5) (pk) Lingua del Trovaprodotti

Proprietà extra

Ogni sede può avere delle proprietà extra

  • L_Shop_ShopService, L_Shop_ShopServiceCulture, ShopService e ShopServiceCulture per elencare i servizi e la loro descrizione
  • L_Shop_Video (nome scorretto) per elencare i social della sede
  • L_Shop_Manufacturer sono i cataloghi che la sede tratta (in stock)
  • ShopContact indica uno o più contatti riferiti ad una sede
  • ShopContentExtra contenuti html per il pannello "extra"
  • Shop_LiveChat e Shop_LiveChat_History usate per la live chat (che probabilmente è nata morta)
  • ShopFulltextAdditions per fulltext
  • ShopManufacturerException per i negozi che non vogliono alcuni ambienti di alcuni produttori

Tutte queste tabelle andrebbero rinominate con la radice WM_ per avere un senso logico.
E i nomi Shop dovrebbero diventare ShopPoint.

Nuovi nomi tabelle

  • ShopService -> WM_ShopPointService (rimosso campo iconPath)
  • ShopServiceCulture -> WM_ShopPointServiceCulture
  • L_Shop_ShopService -> WM_L_ShopPoint_ShopPointService
  • L_Shop_ShopServiceCulture -> WM_L_ShopPoint_ShopPointServiceCulture
  • L_Shop_Video -> WM_L_ShopPoint_Video
  • L_Shop_Manufacturer -> WM_L_ShopPoint_Manufacturer
  • ShopContact -> WM_ShopPointContact
  • ShopContentExtra -> WM_ShopContentExtra
  • Shop_LiveChat -> WM_ShopPoint_LiveChat
  • Shop_LiveChat_History -> WM_Shop_LiveChat_History
  • ShopFulltextAdditions -> WM_ShopFulltextAdditions
  • ShopManufacturerException -> WM_ShopManufacturerException

Criticità

Ecco i punti difficoltosi

  • DATABASE Trovaprodotti sarebbe bello eliminarlo portando tutte le tabelle che ancora sono necessarie sul database di Designbest.
  • TP_CORE muore insieme al database. Tutti gli applicativi che la usano dovrebbero cambiare.
  • PROGETTI tutta la parte delle tabelle PROG_ risulta complessa da toccare perché eventuali cambiamenti si ripercuoterebbero sul progetto DashboardProgetti. Perciò si mantiene la "ShopNet vecchia maniera"
  • SINCRONIZZATORE LEAD MANAGER tutte le query dovrebbero attingere dalle nuove tabelle.

Tabelle obsolete

Elenco di tabelle che non usiamo/useremo più

  • L_Shop_TPP quando in scheda negozio si voleva mandare al Trovaprodotti
  • L_Shop_ShopFeature e ShopFeature, ShopFeatureFamily perché vuote
  • ShopProposalType perché ancora legata al primo Webmobili-Tavolaregalo-Internicasa
  • ShopNet, ShopNetCulture e L_Shop_ShopNet erano usate per elencare le altre sedi, ora non servono più perché abbiamo ShopNetSede
  • ShopType e ShopTypeCulture non vediamo attualmente il loro utilizzo
  • L_Shop_TP non servirebbe più. Attenzione perché viene usata da AreaStatistiche (e forse da Intruder).
  • L_Manufacturer_Shop nessun utilizzo in Designbest

Stored Procedure da aggiornare

L'elenco delle Stored Procedure da aggiornare per utilizzare le nuove tabelle si trova da SQL Management Studio cliccando col destro sulla tabella Shop e poi View Dependencies.
Sono indicate con un'icona bianca. L'obbiettivo è farle sparire modificandole in modo che usino solo le tabelle nuove.

Tipologie di contratto

  • Anagrafica (plus)
  • Store Channel
  • Outlet
  • E-Commerce
  • Trovaprodotti

Casi particolari

Solo Outlet (e StoreChannel light)

  • Creazione di record in WM_ShopNet con Enable_Outlet=1.
  • Creazione di almeno un record in WM_ShopPoint (+ WM_ShopPointCulture)
  • Creazione di un WM_Trovaprodotti (+ WM_TrovaprodottiCulture) con Enabled=0.

In pratica si crea uno Storechannel "light" abilitato all'outlet
e un Trovaprodotti non abilitato
che comunque permette di creare occasioni dalla ClientAdmin che mostrerà opzioni limitate al solo outlet (nascondendo selezioni, prodotti custom, eventi e impostazioni tp).

Solo Trovaprodotti

  • Creazione di record in WM_ShopNet.
  • Creazione di almeno un record in WM_ShopPoint (+ WM_ShopPointCulture) con Visible=0 (non vogliamo StoreChannel).
  • Creazione di un WM_Trovaprodotti (+ WM_TrovaprodottiCulture).

Solo anagrafica

  • Creazione di almeno un record in WM_ShopPoint (+ WM_ShopPointCulture) con TipoVisibilita=1 o TipoVisibilita=2. Scegliere Anagrafiche come ShopNet.


WM Core G - Nuova libreria

La nuova libreria si potrebbe chiamare WM Core G dove G sta per "grande" riferito a core che non è inglese, ma napoletano.

Remember: gestione dei fittizi

-- Artheco: 2 sedi + Trovaprodotti fittizio (109267)
SELECT *
FROM WM_ShopNet
WHERE TP_ID = 109267

-- Le ShopPoint della nuova ShopNet (315735)
SELECT *
FROM WM_ShopPoint
WHERE ShopNetID = 315735

-- Le sue occasioni sono mappate alla sede fittizia (109267)
SELECT *
FROM WM_ProductBargain
WHERE ShopPointID = 109267

-- La sede fittizia è giustamente non visibile
SELECT *
FROM WM_ShopPoint
WHERE ID = 109267

Con la nuova gestione deve sparire il concetto di Trovaprodotti Fittizio,
un Trovaprodotti non è più un'entità Shop a sè stante, ma la somma dei cataloghi delle sedi della sua ShopNet.

Tutte le occasioni che erano associate ad un Trovaprodotti Fittizio, dopo la sincronizzazione, risultano associate ad una sede spenta (ex Trovaprodotti Fittizio).
Necessario intervento su questi record della WM_ProductBargain per assegnarli alla sede visibile corrispondente nella quale si trovano.