快工助手跨境电商知识与商机助手

v2.bundle_deal.add_bundle_deal

Shopee 官方资料 · Shopee Open Platform 接口参考 · 适合开发者

stable本次发布有变化全部展示

来自 Shopee 官方资料快照 ·

打开官方原文 ↗
  1. 当前资料结构化阅读页
  2. 固定快照已留存,可追溯
  3. 官方原文可核对
查看技术与溯源信息
平台 / profile
Shopee / profile.shopee.api_reference
语言
en-US
发布版本
cn-20260909-2
标签
zhuge/sourceplatform/shopeeaudience/developercategory/api_doctopic/apitopic/developer

资料正文

§1 v2.bundle_deal.add_bundle_deal

create bundle deal. Relevant restrictions refer to FAQ:https://open.shopee.com/faq/254

#

§2 Overview

Overview

FieldValue
ModuleBundle Deal
API typeShop
HTTP methodPOST
Path/api/v2/bundle_deal/add_bundle_deal
Production URLhttps://partner.shopeemobile.com/api/v2/bundle_deal/add_bundle_deal
Sandbox URLhttps://partner.test-stable.shopeemobile.com/api/v2/bundle_deal/add_bundle_deal
Rate limit[0, 0, 0]
PermissionERP System; Seller In House System; Marketing; Swam ERP
#

§3 Request parameters

Request parameters

NameTypeRequiredSampleDescription
rule_typeint32Yes1The bundle deal rule type:FIX_PRICE = 1 ;DISCOUNT_PERCENTAGE = 2; DISCOUNT_VALUE = 3
discount_valuefloatYes11.0The deducted price when when buying a bundle deal. Need to input it when the bundle deal rule type is 3
fix_pricefloatYes11.0The amount of the buyer needs to spend to purchase a bundle deal. Need to input it when the bundle deal rule type is 1
discount_percentageint32Yes33The discount that the buyer can get when buying a bundle deal. Need to input it when the bundle deal rule type is 2
min_amountint32Yes1The quantity of items that need buyer to combine purchased
start_timetimestampYes1600000000The time when bundle deal activity start.The start time must be later than current time.
end_timetimestampYes1610000000The time when bundle deal activity end. The end time must be 1 hour later than start time.
namestringYesbundle nameTitle of the bundle deal
purchase_limitint32Yes3Maximum number of bundle deals that can be bought by a buyer.
additional_tiersobject[]NoUse to create tiered discount for bundle deals, a max of 2 additional tiers are allowed to create.; the rule of multiple tiers needs to follow this faq https://open.shopee.com/faq/53; For additional tiers, the fix price, discount_percentage, discount_value should be consistent with tier 1
additional_tiers.min_amountint32Yes100The quantity of items that the buyers need to purchase for additional tier
additional_tiers.fix_pricefloatNo100.00The bundle price when the buyers purchase a bundle deal for additional tiers. Need to input it when the bundle deal rule type is 1.
additional_tiers.discount_valuefloatNo20.00The bundle deal discount amount the buyer can save when purchasing a bundle deal. Need to input it when the bundle deal rule type is 3
additional_tiers.discount_percentageint32No20The bundle deal discount% that the buyer can get when buying a bundle deal for additional tiers. Need to input it when the bundle deal rule type is 2
#

§4 Response parameters

Response parameters

NameTypeRequiredSampleDescription
errorstringIndicate error type if hit error. Empty if no error happened.
messagestringIndicate error details if hit error. Empty if no error happened.
request_idstringb41cb9d4eff03a708347d69abcd4c63dThe identifier of the API request for error tracking
responseobject
response.bundle_deal_idint3211111Shopee's unique identifier for a bundle deal activity.
#

§5 Common parameters

Common parameters

NameTypeRequiredSampleDescription
partner_idint1Partner ID is assigned upon registration is successful. Required for all requests.
timestamptimestamp1610000000This is to indicate the timestamp of the request. Required for all requests. Expires in 5 minutes.
access_tokenstringc09222e3fc40ffb25fc947f738b1abf1The token for API access, using to identify your permission to the api. Valid for multiple use and expires in 4 hours.
shop_idint600000Shopee's unique identifier for a shop. Required param for most APIs.
signstringe318d3e932719916a9f9ebb57e2011961bd47abfa54a36e040d050d8931596e2Signature generated by partner_id, api path, timestamp, access_token, shop_id and partner_key via HMAC-SHA256 hashing algorithm. More details: https://open.shopee.com/documents?module=87&type=2&id=58&version=2
#

§6 Request samples

Request samples

#

§7 Payload

Payload

