From 0023f495a158f3242da2939e31c65fc8f18baf94 Mon Sep 17 00:00:00 2001 From: merdan Date: Tue, 20 Sep 2022 15:55:04 +0500 Subject: [PATCH] price fix --- controllers/ImportController.go | 47 +++++++++++++++++---------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/controllers/ImportController.go b/controllers/ImportController.go index 1cdf927..3a01a90 100644 --- a/controllers/ImportController.go +++ b/controllers/ImportController.go @@ -361,11 +361,11 @@ func ImportProduct(product models.Product, db *gorm.DB) error { flatVariant.MaxPrice = sizeVariant.Price.OriginalPrice.Value } else { - attributes = append(attributes, gm.ProductAttributeValue{AttributeID: AttributesMap["price"].ID, FloatValue: sizeVariant.Price.OriginalPrice.Value}) + attributes = append(attributes, gm.ProductAttributeValue{AttributeID: AttributesMap["price"].ID, FloatValue: sizeVariant.Price.DiscountedPrice.Value}) - flatVariant.Price = sizeVariant.Price.OriginalPrice.Value + flatVariant.Price = sizeVariant.Price.DiscountedPrice.Value flatVariant.MinPrice = sizeVariant.Price.DiscountedPrice.Value - flatVariant.MaxPrice = sizeVariant.Price.OriginalPrice.Value + flatVariant.MaxPrice = sizeVariant.Price.DiscountedPrice.Value } if mainProductFlat.MinPrice > flatVariant.MinPrice || mainProductFlat.MinPrice == 0 { @@ -520,11 +520,11 @@ func ImportProduct(product models.Product, db *gorm.DB) error { flatVariant.MaxPrice = sizeVariant.Price.OriginalPrice.Value } else { - attributes = append(attributes, gm.ProductAttributeValue{AttributeID: AttributesMap["price"].ID, FloatValue: sizeVariant.Price.OriginalPrice.Value}) + attributes = append(attributes, gm.ProductAttributeValue{AttributeID: AttributesMap["price"].ID, FloatValue: sizeVariant.Price.DiscountedPrice.Value}) - flatVariant.Price = sizeVariant.Price.OriginalPrice.Value + flatVariant.Price = sizeVariant.Price.DiscountedPrice.Value flatVariant.MinPrice = sizeVariant.Price.DiscountedPrice.Value - flatVariant.MaxPrice = sizeVariant.Price.OriginalPrice.Value + flatVariant.MaxPrice = sizeVariant.Price.DiscountedPrice.Value } if mainProductFlat.MinPrice > flatVariant.MinPrice || mainProductFlat.MinPrice == 0 { @@ -626,8 +626,8 @@ func collectAttributes(variant *models.Product, option *gm.AttributeOption) ([]g for _, desc := range variant.Descriptions { description += "

" + desc.Description + "

" } - flat := gm.ProductFlat{ + flat := gm.ProductFlat{ Status: true, VisibleIndividually: true, Name: variant.Name, @@ -635,9 +635,10 @@ func collectAttributes(variant *models.Product, option *gm.AttributeOption) ([]g ProductNumber: variant.ProductNumber, UrlKey: sku, Weight: weight, - //Source: variant.URLKey, - FavoritesCount: uint(variant.FavoriteCount), - Description: description, + FavoritesCount: uint(variant.FavoriteCount), + Description: description, + MinPrice: 0, + MaxPrice: 0, } attributes := []gm.ProductAttributeValue{ @@ -666,10 +667,10 @@ func collectAttributes(variant *models.Product, option *gm.AttributeOption) ([]g flat.MaxPrice = variant.Price.OriginalPrice.Value } else { - attributes = append(attributes, gm.ProductAttributeValue{AttributeID: AttributesMap["price"].ID, FloatValue: variant.Price.OriginalPrice.Value}) - flat.Price = variant.Price.OriginalPrice.Value + attributes = append(attributes, gm.ProductAttributeValue{AttributeID: AttributesMap["price"].ID, FloatValue: variant.Price.DiscountedPrice.Value}) + flat.Price = variant.Price.DiscountedPrice.Value flat.MinPrice = variant.Price.DiscountedPrice.Value - flat.MaxPrice = variant.Price.OriginalPrice.Value + flat.MaxPrice = variant.Price.DiscountedPrice.Value } return attributes, flat @@ -715,14 +716,13 @@ func prepearAttributesWithFlat(data *models.Product) ([]gm.ProductAttributeValue Weight: weight, //Source: data.URLKey, FavoritesCount: uint(data.FavoriteCount), + MaxPrice: 0, + MinPrice: 0, + Price: 0, } - if len(data.ColorVariants) != 0 || len(data.SizeVariants) != 0 { - flat.Price = 0 - flat.SpecialPrice = 0 - flat.MinPrice = 0 - flat.MaxPrice = 0 - } else { + if len(data.ColorVariants) == 0 && len(data.SizeVariants) != 0 { + if data.Price.OriginalPrice.Value > data.Price.DiscountedPrice.Value { productAttributeValues = append(productAttributeValues, []gm.ProductAttributeValue{ {AttributeID: AttributesMap["price"].ID, FloatValue: data.Price.OriginalPrice.Value}, @@ -735,10 +735,10 @@ func prepearAttributesWithFlat(data *models.Product) ([]gm.ProductAttributeValue 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 + productAttributeValues = append(productAttributeValues, gm.ProductAttributeValue{AttributeID: AttributesMap["price"].ID, FloatValue: data.Price.DiscountedPrice.Value}) + flat.Price = data.Price.DiscountedPrice.Value + flat.MinPrice = data.Price.DiscountedPrice.Value + flat.MaxPrice = data.Price.DiscountedPrice.Value } } @@ -797,6 +797,7 @@ func UpdateProduct(product models.Product, db *gorm.DB, productFlat gm.ProductFl } } } else { + //todo update configurable product }