Prodotti Refactor: differenze tra le versioni

Da Webmobili Wiki.
Riga 207: Riga 207:
|-
|-
|style="font-family: monospace;"|InHouseDelivery
|style="font-family: monospace;"|InHouseDelivery
|bit
|bit (nullable)
|Indica se consegna in-house
|Indica se consegna in-house
|-
|-

Versione delle 16:12, 12 gen 2022

Il progetto prevede di cambiare il dataset della tabella Product in modo da diventare simile a quello delle Occasioni

Tabella Product

Di seguito i campi di una situazione ottimale

WM_Product
IDP int id del prodotto
ManufacturerID int id del suo manufacturer
ManufacturerCustomName nvarchar(100) (nullable) Manufacturer personalizzato (deriva da old outlet)
StyleID int id dello Style
AmbientID int id dell'Ambient (forse non necessario qua)
TypeID int id del Type
DesignerID int (nullable) id del Designer
ReviewRating tinyint Sono le stelline presenti nel prodotto trovato in SERP (valori possibili: 4 ; 4.5 ;5 )
Visible bit Indica se il prodotto è visibile
InsertDate datetime Data di inserimento del prodotto nel database
LastUpdate datetime (nullable) Data dell'ultima modifica effettuata
Campi per uso interno
BackofficeNotes nvarchar(2000) (nullable) Note dalla redazione
DataAggiornamentoListino datetime (nullable) Data dell'ultimo aggiornamento del listino

Problema

Importando le occasioni in questa tabella ci troviamo i casi in cui il manufacturer è custom (scritto a mano dal rivenditore in un campo di testo).
Per poterli importare abbiamo fatto il seguente barbatrucco:

  • Creazione di un nuovo manufacturer chiamato Xtra Catalogo (con SEOName = custom_manufacturer )
  • Popolamento del campo WM_Product.ManufacturerID con l'ID di questo nuovo manu
  • Popolamento del campo WM_Product.ManufacturerCustomName con il nome testuale

L'applicativo dovrà implementare un caso particolare quando un prodotto avrà il manufacturer custom.
(pseudo codice)

IF ManufacturerID == ManuCustom.ID
  Manufacturer = WM_Product.ManufacturerCustomName

Tabella ProductCulture

WM_ProductCulture
IDP int ID autoincrementale del record
ProductIDU int ID del prodotto
CultureU varchar(5) Cultura del record
Name nvarchar(500) Nome del prodotto
Description nvarchar(4000) Descrizione del prodotto
Material nvarchar(4000) (nullable) Materiali del prodotto
Measures nvarchar(4000) (nullable) Misure del prodotto
NewProduct bit Indica se il prodotto è novità nella cultura selezionata
ShowInSearch bit Indica se il prodotto dev'essere visibile nelle ricerche per ambiente/tipologia
Visible bit Indica se il prodotto è visibile nella cultura selezionata

Tabella ProductBargain

Tabella che estende i prodotti con i campi necessari ai soli prodotti che sono occasioni (nell'outlet e nel Trovaprodotti)

WM_ProductBargain
BargainIDP int Vecchio OccasioneID, lo teniamo ancora per mantenere i vecchi url con l'altra numerazione
ProductIDU int id prodotto corrispondente nella tabella Product
ShopPointID int id della sede del rivenditore (no TpID)
ListPrice decimal(18, 2) Prezzo di listino
DiscountPrice decimal(18, 2) Prezzo scontato
InStock bit Indica se il prodotto è già imballato per la pronta consegna oppure se si trova in esposizione (0)
OutletApproved bit Indica se è abilitata per l'outlet
CommerceApproved bit Indica se è abilitata per il Commerce
ToModerate datetime (nullable) Se valorizzato indica il momento dal quale è in fase di moderazione per la pubblicazione su Commerce
Pieces int Numero di pezzi a disposizione
Sort int L'ordinamento rispetto alle altre occasioni dello stesso rivenditore

Tabella ProductBargainCulture

WM_ProductBargainCulture
BargainIDP int ID nella tabella WM_ProductBargain
CultureP varchar(5) Cultura del record
TransportAssembly nvarchar(300) (nullable) Trasporto e montaggio
IsFreeShipping bit Indica se la spedizione è gratuita
AdditionalShippingCharge decimal(18,2) Costi di spedizione
DeliveryDateId int (nullable) Indica su commerce il delivery date id (???)
ShippingCostIncluded bit Indica se il costo di spedizione è incluso
ShippingQuotation bit Indica se la spedizione è a preventivo
InHouseDelivery bit (nullable) Indica se consegna in-house
AllInclusiveDelivery bit Indica se consegna all-inclusive

Tabella ProductPicture

WM_ProductPicture
IDP int ID della picture
ProductID int ID del prodotto
Master bit Picture master
SquarePicture nvarchar(255) Nome dell'immagine quadrata che potrebbe essere product-<ProductID>-q-<m/a>-<Sort>.jpg
Picture nvarchar(255) Nome dell'immagine normale che potrebbe essere product-<ProductID>-n-<m/a>-<Sort>.jpg
Sort int Ordinamento

POSSIBILE SVILUPPO:
Solo 2 immagini per prodotto: quadrata e normale. Basterà uploadare le più grandi possedute. Ai ridimensionamenti ci penserà ImageKit.io.
Creare un unico folder di immagini con la seguente convenzione di nomi:

product-<ProductID>-<q|n>-<m|a>-<Sort>.jpg

es.
  product-86234-q-m-0.jpg // prima master quadrata
  product-86234-n-m-0.jpg // prima master normale
  product-86234-n-a-3.jpg // quarta alternativa normale

dove

  • q sta per quadrata
  • n sta per normale
  • m sta per master
  • a sta per alternativa

Tabelle obsolete

Elenco di tabelle che non usiamo/useremo più

  • L_Advertising_Product roba vecchia inutile
  • L_Product_MeasureRange vuota
  • L_Product_ProductPart vuota
  • L_Product_Selection non utilizzata nel progetto
  • L_Product_Variant vuota
  • L_Product_VariantCulture vuota
  • ProductMeasureVariant che è??
  • ProductMeasureVariantCulture che è??
  • L_ProductMeasureVariant_Measure che è??
  • Window vuota