diff --git a/business/partner/purchase/tiktok_store/store_sku2.go b/business/partner/purchase/tiktok_store/store_sku2.go index e97e7e40e..03d76677a 100644 --- a/business/partner/purchase/tiktok_store/store_sku2.go +++ b/business/partner/purchase/tiktok_store/store_sku2.go @@ -1,6 +1,7 @@ package tiktok_store import ( + "errors" "fmt" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" freightTemplate_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/freightTemplate_create/request" @@ -8,7 +9,9 @@ import ( product_detail_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_detail/response" product_editV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_editV2/request" shop_bindStoreFreight_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_bindStoreFreight/request" + shop_bindStoreSaleLimit_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_bindStoreSaleLimit/request" sku_editPrice_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/sku_editPrice/request" + trade_createTradeLimitTemplate_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/trade_createTradeLimitTemplate/request" tiktokShop "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" @@ -346,6 +349,12 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI param.ProductFormatNew = productFormatNew globals.SugarLogger.Debug("创建=============param", utils.Format4Output(param, false)) + // 获取门店限售模板 + saleLimitId, err := CreateSaleTemp(param.StoreId, api) + if err != nil { + return nil, err + } + param.SaleLimitId = saleLimitId // 抖店创建商品 tiktokResult, err := api.CreateStoreCommodity(param) if err != nil { @@ -428,6 +437,57 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI return failedList, err } +// CreateSaleTemp 创建限售模板 +func CreateSaleTemp(storeId int64, api *tiktokShop.API) (int64, error) { + // 获取限售模板 + saleLimitId, err := api.StoreQuerySaleLimitTemp(storeId) + if err != nil { + return 0, err + } + if saleLimitId != 0 { + return saleLimitId, nil + } + + // 创建限售模板 + param := &trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{ + StoreId: storeId, + TradeLimitRuleRequestList: []trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{}, + } + param.StoreId = storeId + tradeLimitRuleRequestList := make([]trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem, 0) + tradeLimitRuleRequest := trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{ + TradeLimitModel: 1, // 限购模型 1-重量,2-数量,3-地区,4-金额 + TradeLimitResource: 2, // 限购资源类别1-抖店,2-门店,3-商品ID,4-sku,5-类目,6-活动,7-商品标 + TradeLimitResourceObject: nil, + TradeLimitPattern: &trade_createTradeLimitTemplate_request.TradeLimitPattern{ + Minimum: 1, // 1毫克 + Maximum: 500 * 1000 * 1000, //500千克 + CumulativeMax: 99999, + }, + TimePeriod: nil, + TradeLimitSubjectList: []int32{1}, + } + tradeLimitRuleRequestList = append(tradeLimitRuleRequestList, tradeLimitRuleRequest) + result, err := api.CreateTradeLimitTemplate(param) + if err != nil { + return 0, err + } + + if result.TradeLimitId == 0 { + return 0, errors.New("限售模板创建错误,联系管理员") + } + + // 绑定限售模板 + if err := api.BindStoreSaleLimit(&shop_bindStoreSaleLimit_request.ShopBindStoreSaleLimitParam{ + StoreId: storeId, + SaleLimitId: result.TradeLimitId, + }); err != nil { + return 0, err + } + + return result.TradeLimitId, nil +} + func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableDdStoreWrite { for _, v := range storeSkuList {