Negozi Refactor: differenze tra le versioni

Da Webmobili Wiki.
 
(16 versioni intermedie di uno stesso utente non sono mostrate)
Riga 58: Riga 58:
|bit
|bit
|Indica se ha il commerce attivo
|Indica se ha il commerce attivo
|-
|style="font-family: monospace;"|ESW
|bit
|Indica se proviene da EasyStoreWeb
|}
|}


=== ShopNet Ad Hoc ===
=== ShopNet Ad Hoc ===
Queste ShopNet sono diverse e si comportano in questo modo:
Queste ShopNet sono diverse e si comportano in questo modo:
* '''ShopNet Trovaprodotti Orfani''' Creazione di una ShopNet per tutti i Trovaprodotti che non avevano una ShopNet. Hanno <code>Piva = '000000000000'</code>. Ne viene creata una per ognuno.
* '''ShopNet Anagrafiche''' - Contiene tutti gli ShopPoint di tipo != 0 che sono anagrafiche.
* '''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.
* '''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.
Riga 205: Riga 210:
* '''cover''' che sta per cover (slider iniziale della scheda negozio, manca ancora l'alternativa)
* '''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)
* '''p''' che sta per picture (quella del modulino con la gallery in scheda negozio)


== ShopPointPictureCulture ==
== ShopPointPictureCulture ==
Riga 212: Riga 216:
! colspan="3"|WM_ShopPointPictureCulture
! colspan="3"|WM_ShopPointPictureCulture
|-
|-
|style="font-family: monospace;"|ID<sup>P</sup>
|style="font-family: monospace;"|ShopPointPictureID<sup>P</sup>
|int (pk)
|int (pk)
|ID della picture
|ID della picture
|-
|-
|style="font-family: monospace;"|Culture
|style="font-family: monospace;"|Culture<sup>P</sup>
|varchar(5)
|varchar(5)
|Cultura
|Cultura
Riga 310: Riga 314:
* '''TP_CORE''' muore insieme al database. Tutti gli applicativi che la usano dovrebbero cambiare.
* '''TP_CORE''' muore insieme al database. Tutti gli applicativi che la usano dovrebbero cambiare.
* '''PROGETTI''' tutta la parte delle tabelle <code>PROG_</code> risulta complessa da toccare perché eventuali cambiamenti si ripercuoterebbero sul progetto ''DashboardProgetti''. Perciò si mantiene la "ShopNet vecchia maniera"
* '''PROGETTI''' tutta la parte delle tabelle <code>PROG_</code> 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 ==
== Tabelle obsolete ==
Riga 321: Riga 326:
* <code>L_Manufacturer_Shop</code> nessun utilizzo in Designbest
* <code>L_Manufacturer_Shop</code> nessun utilizzo in Designbest


I valori delle tabelle <code>Region, Province e City</code> sono sporchi e vanno controllati
<syntaxhighlight lang="sql">
SELECT
RegionCulture.Region,
ProvinceCulture.Province,
City.City
FROM City
INNER JOIN Province ON Province.ID = City.ProvinceID
INNER JOIN ProvinceCulture ON Province.ID = ProvinceCUlture.ProvinceID
INNER JOIN Region ON Region.ID = Province.RegionID
INNER JOIN RegionCulture ON Region.ID = RegionCulture.RegionID
WHERE RegionCulture.Culture = 'en-AU'
</syntaxhighlight>
Ci sono troppe Roma e troppi Milano....
== 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 <code>Shop</code> e poi ''View Dependencies''.<br/>
Sono indicate con un'icona bianca. L'obbiettivo è farle sparire modificandole in modo che usino solo le tabelle nuove.


== Tipologie di contratto ==
== Tipologie di contratto ==
Riga 344: Riga 367:
==== Solo anagrafica ====
==== Solo anagrafica ====
* Creazione di almeno un record in <code>WM_ShopPoint</code> (+ <code>WM_ShopPointCulture</code>) con ''TipoVisibilita=1'' o ''TipoVisibilita=2''. Scegliere ''Anagrafiche'' come ShopNet.
* Creazione di almeno un record in <code>WM_ShopPoint</code> (+ <code>WM_ShopPointCulture</code>) 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 ==
<syntaxhighlight lang="sql">
-- 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
</syntaxhighlight>
Con la nuova gestione deve sparire il concetto di ''Trovaprodotti Fittizio'',<br/>
un Trovaprodotti non è più un'entità Shop a sè stante, ma la somma dei cataloghi delle sedi della sua ShopNet.<br/>
Tutte le occasioni che erano associate ad un ''Trovaprodotti Fittizio'', dopo la sincronizzazione, risultano associate ad una sede spenta (ex ''Trovaprodotti Fittizio'').<br/>
Necessario intervento su questi record della <code>WM_ProductBargain</code> per assegnarli alla sede visibile corrispondente nella quale si trovano.

Versione attuale delle 11:50, 23 mar 2022

ShopNet

[modifica]

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

[modifica]

Queste ShopNet sono diverse e si comportano in questo modo:

  • ShopNet Trovaprodotti Orfani Creazione di una ShopNet per tutti i Trovaprodotti che non avevano una ShopNet. Hanno Piva = '000000000000'. Ne viene creata una per ognuno.
  • 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

[modifica]

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

[modifica]

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

[modifica]
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

[modifica]

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

[modifica]

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

[modifica]

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

[modifica]

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

[modifica]
  • 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à

[modifica]

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

[modifica]

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

I valori delle tabelle Region, Province e City sono sporchi e vanno controllati

SELECT
	RegionCulture.Region,
	ProvinceCulture.Province,
	City.City
FROM City
	INNER JOIN Province ON Province.ID = City.ProvinceID
	INNER JOIN ProvinceCulture ON Province.ID = ProvinceCUlture.ProvinceID
	INNER JOIN Region ON Region.ID = Province.RegionID
	INNER JOIN RegionCulture ON Region.ID = RegionCulture.RegionID
WHERE RegionCulture.Culture = 'en-AU'

Ci sono troppe Roma e troppi Milano....

Stored Procedure da aggiornare

[modifica]

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

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

Casi particolari

[modifica]

Solo Outlet (e StoreChannel light)

[modifica]
  • 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

[modifica]
  • 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

[modifica]
  • 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

[modifica]

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

[modifica]
-- 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.