desc fx5
This commit is contained in:
parent
3dc76b189d
commit
3f188c9be9
|
|
@ -253,10 +253,9 @@ func importProduct(product models.Product, db *gorm.DB) {
|
||||||
|
|
||||||
if len(product.ColorVariants) > 0 {
|
if len(product.ColorVariants) > 0 {
|
||||||
|
|
||||||
var description string
|
|
||||||
for _, colorVariant := range product.ColorVariants {
|
for _, colorVariant := range product.ColorVariants {
|
||||||
weight, _ := strconv.ParseFloat(colorVariant.Weight, 64)
|
weight, _ := strconv.ParseFloat(colorVariant.Weight, 64)
|
||||||
|
var description string
|
||||||
for _, desc := range colorVariant.Descriptions {
|
for _, desc := range colorVariant.Descriptions {
|
||||||
description += "<p>" + desc.Description + "</p>"
|
description += "<p>" + desc.Description + "</p>"
|
||||||
}
|
}
|
||||||
|
|
@ -267,110 +266,111 @@ func importProduct(product models.Product, db *gorm.DB) {
|
||||||
|
|
||||||
for _, sizeVariant := range colorVariant.SizeVariants {
|
for _, sizeVariant := range colorVariant.SizeVariants {
|
||||||
|
|
||||||
if sizeVariant.Sellable {
|
sku := fmt.Sprintf("%s-%s-%d-col-size", colorVariant.ProductGroupID, colorVariant.ProductNumber, sizeVariant.ItemNumber)
|
||||||
sku := fmt.Sprintf("%s-%s-%d-col-size", colorVariant.ProductGroupID, colorVariant.ProductNumber, sizeVariant.ItemNumber)
|
|
||||||
sizeOption := gm.GetAttributeOption(db, attributesMap["size"].ID, sizeVariant.AttributeValue)
|
|
||||||
productNumber := fmt.Sprintf("%s-%d", colorVariant.ProductNumber, sizeVariant.ItemNumber)
|
|
||||||
attributes := []gm.ProductAttributeValue{
|
|
||||||
{AttributeID: attributesMap["source"].ID, TextValue: colorVariant.URLKey},
|
|
||||||
{AttributeID: attributesMap["favoritesCount"].ID, IntegerValue: colorVariant.FavoriteCount},
|
|
||||||
{AttributeID: attributesMap["sku"].ID, TextValue: sku},
|
|
||||||
{AttributeID: attributesMap["product_number"].ID, TextValue: productNumber},
|
|
||||||
{AttributeID: attributesMap["name"].ID, TextValue: colorVariant.Name, Channel: "default", Locale: "tm"},
|
|
||||||
{AttributeID: attributesMap["weight"].ID, TextValue: colorVariant.Weight},
|
|
||||||
{AttributeID: attributesMap["status"].ID, BooleanValue: true},
|
|
||||||
//{AttributeID: attributesMap["visible_individually"].ID, BooleanValue: true, Channel: "default", Locale: "tm"},
|
|
||||||
{AttributeID: attributesMap["url_key"].ID, TextValue: sku},
|
|
||||||
{AttributeID: attributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"},
|
|
||||||
{AttributeID: attributesMap["description"].ID, TextValue: description, Channel: "default", Locale: "tm"},
|
|
||||||
{AttributeID: attributesMap["color"].ID, IntegerValue: int(colorOption.ID)},
|
|
||||||
{AttributeID: attributesMap["size"].ID, IntegerValue: int(sizeOption.ID)},
|
|
||||||
}
|
|
||||||
|
|
||||||
//todo assign images
|
sizeOption := gm.GetAttributeOption(db, attributesMap["size"].ID, sizeVariant.AttributeValue)
|
||||||
flatVariant := gm.ProductFlat{
|
|
||||||
//ProductID: productVariant.ID,
|
|
||||||
BrandID: mainProductFlat.BrandID,
|
|
||||||
Status: true,
|
|
||||||
//VisibleIndividually: false,
|
|
||||||
Name: colorVariant.Name,
|
|
||||||
Sku: sku,
|
|
||||||
ProductNumber: productNumber,
|
|
||||||
Description: description,
|
|
||||||
UrlKey: sku,
|
|
||||||
Weight: weight,
|
|
||||||
// Source: colorVariant.URLKey,
|
|
||||||
FavoritesCount: uint(colorVariant.FavoriteCount),
|
|
||||||
Color: int(colorOption.ID),
|
|
||||||
Size: int(sizeOption.ID),
|
|
||||||
ColorLabel: colorOption.AdminName,
|
|
||||||
SizeLabel: sizeOption.AdminName,
|
|
||||||
MetaKeywords: keywords,
|
|
||||||
ParentID: mainProductFlat.ID,
|
|
||||||
}
|
|
||||||
|
|
||||||
if sizeVariant.Price.OriginalPrice.Value > sizeVariant.Price.DiscountedPrice.Value {
|
productNumber := fmt.Sprintf("%s-%d", colorVariant.ProductNumber, sizeVariant.ItemNumber)
|
||||||
attributes = append(attributes, []gm.ProductAttributeValue{
|
|
||||||
{AttributeID: attributesMap["price"].ID, FloatValue: sizeVariant.Price.OriginalPrice.Value},
|
|
||||||
{AttributeID: attributesMap["special_price"].ID, FloatValue: sizeVariant.Price.DiscountedPrice.Value},
|
|
||||||
}...)
|
|
||||||
|
|
||||||
flatVariant.Price = sizeVariant.Price.OriginalPrice.Value
|
attributes := []gm.ProductAttributeValue{
|
||||||
flatVariant.SpecialPrice = sizeVariant.Price.DiscountedPrice.Value
|
{AttributeID: attributesMap["source"].ID, TextValue: colorVariant.URLKey},
|
||||||
flatVariant.MinPrice = sizeVariant.Price.DiscountedPrice.Value
|
{AttributeID: attributesMap["favoritesCount"].ID, IntegerValue: colorVariant.FavoriteCount},
|
||||||
flatVariant.MaxPrice = sizeVariant.Price.OriginalPrice.Value
|
{AttributeID: attributesMap["sku"].ID, TextValue: sku},
|
||||||
|
{AttributeID: attributesMap["product_number"].ID, TextValue: productNumber},
|
||||||
} else {
|
{AttributeID: attributesMap["name"].ID, TextValue: colorVariant.Name, Channel: "default", Locale: "tm"},
|
||||||
attributes = append(attributes, gm.ProductAttributeValue{AttributeID: attributesMap["price"].ID, FloatValue: sizeVariant.Price.OriginalPrice.Value})
|
{AttributeID: attributesMap["weight"].ID, TextValue: colorVariant.Weight},
|
||||||
|
{AttributeID: attributesMap["status"].ID, BooleanValue: true},
|
||||||
flatVariant.Price = sizeVariant.Price.OriginalPrice.Value
|
//{AttributeID: attributesMap["visible_individually"].ID, BooleanValue: true, Channel: "default", Locale: "tm"},
|
||||||
flatVariant.MinPrice = sizeVariant.Price.DiscountedPrice.Value
|
{AttributeID: attributesMap["url_key"].ID, TextValue: sku},
|
||||||
flatVariant.MaxPrice = sizeVariant.Price.OriginalPrice.Value
|
{AttributeID: attributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"},
|
||||||
}
|
{AttributeID: attributesMap["description"].ID, TextValue: description, Channel: "default", Locale: "tm"},
|
||||||
|
{AttributeID: attributesMap["color"].ID, IntegerValue: int(colorOption.ID)},
|
||||||
if mainProductFlat.MinPrice > flatVariant.MinPrice {
|
{AttributeID: attributesMap["size"].ID, IntegerValue: int(sizeOption.ID)},
|
||||||
mainProductFlat.MinPrice = flatVariant.MinPrice
|
|
||||||
}
|
|
||||||
|
|
||||||
if mainProductFlat.MaxPrice < flatVariant.MaxPrice {
|
|
||||||
mainProductFlat.MaxPrice = flatVariant.MaxPrice
|
|
||||||
}
|
|
||||||
|
|
||||||
productVariant := gm.Product{
|
|
||||||
ParentID: mainProductFlat.ProductID,
|
|
||||||
Type: "simple",
|
|
||||||
AttributeFamilyID: iproduct.AttributeFamilyID,
|
|
||||||
Sku: sku,
|
|
||||||
BrandID: mainProductFlat.BrandID,
|
|
||||||
AttributeValues: attributes,
|
|
||||||
Categories: categories,
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, element := range colorVariant.Images {
|
|
||||||
productVariant.Images = append(productVariant.Images, gm.ProductImage{Type: "cdn", Path: element})
|
|
||||||
}
|
|
||||||
|
|
||||||
errProdVariant := db.Omit("Categories.*").Create(&productVariant).Error
|
|
||||||
|
|
||||||
if errProdVariant != nil {
|
|
||||||
log.Println(errProdVariant)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
flatVariant.ProductID = productVariant.ID
|
|
||||||
|
|
||||||
errVariant := db.Create(&flatVariant).Error
|
|
||||||
|
|
||||||
if errVariant != nil {
|
|
||||||
log.Println(errVariant)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
productFlatVariants = append(productFlatVariants, flatVariant)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//todo assign images
|
||||||
|
flatVariant := gm.ProductFlat{
|
||||||
|
//ProductID: productVariant.ID,
|
||||||
|
BrandID: mainProductFlat.BrandID,
|
||||||
|
Status: true,
|
||||||
|
//VisibleIndividually: false,
|
||||||
|
Name: colorVariant.Name,
|
||||||
|
Sku: sku,
|
||||||
|
ProductNumber: productNumber,
|
||||||
|
Description: description,
|
||||||
|
UrlKey: sku,
|
||||||
|
Weight: weight,
|
||||||
|
// Source: colorVariant.URLKey,
|
||||||
|
FavoritesCount: uint(colorVariant.FavoriteCount),
|
||||||
|
Color: int(colorOption.ID),
|
||||||
|
Size: int(sizeOption.ID),
|
||||||
|
ColorLabel: colorOption.AdminName,
|
||||||
|
SizeLabel: sizeOption.AdminName,
|
||||||
|
MetaKeywords: keywords,
|
||||||
|
ParentID: mainProductFlat.ID,
|
||||||
|
}
|
||||||
|
|
||||||
|
if sizeVariant.Price.OriginalPrice.Value > sizeVariant.Price.DiscountedPrice.Value {
|
||||||
|
attributes = append(attributes, []gm.ProductAttributeValue{
|
||||||
|
{AttributeID: attributesMap["price"].ID, FloatValue: sizeVariant.Price.OriginalPrice.Value},
|
||||||
|
{AttributeID: attributesMap["special_price"].ID, FloatValue: sizeVariant.Price.DiscountedPrice.Value},
|
||||||
|
}...)
|
||||||
|
|
||||||
|
flatVariant.Price = sizeVariant.Price.OriginalPrice.Value
|
||||||
|
flatVariant.SpecialPrice = sizeVariant.Price.DiscountedPrice.Value
|
||||||
|
flatVariant.MinPrice = sizeVariant.Price.DiscountedPrice.Value
|
||||||
|
flatVariant.MaxPrice = sizeVariant.Price.OriginalPrice.Value
|
||||||
|
|
||||||
|
} else {
|
||||||
|
attributes = append(attributes, gm.ProductAttributeValue{AttributeID: attributesMap["price"].ID, FloatValue: sizeVariant.Price.OriginalPrice.Value})
|
||||||
|
|
||||||
|
flatVariant.Price = sizeVariant.Price.OriginalPrice.Value
|
||||||
|
flatVariant.MinPrice = sizeVariant.Price.DiscountedPrice.Value
|
||||||
|
flatVariant.MaxPrice = sizeVariant.Price.OriginalPrice.Value
|
||||||
|
}
|
||||||
|
|
||||||
|
if mainProductFlat.MinPrice > flatVariant.MinPrice {
|
||||||
|
mainProductFlat.MinPrice = flatVariant.MinPrice
|
||||||
|
}
|
||||||
|
|
||||||
|
if mainProductFlat.MaxPrice < flatVariant.MaxPrice {
|
||||||
|
mainProductFlat.MaxPrice = flatVariant.MaxPrice
|
||||||
|
}
|
||||||
|
|
||||||
|
productVariant := gm.Product{
|
||||||
|
ParentID: mainProductFlat.ProductID,
|
||||||
|
Type: "simple",
|
||||||
|
AttributeFamilyID: iproduct.AttributeFamilyID,
|
||||||
|
Sku: sku,
|
||||||
|
BrandID: mainProductFlat.BrandID,
|
||||||
|
AttributeValues: attributes,
|
||||||
|
Categories: categories,
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, element := range colorVariant.Images {
|
||||||
|
productVariant.Images = append(productVariant.Images, gm.ProductImage{Type: "cdn", Path: element})
|
||||||
|
}
|
||||||
|
|
||||||
|
errProdVariant := db.Omit("Categories.*").Create(&productVariant).Error
|
||||||
|
|
||||||
|
if errProdVariant != nil {
|
||||||
|
log.Println(errProdVariant)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
flatVariant.ProductID = productVariant.ID
|
||||||
|
|
||||||
|
errVariant := db.Create(&flatVariant).Error
|
||||||
|
|
||||||
|
if errVariant != nil {
|
||||||
|
log.Println(errVariant)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
productFlatVariants = append(productFlatVariants, flatVariant)
|
||||||
|
|
||||||
}
|
}
|
||||||
} else if colorVariant.IsSellable {
|
} else {
|
||||||
|
|
||||||
colorOption := gm.GetAttributeOption(db, attributesMap["color"].ID, colorVariant.Color)
|
colorOption := gm.GetAttributeOption(db, attributesMap["color"].ID, colorVariant.Color)
|
||||||
attributes, variantFlat := collectAttributes(&colorVariant, &colorOption)
|
attributes, variantFlat := collectAttributes(&colorVariant, &colorOption)
|
||||||
|
|
@ -428,107 +428,100 @@ func importProduct(product models.Product, db *gorm.DB) {
|
||||||
|
|
||||||
if len(product.SizeVariants) > 0 {
|
if len(product.SizeVariants) > 0 {
|
||||||
|
|
||||||
var description string
|
|
||||||
for _, desc := range product.Descriptions {
|
|
||||||
description += "<p>" + desc.Description + "</p>"
|
|
||||||
}
|
|
||||||
weight, _ := strconv.ParseFloat(product.Weight, 64)
|
weight, _ := strconv.ParseFloat(product.Weight, 64)
|
||||||
|
|
||||||
for _, sizeVariant := range product.SizeVariants {
|
for _, sizeVariant := range product.SizeVariants {
|
||||||
|
|
||||||
if sizeVariant.Sellable {
|
sku := fmt.Sprintf("%s-%s-%d-size", iproduct.Sku, product.ProductNumber, sizeVariant.ItemNumber)
|
||||||
sku := fmt.Sprintf("%s-%s-%d-size", iproduct.Sku, product.ProductNumber, sizeVariant.ItemNumber)
|
sizeOption := gm.GetAttributeOption(db, attributesMap["size"].ID, sizeVariant.AttributeValue)
|
||||||
sizeOption := gm.GetAttributeOption(db, attributesMap["size"].ID, sizeVariant.AttributeValue)
|
|
||||||
|
|
||||||
attributes := []gm.ProductAttributeValue{
|
attributes := []gm.ProductAttributeValue{
|
||||||
{AttributeID: attributesMap["source"].ID, TextValue: product.URLKey},
|
{AttributeID: attributesMap["source"].ID, TextValue: product.URLKey},
|
||||||
{AttributeID: attributesMap["favoritesCount"].ID, IntegerValue: product.FavoriteCount},
|
{AttributeID: attributesMap["favoritesCount"].ID, IntegerValue: product.FavoriteCount},
|
||||||
{AttributeID: attributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"},
|
{AttributeID: attributesMap["sku"].ID, TextValue: sku},
|
||||||
{AttributeID: attributesMap["sku"].ID, TextValue: sku},
|
{AttributeID: attributesMap["product_number"].ID, TextValue: fmt.Sprint(sizeVariant.ItemNumber)},
|
||||||
{AttributeID: attributesMap["product_number"].ID, TextValue: fmt.Sprint(sizeVariant.ItemNumber)},
|
{AttributeID: attributesMap["name"].ID, TextValue: product.Name, Channel: "default", Locale: "tm"},
|
||||||
{AttributeID: attributesMap["name"].ID, TextValue: product.Name, Channel: "default", Locale: "tm"},
|
{AttributeID: attributesMap["weight"].ID, TextValue: product.Weight},
|
||||||
{AttributeID: attributesMap["weight"].ID, TextValue: product.Weight},
|
{AttributeID: attributesMap["status"].ID, BooleanValue: true},
|
||||||
{AttributeID: attributesMap["status"].ID, BooleanValue: true},
|
//{AttributeID: attributesMap["visible_individually"].ID, BooleanValue: true},
|
||||||
//{AttributeID: attributesMap["visible_individually"].ID, BooleanValue: true},
|
{AttributeID: attributesMap["url_key"].ID, TextValue: sku},
|
||||||
{AttributeID: attributesMap["url_key"].ID, TextValue: sku},
|
{AttributeID: attributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"},
|
||||||
{AttributeID: attributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"},
|
{AttributeID: attributesMap["size"].ID, IntegerValue: int(sizeOption.ID)},
|
||||||
{AttributeID: attributesMap["size"].ID, IntegerValue: int(sizeOption.ID)},
|
{AttributeID: attributesMap["description"].ID, TextValue: mainProductFlat.Description, Channel: "default", Locale: "tm"},
|
||||||
// {AttributeID: attributesMap["description"].ID, TextValue: description, Channel: "default", Locale: "tm"},
|
|
||||||
}
|
|
||||||
|
|
||||||
flatVariant := gm.ProductFlat{
|
|
||||||
|
|
||||||
Status: true,
|
|
||||||
VisibleIndividually: false,
|
|
||||||
Name: product.Name,
|
|
||||||
Sku: sku,
|
|
||||||
ProductNumber: fmt.Sprint(sizeVariant.ItemNumber),
|
|
||||||
UrlKey: sku,
|
|
||||||
Weight: weight,
|
|
||||||
Size: int(sizeOption.ID),
|
|
||||||
SizeLabel: sizeOption.AdminName,
|
|
||||||
MetaKeywords: keywords,
|
|
||||||
|
|
||||||
// Source: product.URLKey,
|
|
||||||
FavoritesCount: uint(product.FavoriteCount),
|
|
||||||
ParentID: mainProductFlat.ID,
|
|
||||||
}
|
|
||||||
|
|
||||||
if sizeVariant.Price.OriginalPrice.Value > sizeVariant.Price.DiscountedPrice.Value {
|
|
||||||
attributes = append(attributes, []gm.ProductAttributeValue{
|
|
||||||
{AttributeID: attributesMap["price"].ID, FloatValue: sizeVariant.Price.OriginalPrice.Value},
|
|
||||||
{AttributeID: attributesMap["special_price"].ID, FloatValue: sizeVariant.Price.DiscountedPrice.Value},
|
|
||||||
}...)
|
|
||||||
|
|
||||||
flatVariant.Price = sizeVariant.Price.OriginalPrice.Value
|
|
||||||
flatVariant.SpecialPrice = sizeVariant.Price.DiscountedPrice.Value
|
|
||||||
flatVariant.MinPrice = sizeVariant.Price.DiscountedPrice.Value
|
|
||||||
flatVariant.MaxPrice = sizeVariant.Price.OriginalPrice.Value
|
|
||||||
|
|
||||||
} else {
|
|
||||||
attributes = append(attributes, gm.ProductAttributeValue{AttributeID: attributesMap["price"].ID, FloatValue: sizeVariant.Price.OriginalPrice.Value})
|
|
||||||
|
|
||||||
flatVariant.Price = sizeVariant.Price.OriginalPrice.Value
|
|
||||||
flatVariant.MinPrice = sizeVariant.Price.DiscountedPrice.Value
|
|
||||||
flatVariant.MaxPrice = sizeVariant.Price.OriginalPrice.Value
|
|
||||||
}
|
|
||||||
|
|
||||||
if mainProductFlat.MinPrice > flatVariant.MinPrice {
|
|
||||||
mainProductFlat.MinPrice = flatVariant.MinPrice
|
|
||||||
}
|
|
||||||
|
|
||||||
if mainProductFlat.MaxPrice < flatVariant.MaxPrice {
|
|
||||||
mainProductFlat.MaxPrice = flatVariant.MaxPrice
|
|
||||||
}
|
|
||||||
|
|
||||||
sizeVariantProduct := gm.Product{
|
|
||||||
ParentID: mainProductFlat.ProductID,
|
|
||||||
Type: "simple",
|
|
||||||
Sku: sku,
|
|
||||||
BrandID: mainProductFlat.BrandID,
|
|
||||||
AttributeValues: attributes,
|
|
||||||
AttributeFamilyID: iproduct.AttributeFamilyID,
|
|
||||||
Categories: categories,
|
|
||||||
}
|
|
||||||
|
|
||||||
errSizeVar := db.Omit("Categories.*").Create(&sizeVariantProduct).Error
|
|
||||||
|
|
||||||
if errSizeVar != nil {
|
|
||||||
log.Println(errSizeVar)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
flatVariant.ProductID = sizeVariantProduct.ID
|
|
||||||
|
|
||||||
errVariant := db.Omit("Product.Categories.*").Create(&flatVariant).Error
|
|
||||||
|
|
||||||
if errVariant != nil {
|
|
||||||
log.Println(errVariant)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
productFlatVariants = append(productFlatVariants, flatVariant)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
flatVariant := gm.ProductFlat{
|
||||||
|
|
||||||
|
Status: true,
|
||||||
|
VisibleIndividually: false,
|
||||||
|
Name: product.Name,
|
||||||
|
Sku: sku,
|
||||||
|
ProductNumber: fmt.Sprint(sizeVariant.ItemNumber),
|
||||||
|
UrlKey: sku,
|
||||||
|
Weight: weight,
|
||||||
|
Size: int(sizeOption.ID),
|
||||||
|
SizeLabel: sizeOption.AdminName,
|
||||||
|
MetaKeywords: keywords,
|
||||||
|
Description: mainProductFlat.Description,
|
||||||
|
// Source: product.URLKey,
|
||||||
|
FavoritesCount: uint(product.FavoriteCount),
|
||||||
|
ParentID: mainProductFlat.ID,
|
||||||
|
}
|
||||||
|
|
||||||
|
if sizeVariant.Price.OriginalPrice.Value > sizeVariant.Price.DiscountedPrice.Value {
|
||||||
|
attributes = append(attributes, []gm.ProductAttributeValue{
|
||||||
|
{AttributeID: attributesMap["price"].ID, FloatValue: sizeVariant.Price.OriginalPrice.Value},
|
||||||
|
{AttributeID: attributesMap["special_price"].ID, FloatValue: sizeVariant.Price.DiscountedPrice.Value},
|
||||||
|
}...)
|
||||||
|
|
||||||
|
flatVariant.Price = sizeVariant.Price.OriginalPrice.Value
|
||||||
|
flatVariant.SpecialPrice = sizeVariant.Price.DiscountedPrice.Value
|
||||||
|
flatVariant.MinPrice = sizeVariant.Price.DiscountedPrice.Value
|
||||||
|
flatVariant.MaxPrice = sizeVariant.Price.OriginalPrice.Value
|
||||||
|
|
||||||
|
} else {
|
||||||
|
attributes = append(attributes, gm.ProductAttributeValue{AttributeID: attributesMap["price"].ID, FloatValue: sizeVariant.Price.OriginalPrice.Value})
|
||||||
|
|
||||||
|
flatVariant.Price = sizeVariant.Price.OriginalPrice.Value
|
||||||
|
flatVariant.MinPrice = sizeVariant.Price.DiscountedPrice.Value
|
||||||
|
flatVariant.MaxPrice = sizeVariant.Price.OriginalPrice.Value
|
||||||
|
}
|
||||||
|
|
||||||
|
if mainProductFlat.MinPrice > flatVariant.MinPrice {
|
||||||
|
mainProductFlat.MinPrice = flatVariant.MinPrice
|
||||||
|
}
|
||||||
|
|
||||||
|
if mainProductFlat.MaxPrice < flatVariant.MaxPrice {
|
||||||
|
mainProductFlat.MaxPrice = flatVariant.MaxPrice
|
||||||
|
}
|
||||||
|
|
||||||
|
sizeVariantProduct := gm.Product{
|
||||||
|
ParentID: mainProductFlat.ProductID,
|
||||||
|
Type: "simple",
|
||||||
|
Sku: sku,
|
||||||
|
BrandID: mainProductFlat.BrandID,
|
||||||
|
AttributeValues: attributes,
|
||||||
|
AttributeFamilyID: iproduct.AttributeFamilyID,
|
||||||
|
Categories: categories,
|
||||||
|
}
|
||||||
|
|
||||||
|
errSizeVar := db.Omit("Categories.*").Create(&sizeVariantProduct).Error
|
||||||
|
|
||||||
|
if errSizeVar != nil {
|
||||||
|
log.Println(errSizeVar)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
flatVariant.ProductID = sizeVariantProduct.ID
|
||||||
|
|
||||||
|
errVariant := db.Omit("Product.Categories.*").Create(&flatVariant).Error
|
||||||
|
|
||||||
|
if errVariant != nil {
|
||||||
|
log.Println(errVariant)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
productFlatVariants = append(productFlatVariants, flatVariant)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue