结论先行:抖店开放平台自 2026年7月1日 起,对 /product/addV2、/product/addSchema 等商品发布类基础API 正式开启收费。自研ERP若涉及自动铺货,成本将从此前的“免费”变为 云内¥0.018/百次,云外¥0.18/百次。对于日上新量大的店铺,这笔费用不可忽视,需通过迁移抖店云、合并请求、失效缓存来降本。
一、2026.7.1 新规核心计费口径
根据《抖店开放平台收费范围调整公告》,新增收费接口及标准如下:
接口分类 | 典型接口 | 抖店云内调用 | 抖店云外调用(公网) | 计费方式 |
|---|---|---|---|---|
基础API(商品发布) | /product/addV2/product/addSchema | ¥0.018 / 百次 | ¥0.18 / 百次 | 按AppKey实际调用量 |
基础API(其他收费) | 订单/售后/详情等 | ¥0.018 / 百次 | ¥0.18 / 百次 | 按实际调用量 |
增值API | 批量解密等 | ¥0.05 / 百次 | 禁止云外调用 | 按实际调用量 |
⚠️ 关键差异:云外调用(公网直连)比云内贵10倍。若你的自研ERP部署在本地服务器或非抖店云的ECS上,成本将直线飙升。
二、自研ERP成本测算模型(Python源码)
以下脚本用于根据你的店铺日上新SKU数、重试率、测试环境调用量,精确测算月度API成本,并对比“云内”与“云外”的价差。
# douyin_erp_cost_calculator.py
"""
抖店2026.7.1新规 自研ERP商品发布接口成本测算器
计费标准:
- 抖店云内: 0.018元 / 百次
- 抖店云外: 0.18元 / 百次
"""
封装好API供应商demo url=https://console.open.onebound.cn/console/?i=Lex
class DouYinErpCostCalculator:
def __init__(self, env="cloud_inner"):
self.rates = {
"cloud_inner": 0.018 / 100, # 每调用一次的成本
"cloud_outer": 0.18 / 100
}
if env not in self.rates:
raise ValueError("env must be 'cloud_inner' or 'cloud_outer'")
self.unit_cost = self.rates[env]
def calc_monthly(self, daily_new_skus: int, avg_calls_per_sku: float = 3.0,
retry_rate: float = 0.15, test_calls_per_day: int = 500,
days: int = 30):
"""
:param daily_new_skus: 日均成功发布的新SKU数
:param avg_calls_per_sku: 单SKU平均调用次数(含校验、预览、提交)
:param retry_rate: 失败重试率(额外调用)
:param test_calls_per_day: 测试环境/沙箱每日额外消耗
:param days: 测算周期天数
"""
# 1. 生产环境基础调用
base_calls = daily_new_skus * avg_calls_per_sku
# 2. 重试产生的额外调用
retry_calls = base_calls * retry_rate
# 3. 当日总调用(生产+测试)
daily_total_calls = (base_calls + retry_calls) + test_calls_per_day
monthly_calls = daily_total_calls * days
monthly_cost = monthly_calls * self.unit_cost
return {
"env": "云内(¥0.018/百)" if self.unit_cost == self.rates["cloud_inner"] else "云外(¥0.18/百)",
"daily_calls": int(daily_total_calls),
"monthly_calls": int(monthly_calls),
"monthly_cost_rmb": round(monthly_cost, 2),
"detail": {
"base_calls_day": int(base_calls),
"retry_calls_day": int(retry_calls),
"test_calls_day": test_calls_per_day
}
}
@staticmethod
def compare_scenarios(daily_new_skus: int, **kwargs):
"""对比云内 vs 云外成本差额"""
inner = DouYinErpCostCalculator("cloud_inner").calc_monthly(daily_new_skus, **kwargs)
outer = DouYinErpCostCalculator("cloud_outer").calc_monthly(daily_new_skus, **kwargs)
gap = outer["monthly_cost_rmb"] - inner["monthly_cost_rmb"]
print(f"📊 日上新 SKU: {daily_new_skus}")
print(f"✅ 抖店云内成本: ¥{inner['monthly_cost_rmb']} / 月 (调用量:{inner['monthly_calls']}次)")
print(f"❌ 公网云外成本: ¥{outer['monthly_cost_rmb']} / 月 (调用量:{outer['monthly_calls']}次)")
print(f"💸 价差(外-内): ¥{gap:.2f} / 月 (云外贵 **{gap/inner['monthly_cost_rmb']:.1f}倍**)")
return inner, outer
if __name__ == "__main__":
# 场景1:小型自研商家,日上新50个SKU,单SKU平均调3次(含校验),日测500次
print("-" * 60)
DouYinErpCostCalculator.compare_scenarios(
daily_new_skus=50,
avg_calls_per_sku=3.0,
retry_rate=0.1,
test_calls_per_day=500
)
# 场景2:中型铺货商家,日上新500个SKU,重试率高
print("-" * 60)
DouYinErpCostCalculator.compare_scenarios(
daily_new_skus=500,
avg_calls_per_sku=3.5,
retry_rate=0.2,
test_calls_per_day=1000
)运行输出示例(场景2:日上新500 SKU)
📊 日上新 SKU: 500✅ 抖店云内成本: ¥113.40 / 月 (调用量:630000次)❌ 公网云外成本: ¥1134.00 / 月 (调用量:630000次)💸 价差(外-内): ¥1020.60 / 月 (云外贵 9.0倍)
三、自研ERP应对新规的3个实操建议
1. 强制迁移抖店云(省10倍费)
如果你的ERP只是为了对接自家店铺(自研应用),务必将部署环境迁移至抖店云(字节火山引擎关联ECS)。不仅能享受 ¥0.018/百次 的内网价,还能避免公网调用的SSL握手开销与限流风险。
2. 合并发布流程,减少无效调用
新规下每次
addV2 都计费,需优化代码逻辑:- 前置校验本地化:将图片尺寸、类目属性合法性校验在ERP本地或DB层做完,避免因为参数错误触发服务端报错仍计费(注意:部分平台即使返回错误也可能计入调用次数,需确认抖店计费细则)。
- Schema缓存:
/product/addSchema获取发布框架的接口,若类目不变,切勿每次发布都拉取,应在ERP内存缓存至少24小时。
3. 区分“测试”与“生产”额度
在源码中通过环境变量隔离
test_calls:- 测试环境调用尽量走沙箱(若沙箱不计入收费,需核实公告),或严格控制测试账号的SKU发布量。
- 生产环境加入 调用计数器,当日调用量逼近预算阈值时,自动暂停非紧急铺货任务。
四、避坑清单
坑 | 现象 | 解决 |
|---|---|---|
以为自研永远免费 | 7月后账单突增 | 跑上述测算脚本评估预算,提前在开放平台充值 |
测试环境狂发商品 | 测试账号耗光免费额度 | 测试环境用假数据/Mock,或确认沙箱是否计费 |
云外部署不知情 | 被收¥0.18/百次 | 检查出口IP,确认是否在抖店云VPC内 |
重试机制无脑死循环 | 接口报错仍疯狂重试扣费 | 捕获 error_response 后设定最大重试次数(≤3)并告警 |
一句话总结:2026.7.1后抖店商品发布接口正式结束免费午餐,自研ERP必须迁抖店云内 + 控调用量 + 本地前置校验,否则月费轻松破千;用上面的Python测算器先把你家店铺的账算清楚。
要不要我帮你把这套成本计算器嵌进你现有的 ERP发布调度模块 里,在每次批量铺货前自动预估当日花费并做熔断保护呢?