Designbest Core Sviluppo

Da Webmobili Wiki.

Goal

Realizzare una versione agile e super performante di Designbest usando le ultime tecnologie Microsoft disponibili (.NET Core 6).

Database

Accorpamento database:

  • Designbest
  • Trovaprodotti

Tabelle

  • Language
  • LocalizedProperty
  • ManufacturerContractType
  • Manufacturer
  • Category
  • CategoryFilter
  • CategoryFilterValue
  • Product
  • ProductCulture
  • ProductBargain
  • ProductBargainCulture

  • Agent
  • ShopNetStatus
  • ShopNet
  • ShopPointVisibilityType
  • ShopPoint
  • Trovaprodotti
  • Region
  • Province
  • City

  • Picture

Popolamento Region/Province/City

Attualmente abbiamo importato i dati sporchi così come sono con la seguente query

INSERT INTO DesignbestCore.dbo.Region
SELECT Region.ID,
	CASE
		WHEN Region.CountryID = 3 THEN 1
		WHEN Region.CountryID = 2 THEN 3
		WHEN Region.CountryID = 4 THEN 4
		WHEN Region.CountryID = 1000 THEN 2
	END AS LanguageID,
	Region.Coordinates,
	Region.LocalizerCode,
	RegionCulture.Region AS [Name],
	LOWER(RegionCulture.SEORegion) AS SeoName
FROM Region
	INNER JOIN RegionCulture ON Region.ID = RegionCulture.RegionID


INSERT INTO DesignbestCore.dbo.Province
SELECT Province.ID,
	CASE
		WHEN Province.CountryID = 3 THEN 1
		WHEN Province.CountryID = 2 THEN 3
		WHEN Province.CountryID = 4 THEN 4
		WHEN Province.CountryID = 1000 THEN 2
	END AS LocalizationID,
	Province.Coordinates,
	Province.ProvinceCode,
	Province.RegionID,
	ProvinceCulture.Province AS Name,
	LOWER(ProvinceCulture.SEOProvince) AS SeoName
FROM Province
	INNER JOIN ProvinceCulture ON Province.ID = ProvinceCulture.ProvinceID
	INNER JOIN Region ON Province.RegionID = Region.ID

INSERT INTO DesignbestCore.dbo.City
SELECT City.ID,
	CASE
		WHEN City.CountryID = 3 THEN 1
		WHEN City.CountryID = 2 THEN 3
		WHEN City.CountryID = 4 THEN 4
		WHEN City.CountryID = 1000 THEN 2
	END AS LocalizationID,
	City.ProvinceID,
	City.City AS [Name],
	LOWER(City.SeoCity) AS SeoName
FROM City
	INNER JOIN Province ON Province.ID = City.ProvinceID
	INNER JOIN Region ON Province.RegionID = Region.ID

Custom Properties

L'idea è quella di creare da una semplicissima struttura di tabelle

  • ProductProperty
  • ProductPropertyValue
  • Mapping_Category_ProductProperty
  • Mapping_Product_ProductPropertyValue

l'assegnazione di qualsiasi proprietà (stile, finitura, colori, decori, formati, proprietà di tipologia, designer, campi custom)

Per ognuna di queste custom property è possibile specificare

  • Nome
  • Nome SEO
  • Valore
  • Immagine (opzionale, gestita da Pictures)

Stesso concetto su tabelle separete per gli ShopPoint

  • ShopPointProperty
  • ShopPointPropertyValue
  • Mapping_ShopPoint_ShopPointPropertyValue

assegnazione delle proprietà come gli ShopPointServices