kategoria tekst
This commit is contained in:
parent
2d060a7b6e
commit
d0613a0d2c
|
|
@ -332,185 +332,185 @@ func ImportProduct(product models.Product, db *gorm.DB) error {
|
|||
if len(product.ColorVariants) > 0 {
|
||||
product.ColorVariants = append([]models.Product{product}, product.ColorVariants...)
|
||||
|
||||
//for colorIndex, colorVariant := range product.ColorVariants {
|
||||
// weight, _ := strconv.ParseFloat(colorVariant.Weight, 64)
|
||||
// var description string
|
||||
// for _, desc := range colorVariant.Descriptions {
|
||||
// description += "<p>" + desc.Description + "</p>"
|
||||
// }
|
||||
//
|
||||
// colorOption := gm.GetAttributeOption(db, AttributesMap["color"].ID, colorVariant.Color)
|
||||
//
|
||||
// colorSavePoint := "ColorSavePoint" + string(colorIndex)
|
||||
//
|
||||
// if len(colorVariant.SizeVariants) > 0 {
|
||||
//
|
||||
// for index, sizeVariant := range colorVariant.SizeVariants {
|
||||
//
|
||||
// savePoint := "Size" + string(colorIndex) + "sp" + string(index)
|
||||
//
|
||||
// log.Println(savePoint)
|
||||
//
|
||||
// tx.SavePoint(savePoint)
|
||||
//
|
||||
// sku := fmt.Sprintf("%s-%s-%d-col-size", colorVariant.ProductGroupID, colorVariant.ProductNumber, sizeVariant.ItemNumber)
|
||||
//
|
||||
// productVariant := gm.Product{
|
||||
// ParentID: mainProductFlat.ProductID,
|
||||
// Type: "simple",
|
||||
// AttributeFamilyID: iproduct.AttributeFamilyID,
|
||||
// Sku: sku,
|
||||
// BrandID: mainProductFlat.BrandID,
|
||||
// Categories: categories,
|
||||
// }
|
||||
//
|
||||
// for _, element := range colorVariant.Images {
|
||||
// productVariant.Images = append(productVariant.Images, gm.ProductImage{Type: "cdn", Path: element})
|
||||
// }
|
||||
//
|
||||
// if errProdVariant := tx.Omit("Categories.*").Create(&productVariant).Error; errProdVariant != nil {
|
||||
// log.Println("ERR3" + errProdVariant.Error())
|
||||
// tx.RollbackTo(savePoint)
|
||||
// return errProdVariant
|
||||
// }
|
||||
//
|
||||
// log.Println("Variant product saved")
|
||||
//
|
||||
// sizeOption := gm.GetAttributeOption(db, AttributesMap["size"].ID, sizeVariant.AttributeValue)
|
||||
//
|
||||
// productNumber := fmt.Sprintf("%s-%d", colorVariant.ProductNumber, sizeVariant.ItemNumber)
|
||||
//
|
||||
// attributes := []gm.ProductAttributeValue{
|
||||
// {ProductID: productVariant.ID, AttributeID: AttributesMap["source"].ID, TextValue: colorVariant.URLKey},
|
||||
// {ProductID: productVariant.ID, AttributeID: AttributesMap["favoritesCount"].ID, IntegerValue: colorVariant.FavoriteCount},
|
||||
// {ProductID: productVariant.ID, AttributeID: AttributesMap["sku"].ID, TextValue: sku},
|
||||
// {ProductID: productVariant.ID, AttributeID: AttributesMap["product_number"].ID, TextValue: productNumber},
|
||||
// {ProductID: productVariant.ID, AttributeID: AttributesMap["name"].ID, TextValue: colorVariant.Name, Channel: "default", Locale: "tm"},
|
||||
// {ProductID: productVariant.ID, AttributeID: AttributesMap["weight"].ID, TextValue: colorVariant.Weight},
|
||||
// {ProductID: productVariant.ID, AttributeID: AttributesMap["status"].ID, BooleanValue: true},
|
||||
// {ProductID: productVariant.ID, AttributeID: AttributesMap["url_key"].ID, TextValue: sku},
|
||||
// {ProductID: productVariant.ID, AttributeID: AttributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"},
|
||||
// {ProductID: productVariant.ID, AttributeID: AttributesMap["description"].ID, TextValue: description, Channel: "default", Locale: "tm"},
|
||||
// {ProductID: productVariant.ID, AttributeID: AttributesMap["color"].ID, IntegerValue: int(colorOption.ID)},
|
||||
// {ProductID: productVariant.ID, AttributeID: AttributesMap["size"].ID, IntegerValue: int(sizeOption.ID)},
|
||||
// }
|
||||
//
|
||||
// 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,
|
||||
// ProductID: productVariant.ID,
|
||||
// }
|
||||
//
|
||||
// if sizeVariant.Price.OriginalPrice.Value > sizeVariant.Price.DiscountedPrice.Value {
|
||||
// attributes = append(attributes, []gm.ProductAttributeValue{
|
||||
// {ProductID: productVariant.ID, AttributeID: AttributesMap["price"].ID, FloatValue: sizeVariant.Price.OriginalPrice.Value},
|
||||
// {ProductID: productVariant.ID, 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{ProductID: productVariant.ID, AttributeID: AttributesMap["price"].ID, FloatValue: sizeVariant.Price.DiscountedPrice.Value})
|
||||
//
|
||||
// flatVariant.Price = sizeVariant.Price.DiscountedPrice.Value
|
||||
// flatVariant.MinPrice = sizeVariant.Price.DiscountedPrice.Value
|
||||
// flatVariant.MaxPrice = sizeVariant.Price.DiscountedPrice.Value
|
||||
// }
|
||||
//
|
||||
// if attError := tx.Create(&attributes).Error; attError != nil {
|
||||
// tx.RollbackTo(savePoint)
|
||||
// log.Println("ERR4" + attError.Error())
|
||||
// continue
|
||||
// }
|
||||
//
|
||||
// if mainProductFlat.MinPrice > flatVariant.MinPrice || mainProductFlat.MinPrice == 0.0 {
|
||||
// mainProductFlat.MinPrice = flatVariant.MinPrice
|
||||
// }
|
||||
//
|
||||
// if mainProductFlat.MaxPrice < flatVariant.MaxPrice {
|
||||
// mainProductFlat.MaxPrice = flatVariant.MaxPrice
|
||||
// }
|
||||
//
|
||||
// if errVariant := tx.Create(&flatVariant).Error; errVariant != nil {
|
||||
// log.Println("ERR5" + errVariant.Error())
|
||||
// tx.RollbackTo(savePoint)
|
||||
// continue
|
||||
// }
|
||||
//
|
||||
// mainProductFlat.Variants = append(mainProductFlat.Variants, flatVariant)
|
||||
//
|
||||
// }
|
||||
//
|
||||
// } else {
|
||||
//
|
||||
// colorOption := gm.GetAttributeOption(db, AttributesMap["color"].ID, colorVariant.Color)
|
||||
// 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 || mainProductFlat.MinPrice == 0 {
|
||||
// mainProductFlat.MinPrice = variantFlat.MinPrice
|
||||
// }
|
||||
//
|
||||
// if mainProductFlat.MaxPrice < variantFlat.MaxPrice {
|
||||
// mainProductFlat.MaxPrice = variantFlat.MaxPrice
|
||||
// }
|
||||
//
|
||||
// sku := fmt.Sprintf("%s-%s-%s-%s", iproduct.Sku, colorVariant.ProductNumber, colorVariant.ProductCode, colorVariant.Color)
|
||||
//
|
||||
// productVariant := gm.Product{
|
||||
// ParentID: mainProductFlat.ProductID,
|
||||
// Type: "simple",
|
||||
// Sku: sku,
|
||||
// BrandID: mainProductFlat.BrandID,
|
||||
// AttributeValues: attributes,
|
||||
// AttributeFamilyID: iproduct.AttributeFamilyID,
|
||||
// Categories: categories,
|
||||
// }
|
||||
//
|
||||
// for _, element := range colorVariant.Images {
|
||||
// productVariant.Images = append(productVariant.Images, gm.ProductImage{Type: "cdn", Path: element})
|
||||
// }
|
||||
//
|
||||
// if errProdVariant := tx.Omit("Categories.*").Create(&productVariant).Error; errProdVariant != nil {
|
||||
// log.Println("ERR5" + errProdVariant.Error())
|
||||
// continue
|
||||
// }
|
||||
//
|
||||
// variantFlat.ProductID = productVariant.ID
|
||||
// variantFlat.Color = int(colorOption.ID)
|
||||
// variantFlat.ColorLabel = colorOption.AdminName
|
||||
// variantFlat.MetaKeywords = keywords
|
||||
// variantFlat.ParentID = mainProductFlat.ID
|
||||
//
|
||||
// if errVariant := tx.Create(&variantFlat).Error; errVariant != nil {
|
||||
// log.Println("ERR6" + errVariant.Error())
|
||||
// tx.RollbackTo(colorSavePoint)
|
||||
// continue
|
||||
// }
|
||||
//
|
||||
// mainProductFlat.Variants = append(mainProductFlat.Variants, variantFlat)
|
||||
// }
|
||||
//
|
||||
//}
|
||||
for colorIndex, colorVariant := range product.ColorVariants {
|
||||
weight, _ := strconv.ParseFloat(colorVariant.Weight, 64)
|
||||
var description string
|
||||
for _, desc := range colorVariant.Descriptions {
|
||||
description += "<p>" + desc.Description + "</p>"
|
||||
}
|
||||
|
||||
colorOption := gm.GetAttributeOption(db, AttributesMap["color"].ID, colorVariant.Color)
|
||||
|
||||
//colorSavePoint := "ColorSavePoint" + string(colorIndex)
|
||||
|
||||
if len(colorVariant.SizeVariants) > 0 {
|
||||
|
||||
for index, sizeVariant := range colorVariant.SizeVariants {
|
||||
|
||||
savePoint := "Size" + string(colorIndex) + "sp" + string(index)
|
||||
|
||||
log.Println(savePoint)
|
||||
|
||||
tx.SavePoint(savePoint)
|
||||
|
||||
sku := fmt.Sprintf("%s-%s-%d-col-size", colorVariant.ProductGroupID, colorVariant.ProductNumber, sizeVariant.ItemNumber)
|
||||
|
||||
productVariant := gm.Product{
|
||||
ParentID: mainProductFlat.ProductID,
|
||||
Type: "simple",
|
||||
AttributeFamilyID: iproduct.AttributeFamilyID,
|
||||
Sku: sku,
|
||||
BrandID: mainProductFlat.BrandID,
|
||||
Categories: categories,
|
||||
}
|
||||
|
||||
for _, element := range colorVariant.Images {
|
||||
productVariant.Images = append(productVariant.Images, gm.ProductImage{Type: "cdn", Path: element})
|
||||
}
|
||||
|
||||
if errProdVariant := tx.Omit("Categories.*").Create(&productVariant).Error; errProdVariant != nil {
|
||||
log.Println("ERR3" + errProdVariant.Error())
|
||||
tx.RollbackTo(savePoint)
|
||||
return errProdVariant
|
||||
}
|
||||
|
||||
log.Println("Variant product saved")
|
||||
|
||||
sizeOption := gm.GetAttributeOption(db, AttributesMap["size"].ID, sizeVariant.AttributeValue)
|
||||
|
||||
productNumber := fmt.Sprintf("%s-%d", colorVariant.ProductNumber, sizeVariant.ItemNumber)
|
||||
|
||||
attributes := []gm.ProductAttributeValue{
|
||||
{ProductID: productVariant.ID, AttributeID: AttributesMap["source"].ID, TextValue: colorVariant.URLKey},
|
||||
{ProductID: productVariant.ID, AttributeID: AttributesMap["favoritesCount"].ID, IntegerValue: colorVariant.FavoriteCount},
|
||||
{ProductID: productVariant.ID, AttributeID: AttributesMap["sku"].ID, TextValue: sku},
|
||||
{ProductID: productVariant.ID, AttributeID: AttributesMap["product_number"].ID, TextValue: productNumber},
|
||||
{ProductID: productVariant.ID, AttributeID: AttributesMap["name"].ID, TextValue: colorVariant.Name, Channel: "default", Locale: "tm"},
|
||||
{ProductID: productVariant.ID, AttributeID: AttributesMap["weight"].ID, TextValue: colorVariant.Weight},
|
||||
{ProductID: productVariant.ID, AttributeID: AttributesMap["status"].ID, BooleanValue: true},
|
||||
{ProductID: productVariant.ID, AttributeID: AttributesMap["url_key"].ID, TextValue: sku},
|
||||
{ProductID: productVariant.ID, AttributeID: AttributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"},
|
||||
{ProductID: productVariant.ID, AttributeID: AttributesMap["description"].ID, TextValue: description, Channel: "default", Locale: "tm"},
|
||||
{ProductID: productVariant.ID, AttributeID: AttributesMap["color"].ID, IntegerValue: int(colorOption.ID)},
|
||||
{ProductID: productVariant.ID, AttributeID: AttributesMap["size"].ID, IntegerValue: int(sizeOption.ID)},
|
||||
}
|
||||
|
||||
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,
|
||||
ProductID: productVariant.ID,
|
||||
}
|
||||
|
||||
if sizeVariant.Price.OriginalPrice.Value > sizeVariant.Price.DiscountedPrice.Value {
|
||||
attributes = append(attributes, []gm.ProductAttributeValue{
|
||||
{ProductID: productVariant.ID, AttributeID: AttributesMap["price"].ID, FloatValue: sizeVariant.Price.OriginalPrice.Value},
|
||||
{ProductID: productVariant.ID, 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{ProductID: productVariant.ID, AttributeID: AttributesMap["price"].ID, FloatValue: sizeVariant.Price.DiscountedPrice.Value})
|
||||
|
||||
flatVariant.Price = sizeVariant.Price.DiscountedPrice.Value
|
||||
flatVariant.MinPrice = sizeVariant.Price.DiscountedPrice.Value
|
||||
flatVariant.MaxPrice = sizeVariant.Price.DiscountedPrice.Value
|
||||
}
|
||||
|
||||
if attError := tx.Create(&attributes).Error; attError != nil {
|
||||
tx.RollbackTo(savePoint)
|
||||
log.Println("ERR4" + attError.Error())
|
||||
continue
|
||||
}
|
||||
|
||||
if mainProductFlat.MinPrice > flatVariant.MinPrice || mainProductFlat.MinPrice == 0.0 {
|
||||
mainProductFlat.MinPrice = flatVariant.MinPrice
|
||||
}
|
||||
|
||||
if mainProductFlat.MaxPrice < flatVariant.MaxPrice {
|
||||
mainProductFlat.MaxPrice = flatVariant.MaxPrice
|
||||
}
|
||||
|
||||
if errVariant := tx.Create(&flatVariant).Error; errVariant != nil {
|
||||
log.Println("ERR5" + errVariant.Error())
|
||||
tx.RollbackTo(savePoint)
|
||||
continue
|
||||
}
|
||||
|
||||
mainProductFlat.Variants = append(mainProductFlat.Variants, flatVariant)
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
//colorOption := gm.GetAttributeOption(db, AttributesMap["color"].ID, colorVariant.Color)
|
||||
//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 || mainProductFlat.MinPrice == 0 {
|
||||
// mainProductFlat.MinPrice = variantFlat.MinPrice
|
||||
//}
|
||||
//
|
||||
//if mainProductFlat.MaxPrice < variantFlat.MaxPrice {
|
||||
// mainProductFlat.MaxPrice = variantFlat.MaxPrice
|
||||
//}
|
||||
//
|
||||
//sku := fmt.Sprintf("%s-%s-%s-%s", iproduct.Sku, colorVariant.ProductNumber, colorVariant.ProductCode, colorVariant.Color)
|
||||
//
|
||||
//productVariant := gm.Product{
|
||||
// ParentID: mainProductFlat.ProductID,
|
||||
// Type: "simple",
|
||||
// Sku: sku,
|
||||
// BrandID: mainProductFlat.BrandID,
|
||||
// AttributeValues: attributes,
|
||||
// AttributeFamilyID: iproduct.AttributeFamilyID,
|
||||
// Categories: categories,
|
||||
//}
|
||||
//
|
||||
//for _, element := range colorVariant.Images {
|
||||
// productVariant.Images = append(productVariant.Images, gm.ProductImage{Type: "cdn", Path: element})
|
||||
//}
|
||||
//
|
||||
//if errProdVariant := tx.Omit("Categories.*").Create(&productVariant).Error; errProdVariant != nil {
|
||||
// log.Println("ERR5" + errProdVariant.Error())
|
||||
// continue
|
||||
//}
|
||||
//
|
||||
//variantFlat.ProductID = productVariant.ID
|
||||
//variantFlat.Color = int(colorOption.ID)
|
||||
//variantFlat.ColorLabel = colorOption.AdminName
|
||||
//variantFlat.MetaKeywords = keywords
|
||||
//variantFlat.ParentID = mainProductFlat.ID
|
||||
//
|
||||
//if errVariant := tx.Create(&variantFlat).Error; errVariant != nil {
|
||||
// log.Println("ERR6" + errVariant.Error())
|
||||
// tx.RollbackTo(colorSavePoint)
|
||||
// continue
|
||||
//}
|
||||
//
|
||||
//mainProductFlat.Variants = append(mainProductFlat.Variants, variantFlat)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if len(mainProductFlat.Variants) == 0 {
|
||||
tx.Rollback()
|
||||
|
|
|
|||
Loading…
Reference in New Issue