price fix

This commit is contained in:
merdan 2022-09-06 15:19:37 +05:00
parent e628f90f20
commit aa65887a82
1 changed files with 25 additions and 22 deletions

View File

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