diff --git a/controllers/importer.go b/controllers/importer.go index 4353861..9c2f4ba 100644 --- a/controllers/importer.go +++ b/controllers/importer.go @@ -81,6 +81,14 @@ func Start(w http.ResponseWriter, route *http.Request) { } +func deleteProducts() { + //todo delete non ordered & non favorited products + //select distinct ordered and favorited product ids + //todo delete from elastico + //Delete from products where id in (select distinct) + +} + func startImport(dbName string, db *gorm.DB) { defer mainImportWG.Done() @@ -275,7 +283,7 @@ func importProduct(product models.Product, db *gorm.DB) { {AttributeID: attributesMap["visible_individually"].ID, BooleanValue: true, Channel: "default", Locale: "tm"}, {AttributeID: attributesMap["url_key"].ID, TextValue: sku, Channel: "default", Locale: "tm"}, {AttributeID: attributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"}, - // {AttributeID: attributesMap["description"].ID, TextValue: description, Channel: "default", Locale: "tm"}, + {AttributeID: attributesMap["description"].ID, TextValue: description, Channel: "default", Locale: "tm"}, { AttributeID: attributesMap["color"].ID, IntegerValue: int(colorOption.ID), @@ -308,7 +316,7 @@ func importProduct(product models.Product, db *gorm.DB) { ColorLabel: colorOption.AdminName, SizeLabel: sizeOption.AdminName, MetaKeywords: keywords, - ParentID: &mainProductFlat.ID, + ParentID: mainProductFlat.ID, } if sizeVariant.Price.OriginalPrice.Value > sizeVariant.Price.DiscountedPrice.Value { @@ -413,7 +421,7 @@ func importProduct(product models.Product, db *gorm.DB) { variantFlat.Color = int(colorOption.ID) variantFlat.ColorLabel = colorOption.AdminName variantFlat.MetaKeywords = keywords - variantFlat.ParentID = &mainProductFlat.ID + variantFlat.ParentID = mainProductFlat.ID errVariant := db.Create(&variantFlat).Error @@ -481,7 +489,7 @@ func importProduct(product models.Product, db *gorm.DB) { }, // Source: product.URLKey, FavoritesCount: uint(product.FavoriteCount), - ParentID: &mainProductFlat.ID, + ParentID: mainProductFlat.ID, } if sizeVariant.Price.OriginalPrice.Value > sizeVariant.Price.DiscountedPrice.Value { @@ -568,11 +576,11 @@ func createSellerProduct(flat *gm.ProductFlat, sellerURL string) gm.MarketplaceP func collectAttributes(variant *models.Product, option *gm.AttributeOption) ([]gm.ProductAttributeValue, gm.ProductFlat) { sku := fmt.Sprintf("%s-%s", variant.ProductGroupID, variant.ProductNumber) weight, _ := strconv.ParseFloat(variant.Weight, 64) - // var description string + var description string - // for _, desc := range variant.Descriptions { - // description += "
" + desc.Description + "
" - // } + for _, desc := range variant.Descriptions { + description += "" + desc.Description + "
" + } flat := gm.ProductFlat{ Status: true, @@ -582,8 +590,8 @@ func collectAttributes(variant *models.Product, option *gm.AttributeOption) ([]g ProductNumber: variant.ProductNumber, UrlKey: sku, Weight: weight, - // Source: variant.URLKey, - // FavoritesCount: uint(variant.FavoriteCount), + //Source: variant.URLKey, + FavoritesCount: uint(variant.FavoriteCount), } attributes := []gm.ProductAttributeValue{ @@ -597,7 +605,7 @@ func collectAttributes(variant *models.Product, option *gm.AttributeOption) ([]g {AttributeID: attributesMap["visible_individually"].ID, BooleanValue: true}, {AttributeID: attributesMap["url_key"].ID, TextValue: sku}, {AttributeID: option.AttributeID, IntegerValue: int(option.ID)}, - // {AttributeID: attributesMap["description"].ID, TextValue: description, Channel: "default", Locale: "tm"}, + {AttributeID: attributesMap["description"].ID, TextValue: description, Channel: "default", Locale: "tm"}, } if variant.Price.OriginalPrice.Value > variant.Price.DiscountedPrice.Value { @@ -655,7 +663,7 @@ func prepearAttributesWithFlat(data *models.Product) ([]gm.ProductAttributeValue Description: description, UrlKey: data.ProductGroupID, Weight: weight, - // Source: data.URLKey, + //Source: data.URLKey, FavoritesCount: uint(data.FavoriteCount), } if data.Price.OriginalPrice.Value > data.Price.DiscountedPrice.Value { diff --git a/gorm_models/product.go b/gorm_models/product.go index 88a7037..78173af 100644 --- a/gorm_models/product.go +++ b/gorm_models/product.go @@ -42,7 +42,7 @@ type ProductFlat struct { Product Product Channel string `sql:"DEFAULT:default" gorm:"default:default"` Locale string `sql:"DEFAULT:tm" gorm:"default:tm"` - ParentID *uint `sql:"DEFAULT:NULL" gorm:"default:null"` + ParentID uint `sql:"DEFAULT:NULL" gorm:"default:null"` Variants []ProductFlat `gorm:"foreignKey:ParentID"` Color int `sql:"DEFAULT:NULL" gorm:"default:null"` ColorLabel string `sql:"DEFAULT:NULL" gorm:"default:null"`