diff --git a/business/partner/purchase/tiktok_store/store_sku2_utils.go b/business/partner/purchase/tiktok_store/store_sku2_utils.go index 2110ce1c8..a568b1766 100644 --- a/business/partner/purchase/tiktok_store/store_sku2_utils.go +++ b/business/partner/purchase/tiktok_store/store_sku2_utils.go @@ -4,6 +4,7 @@ import ( "encoding/json" "errors" "fmt" + product_addV2_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_addV2/response" "strings" "time" "unicode" @@ -157,10 +158,31 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI } tiktokResult, err := api.CreateStoreCommodity(param) // 创建主商品,同步主商品 if err != nil { + if strings.Contains(err.Error(), "outProductId或者outerProductId已经存在") { // 主品以创建但是未返回出来 + mainProductDetail, _ := api.GetSkuDetail("", utils.Int2Str(storeSku.SkuID)) + if mainProductDetail != nil || mainProductDetail.ProductId != 0 { + tiktokResult.ProductId = mainProductDetail.ProductId + + specPrices := make([]product_addV2_response.SkuItem, 0, 0) + for _, v := range mainProductDetail.SpecPrices { + specPrices = append(specPrices, product_addV2_response.SkuItem{ + SkuId: v.SkuId, + OutSkuId: v.OutSkuId, + OuterSkuId: v.OuterSkuId, + Code: v.Code, + SpecDetailId1: v.SpecDetailId1, + SpecDetailId2: v.SpecDetailId2, + SpecDetailId3: v.SpecDetailId3, + }) + } + tiktokResult.Sku = specPrices + } else { + storeSku.SkuSyncStatus = model.SyncFlagNewMask // 只创建主品,子品都没做 + failedList = putils.GetErrMsg2FailedSingleList(storeSku, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType) + continue + } + } //dao.UpdateThingMap(db, model.ThingTypeSyncFail, utils.Int64ToStr(time.Now().Unix()), storeSku.SkuID, model.VendorIDDD, storeDetail.VendorOrgCode) - storeSku.SkuSyncStatus = model.SyncFlagNewMask // 只创建主品,子品都没做 - failedList = putils.GetErrMsg2FailedSingleList(storeSku, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType) - continue } if tiktokResult.ProductId > model.NO {