{
	"rule_type": 1,
	"discount_value": 11,
	"fix_price": 11,
	"discount_percentage": 33,
	"min_amount": 1,
	"start_time": 1600000000,
	"end_time": 1610000000,
	"name": "bundle name",
	"purchase_limit": 3,
	"additional_tiers": [
		{
			"min_amount": 100,
			"fix_price": 100,
			"discount_value": 20,
			"discount_percentage": 20
		}
	]
}
#

§8 Java

Java

Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://open.admin.shopee.io/api/v2/bundle_deal/add_bundle_deal?access_token=access_token&partner_id=partner_id&shop_id=shop_id&sign=sign&timestamp=timestamp")
.header("Content-Type","application/json")
.body("{
   \"additional_tiers\": [
      {
         \"discount_percentage\": 20,
         \"discount_value\": 20,
         \"fix_price\": 100,
         \"min_amount\": 100
      }
   ],
   \"discount_percentage\": 33,
   \"discount_value\": 11,
   \"end_time\": 1610000000,
   \"fix_price\": 11,
   \"min_amount\": 1,
   \"name\": \"bundle name\",
   \"purchase_limit\": 3,
   \"rule_type\": 1,
   \"start_time\": 1600000000
}")
.asString();
#

§9 PHP

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://open.admin.shopee.io/api/v2/bundle_deal/add_bundle_deal?access_token=access_token&partner_id=partner_id&shop_id=shop_id&sign=sign&timestamp=timestamp',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => '{
    "additional_tiers": [
        {
            "discount_percentage": 20,
            "discount_value": 20,
            "fix_price": 100,
            "min_amount": 100
        }
    ],
    "discount_percentage": 33,
    "discount_value": 11,
    "end_time": 1610000000,
    "fix_price": 11,
    "min_amount": 1,
    "name": "bundle name",
    "purchase_limit": 3,
    "rule_type": 1,
    "start_time": 1600000000
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
#

§10 cURL

cURL

curl --location --request POST 'https://open.admin.shopee.io/api/v2/bundle_deal/add_bundle_deal?access_token=access_token&partner_id=partner_id&shop_id=shop_id&sign=sign&timestamp=timestamp' \
--header 'Content-Type: application/json' \
--data-raw '{
   "additional_tiers": [
      {
         "discount_percentage": 20,
         "discount_value": 20,
         "fix_price": 100,
         "min_amount": 100
      }
   ],
   "discount_percentage": 33,
   "discount_value": 11,
   "end_time": 1610000000,
   "fix_price": 11,
   "min_amount": 1,
   "name": "bundle name",
   "purchase_limit": 3,
   "rule_type": 1,
   "start_time": 1600000000
}'
#

§11 Python

Python

import requests
import json

url = "https://open.admin.shopee.io/api/v2/bundle_deal/add_bundle_deal?access_token=access_token&partner_id=partner_id&shop_id=shop_id&sign=sign&timestamp=timestamp"

payload=json.dumps({
  "additional_tiers": [
    {
      "discount_percentage": 20,
      "discount_value": 20,
      "fix_price": 100,
      "min_amount": 100
    }
  ],
  "discount_percentage": 33,
  "discount_value": 11,
  "end_time": 1610000000,
  "fix_price": 11,
  "min_amount": 1,
  "name": "bundle name",
  "purchase_limit": 3,
  "rule_type": 1,
  "start_time": 1600000000
})
headers = {
  'Content-Type': 'application/json'
}
response = requests.request("POST",url,headers=headers, data=payload, allow_redirects=False)

print(response.text)
#

§12 Response sample

Response sample

#

§13 JSON

JSON

{
	"error": "-",
	"message": "-",
	"request_id": "b41cb9d4eff03a708347d69abcd4c63d",
	"response": {
		"bundle_deal_id": 11111
	}
}
#

§14 Error example

Error example

#

§15 JSON

JSON

{
    "message": "The start time should be later than current time",
    "request_id": "485066ac3b30e1bcad15447ef16179b5",
    "response": {},
    "error": "bundle.bundle_deal_start_time_error"
}
#

§16 Errors

Errors

