From aa65887a82d54ace2537912982ad2812cc4bfbf9 Mon Sep 17 00:00:00 2001 From: merdan Date: Tue, 6 Sep 2022 15:19:37 +0500 Subject: [PATCH] price fix --- controllers/importer.go | 47 ++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/controllers/importer.go b/controllers/importer.go index c400b32..dbc0f4a 100644 --- a/controllers/importer.go +++ b/controllers/importer.go @@ -260,7 +260,7 @@ func importProduct(product models.Product, db *gorm.DB) { errMainProduct := db.Omit("Categories.*", "SuperAttributes.*", "ParentID").Create(&iproduct).Error if errMainProduct != nil { - log.Println(errMainProduct) + log.Println(errMainProduct.Error()) return } @@ -354,7 +354,7 @@ func importProduct(product models.Product, db *gorm.DB) { flatVariant.MaxPrice = sizeVariant.Price.OriginalPrice.Value } - if mainProductFlat.MinPrice > flatVariant.MinPrice { + if mainProductFlat.MinPrice > flatVariant.MinPrice || mainProductFlat.MinPrice == 0 { mainProductFlat.MinPrice = flatVariant.MinPrice } @@ -402,7 +402,7 @@ func importProduct(product models.Product, db *gorm.DB) { attributes, variantFlat := collectAttributes(&colorVariant, &colorOption) attributes = append(attributes, gm.ProductAttributeValue{AttributeID: attributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"}) - if mainProductFlat.MinPrice > variantFlat.MinPrice { + if mainProductFlat.MinPrice > variantFlat.MinPrice || mainProductFlat.MinPrice == 0 { mainProductFlat.MinPrice = variantFlat.MinPrice } @@ -513,7 +513,7 @@ func importProduct(product models.Product, db *gorm.DB) { flatVariant.MaxPrice = sizeVariant.Price.OriginalPrice.Value } - if mainProductFlat.MinPrice > flatVariant.MinPrice { + if mainProductFlat.MinPrice > flatVariant.MinPrice || mainProductFlat.MinPrice == 0 { mainProductFlat.MinPrice = flatVariant.MinPrice } @@ -690,27 +690,30 @@ func prepearAttributesWithFlat(data *models.Product) ([]gm.ProductAttributeValue //Source: data.URLKey, FavoritesCount: uint(data.FavoriteCount), } - if data.Price.OriginalPrice.Value > data.Price.DiscountedPrice.Value { - productAttributeValues = append(productAttributeValues, []gm.ProductAttributeValue{ - {AttributeID: attributesMap["price"].ID, FloatValue: data.Price.OriginalPrice.Value}, - {AttributeID: attributesMap["special_price"].ID, FloatValue: data.Price.DiscountedPrice.Value}, - }...) - flat.Price = data.Price.OriginalPrice.Value - flat.SpecialPrice = data.Price.DiscountedPrice.Value - flat.MinPrice = data.Price.DiscountedPrice.Value - flat.MaxPrice = data.Price.OriginalPrice.Value - - } else { - productAttributeValues = append(productAttributeValues, gm.ProductAttributeValue{AttributeID: attributesMap["price"].ID, FloatValue: data.Price.OriginalPrice.Value}) - flat.Price = data.Price.OriginalPrice.Value - flat.MinPrice = data.Price.OriginalPrice.Value - flat.MaxPrice = data.Price.OriginalPrice.Value - } - - if data.ColorVariantCount != 0 || len(data.SizeVariants) != 0 { + if len(data.ColorVariants) != 0 || len(data.SizeVariants) != 0 { flat.Price = 0 flat.SpecialPrice = 0 + flat.MinPrice = 0 + flat.MaxPrice = 0 + } else { + if data.Price.OriginalPrice.Value > data.Price.DiscountedPrice.Value { + productAttributeValues = append(productAttributeValues, []gm.ProductAttributeValue{ + {AttributeID: attributesMap["price"].ID, FloatValue: data.Price.OriginalPrice.Value}, + {AttributeID: attributesMap["special_price"].ID, FloatValue: data.Price.DiscountedPrice.Value}, + }...) + + flat.Price = data.Price.OriginalPrice.Value + flat.SpecialPrice = data.Price.DiscountedPrice.Value + flat.MinPrice = data.Price.DiscountedPrice.Value + flat.MaxPrice = data.Price.OriginalPrice.Value + + } else { + productAttributeValues = append(productAttributeValues, gm.ProductAttributeValue{AttributeID: attributesMap["price"].ID, FloatValue: data.Price.OriginalPrice.Value}) + flat.Price = data.Price.OriginalPrice.Value + flat.MinPrice = data.Price.OriginalPrice.Value + flat.MaxPrice = data.Price.OriginalPrice.Value + } } return productAttributeValues, flat