fix sizevariants

This commit is contained in:
merdan 2023-05-03 21:04:00 +05:00
parent 132288d6d8
commit 5600ae746f
1 changed files with 16 additions and 6 deletions

View File

@ -204,11 +204,23 @@ func (importer *Importer) importVariant(product models.Product) (*gm.Product, er
if productRepo.HasSizeVariants() {
var sizeVariants []gm.ProductFlat
for index, variant := range *product.SizeVariants {
if !variant.Sellable {
continue
}
sku := fmt.Sprintf("%s-%d", product.ProductNumber, variant.ItemNumber)
//todo finde variant first if not exists create
var variantFlat gm.ProductFlat
err := tx.Preload("Product").Preload("Variants").First(&variantFlat, "sku = ?", sku).Error
savePoint := "size" + strconv.Itoa(index)
tx.SavePoint(savePoint)
if err == nil {
tx.Model(&variantFlat).Updates(map[string]interface{}{"status": variant.Sellable, "parent_id": mainFlat.ID})
tx.Model(&gm.ProductAttributeValue{}).Where("attribute_id=8 AND product_id=?", variantFlat.ProductID).Update("boolean_value", variant.Sellable)
tx.Model(&variantFlat.Product).Update("parent_id", mainPorduct.ID)
if variant.Sellable {
importer.updatePrice(variant.Price, &variantFlat)
}
continue
}
var sizeOPtion gm.AttributeOption
@ -218,8 +230,6 @@ func (importer *Importer) importVariant(product models.Product) (*gm.Product, er
sizeOPtion = gm.GetAttributeOption(tx, importer.AttributesMap["boyut"].ID, variant.AttributeValue)
}
sku := fmt.Sprintf("%s-%d", product.ProductNumber, variant.ItemNumber)
variantProduct := productRepo.makeVariant(mainPorduct.ID, mainPorduct.AttributeFamilyID, sku)
variantProduct.AttributeValues = productRepo.getVariantAttributes(importer.AttributesMap, &variant, sizeOPtion.ID)
@ -230,7 +240,7 @@ func (importer *Importer) importVariant(product models.Product) (*gm.Product, er
continue
}
variantFlat := productRepo.makeVariantFlat(variant, sizeOPtion.ID, mainFlat.ID, variantProduct.ID)
variantFlat = productRepo.makeVariantFlat(variant, sizeOPtion.ID, mainFlat.ID, variantProduct.ID)
if err := tx.Create(&variantFlat).Error; err != nil {
log.Println("Variant Flat Create Error: " + err.Error())