ErrorDescriptionSolution
add_on.add_on_no_logisticThis item doesn't has shipping channel, please set shipping channel firstly
add_on.add_on_deal_item_under_block_categoriesThis product is under a category that is prohibited from promotions due to regulations in your country
bundle.bundle_deal_discount_value_invalid_rangeDiscount value should be within Price range.
bundle.bundle_deal_start_time_errorPromotion start time can only be changed to a later timing.
bundle.bundle_deal_error_total_count_limitA maximum of 1000 bundle deals can be created
bundle.bundle_deal_error_unknownUnknown error occurred in the service
bundle.bundle_deal_exceed_remaining_time_limitThe bundle deal end time must earlier than the max allowed current time
bundle.bundle_deal_fix_price_invalid_rangeFix price should be within Price range.
bundle.bunde_deal_multi_tier_invalid_discountHigher tier should have a higher or same discount or bundle price
bundle.bundle_deal_multi_tier_invalid_discount_with_equal_errorHigher tier discount must be equivalent or greater than lower tier
bundle.bundle_deal_multi_tier_invalid_fix_price_per_itemHigher tier should have lower price per item (price per item = fixed bundle price / item amount)
bundle.bundle_deal_multi_tier_feature_toggleCannot create multi-tier bundle deals
bundle.bundle_deal_name_lengthName length can't be less than 1 or greater than 25
bundle.bundle_deal_ongoing_promotion_info_lockCannot change rule_type, fix_price, discount_percentage, discount_value or tiers number if Bundle deal is ongoing.
bundle.bundle_deal_ongoing_promotion_info_lock_min_amountCannot change min_amount if Bundle deal is ongoing and has enabled items
bundle.bundle_deal_over_min_amountThe item amount can't exceed 3000
bundle.bundle_deal_over_tierMax bundle tier allowed is 3
bundle.bundle_deal_rule_type_mix_usePlease use consistent rule type
bundle.bundle_deal_rule_type_valuePlease use correct bundle deal rule type
bundle.bundle_deal_tier_invalidThe discount off for tier 1 must be < 90%%
bundle.bundle_deal_under_min_amountThe item amount should be greater than 1
bundle.bundle_deal_under_min_amount_multi_tierThe item amount should be greater than the previous tier
bundle.bundle_deal_invaild_discount_percentageDiscount percentage should not less than 1%% and not more than 99%%
bundle.bundle_deal_min_span_withinThe promotion period must be greater than 1 hour
bundle.bundle_deal_start_time_errorThe start time should be later than current time
error_networkInner http call failed
error_dataparse data failed
error_datadata not exist
error_paramparameter invalid
error_paramThe information you queried is not found.
error_paramWrong parameters, detail: {msg}.
error_serverSomething wrong. Please try later.
error_shopshopid is invalid
error_paramrequest not from gateway
#

§17 Common errors

Common errors

ErrorDescriptionSolution
error_authpartner_id is invalid
error_authThe App is deleted, and you'll be unable to make any API call.
error_authApp developer’s permissions for authorizations have been restricted. If you’re a seller, contact the developer for more information. If you’re the developer, refer to the Open Platform Console for details.
error_paramThere is no partner_id in query.
error_paramInvalid partner_id.
error_paramno timestamp
error_paramInvalid timestamp
error_paramThere is no sign in query.
error_signWrong sign.
invalid_partner_idInvalid partner_id, please have a check.
error_authNo permission to current api.
error_api_call_restrictedThe App permission for api call have been restricted. If you’re a seller, contact the developer for more information. If you’re the developer, refer to the Open Platform Console for details.
api_suspendedThe API is offline. Please call v2 API instead.
error_limitThe total API call number made by your APP has reached the daily API call limit, please try again after 00: 00 (UTC+08:00)
error_rate_limitToo many requests. You have reached the rate limit. Please try again later.
source_ip_undeclaredRequest Source IP ({ip}) is undeclared. Please declare all your IP addresses in the Shopee Open Platform Console > App list > IP Address Whitelist
error_paramPermission denied. This API is currently offline or the request path is incorrect.
error_paramPartner_id is invalid, should be an integer between 0 and 4294967295.
error_paramno timestamp.
error_paramTimestamp is invalid, should be an integer between 0 and 4294967295.
error_paramTimestamp is expired.
error_partner_key_expiredYour API partner key has expired, please reset the Live API Partner Key in Console to get a new valid partner key to call open api.
error_api_permissionThis app type has no permission to this API.
error_paramThere is no access_token in query.
error_authInvalid access_token.
error_authInvalid partner_id or shopid.
shop_no_linkedPartner and shop has no linked.
shop_bannedThe shop account has been banned. Permissions for shop authorization and API calls have been suspended until the shop account is restored.
invalid_acceess_tokenInvalid access_token, please have a check.
partner_shop_no_linkInvalid partner_id or shop_id, please have a check.
error_ashop_api_permissionThe shop is Affiliate shop has no permission to call this API.
error_kyc_authNo permission. Please inform the seller to complete the Seller Registration on Shopee Seller Center first, then this shop can call for this API.
error_authSystem error, please try again later.
error_paramThere is no shop_id in query.
error_paramshop_id is invalid, should be an integer between 0 and 4294967295.
#

§18 Update log

Update log

DateChange
2025-09-08select type for some parameters
2022-08-29add additional_tiers
2022-07-26Add Error Example information
2022-06-29Optimize the Sample information of Request Parameter and Response Parameter
2021-04-25update
#