cinsiyet eklenior
This commit is contained in:
parent
ac2578d1fc
commit
144db0a55b
|
|
@ -39,10 +39,12 @@ func StartImport(w http.ResponseWriter, route *http.Request) {
|
|||
// lock the request
|
||||
if !atomic.CompareAndSwapUint32(&locker, stateUnlocked, stateLocked) {
|
||||
w.WriteHeader(http.StatusTooManyRequests)
|
||||
json.NewEncoder(w).Encode(map[string]string{
|
||||
"msg": "Scraper or Updater in progress!",
|
||||
err := json.NewEncoder(w).Encode(map[string]string{
|
||||
"msg": "Product import in progress!",
|
||||
})
|
||||
|
||||
log.Println(err)
|
||||
|
||||
return
|
||||
}
|
||||
defer atomic.StoreUint32(&locker, stateUnlocked)
|
||||
|
|
@ -62,7 +64,7 @@ func StartImport(w http.ResponseWriter, route *http.Request) {
|
|||
mainCategories = gm.GetMainCategories(baza)
|
||||
|
||||
famAndSellerWG.Add(3)
|
||||
//get attribute families from mysql with gorutine
|
||||
//get attribute families from mysql
|
||||
go func() {
|
||||
defer famAndSellerWG.Done()
|
||||
|
||||
|
|
@ -74,7 +76,7 @@ func StartImport(w http.ResponseWriter, route *http.Request) {
|
|||
}
|
||||
}()
|
||||
|
||||
//get sellers families from mysql with gorutine
|
||||
//get sellers families from mysql
|
||||
go func() {
|
||||
defer famAndSellerWG.Done()
|
||||
var vendors, err = gm.GetSellers(baza)
|
||||
|
|
@ -98,17 +100,17 @@ func StartImport(w http.ResponseWriter, route *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
for _, atrattribute := range attributes {
|
||||
AttributesMap[atrattribute.Code] = atrattribute
|
||||
for _, attribute := range attributes {
|
||||
AttributesMap[attribute.Code] = attribute
|
||||
}
|
||||
}()
|
||||
|
||||
mainImportWG.Add(len(mainCategories))
|
||||
|
||||
log.Println("Start Product delete")
|
||||
delete := time.Now()
|
||||
deleteTime := time.Now()
|
||||
errDel := gm.DeleteProducts(baza)
|
||||
deleteElapsed := time.Since(delete)
|
||||
deleteElapsed := time.Since(deleteTime)
|
||||
log.Printf("Delete products took %s", deleteElapsed)
|
||||
|
||||
if errDel != nil {
|
||||
|
|
@ -168,7 +170,7 @@ func importCategoryProducts(dbName string, db *gorm.DB) {
|
|||
continue
|
||||
}
|
||||
|
||||
//itearate 100 row products
|
||||
//iterate 100 row products
|
||||
for _, element := range response.Rows {
|
||||
|
||||
if err := ImportProduct(element.Doc, db); err != nil {
|
||||
|
|
@ -208,9 +210,6 @@ func getTotalDocumentCount(db string) int {
|
|||
return response.DocCount
|
||||
}
|
||||
|
||||
// todo defailt variant
|
||||
// productflat
|
||||
|
||||
func getCats(db *gorm.DB, catIDs []int) ([]gm.Category, string, error) {
|
||||
var categories []gm.Category
|
||||
var keywords string
|
||||
|
|
@ -256,12 +255,14 @@ func ImportProduct(product models.Product, db *gorm.DB) error {
|
|||
attributes, mainProductFlat := prepearAttributesWithFlat(&product)
|
||||
|
||||
colorOption := gm.GetAttributeOption(&tx, AttributesMap["color"].ID, product.Color)
|
||||
cinsiyetOption := gm.GetAttributeOption(&tx, AttributesMap["cinsiyet"].ID, product.Cinsiyet)
|
||||
|
||||
mainProductFlat.Color = int(colorOption.ID)
|
||||
mainProductFlat.ColorLabel = product.Color
|
||||
|
||||
attributes = append(attributes, []gm.ProductAttributeValue{
|
||||
{AttributeID: AttributesMap["color"].ID, IntegerValue: int(colorOption.ID)},
|
||||
{AttributeID: AttributesMap["cinsiyet"].ID, IntegerValue: int(cinsiyetOption.ID)},
|
||||
{AttributeID: AttributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"}}...)
|
||||
|
||||
var productImages []gm.ProductImage
|
||||
|
|
@ -380,6 +381,7 @@ func ImportProduct(product models.Product, db *gorm.DB) error {
|
|||
{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["cinsiyet"].ID, IntegerValue: int(cinsiyetOption.ID)},
|
||||
{ProductID: productVariant.ID, AttributeID: AttributesMap["size"].ID, IntegerValue: int(sizeOption.ID)},
|
||||
}
|
||||
|
||||
|
|
@ -453,10 +455,14 @@ func ImportProduct(product models.Product, db *gorm.DB) error {
|
|||
tx.SavePoint(colorSavePoint)
|
||||
|
||||
colorOption := gm.GetAttributeOption(&tx, AttributesMap["color"].ID, colorVariant.Color)
|
||||
cinsiyetOption := gm.GetAttributeOption(&tx, AttributesMap["cinsiyet"].ID, colorVariant.Cinsiyet)
|
||||
attributes, variantFlat := collectAttributes(&colorVariant, &colorOption)
|
||||
attributes = append(attributes, gm.ProductAttributeValue{AttributeID: AttributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"})
|
||||
attributes = append(attributes, []gm.ProductAttributeValue{
|
||||
{AttributeID: AttributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"},
|
||||
{AttributeID: AttributesMap["cinsiyet"].ID, IntegerValue: int(cinsiyetOption.ID)},
|
||||
}...)
|
||||
|
||||
sku := fmt.Sprintf("%s-%s-%s-%s", iproduct.Sku, colorVariant.ProductNumber, colorIndex, colorVariant.Color)
|
||||
sku := fmt.Sprintf("%s-%s-%d-%s", iproduct.Sku, colorVariant.ProductNumber, colorIndex, colorVariant.Color)
|
||||
|
||||
productVariant := gm.Product{
|
||||
ParentID: mainProductFlat.ProductID,
|
||||
|
|
@ -537,6 +543,7 @@ func ImportProduct(product models.Product, db *gorm.DB) error {
|
|||
{AttributeID: AttributesMap["size"].ID, IntegerValue: int(sizeOption.ID)},
|
||||
{AttributeID: AttributesMap["description"].ID, TextValue: mainProductFlat.Description, Channel: "default", Locale: "tm"},
|
||||
{AttributeID: AttributesMap["color"].ID, IntegerValue: int(colorOption.ID)},
|
||||
{AttributeID: AttributesMap["cinsiyet"].ID, IntegerValue: int(cinsiyetOption.ID)},
|
||||
}
|
||||
|
||||
flatVariant := gm.ProductFlat{
|
||||
|
|
@ -739,9 +746,9 @@ func collectAttributes(variant *models.Product, option *gm.AttributeOption) ([]g
|
|||
|
||||
func prepearAttributesWithFlat(data *models.Product) ([]gm.ProductAttributeValue, gm.ProductFlat) {
|
||||
|
||||
weight, wEror := strconv.ParseFloat(data.Weight, 64)
|
||||
weight, wError := strconv.ParseFloat(data.Weight, 64)
|
||||
|
||||
if wEror != nil || weight == 0 {
|
||||
if wError != nil || weight == 0 {
|
||||
weight = 0.5
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue