This commit is contained in:
merdan 2022-09-01 12:49:31 +05:00
parent f1e645987f
commit 5033a39301
2 changed files with 21 additions and 13 deletions

View File

@ -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 += "<p>" + desc.Description + "</p>"
// }
for _, desc := range variant.Descriptions {
description += "<p>" + desc.Description + "</p>"
}
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 {

View File

@ -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"`