运费逻辑

This commit is contained in:
2026-06-09 14:55:00 +08:00
parent ada64a68ad
commit bc0f7161c0
4 changed files with 236 additions and 34 deletions
+53 -31
View File
@@ -122,42 +122,64 @@ def extract_product_id(url: str | None = None) -> str:
return ""
def get_shipping_fee(amount: int) -> int:
"""
根据定义的运费规则计算运费
# --- 官方店铺日本境内运费规则 ---
# amount < OFFICIAL_SHIPPING_FEE_LOW_THRESHOLD: OFFICIAL_SHIPPING_FEE_LOW
# OFFICIAL_SHIPPING_FEE_LOW_THRESHOLD <= amount < OFFICIAL_SHIPPING_FEE_HIGH_THRESHOLD: OFFICIAL_SHIPPING_FEE_MID
# amount >= OFFICIAL_SHIPPING_FEE_HIGH_THRESHOLD: 免运费(0)
OFFICIAL_SHIPPING_FEE_LOW_THRESHOLD = 1000
OFFICIAL_SHIPPING_FEE_HIGH_THRESHOLD = 1500
OFFICIAL_SHIPPING_FEE_LOW = 440
OFFICIAL_SHIPPING_FEE_MID = 385
日本境内运费统一为固定价格(部分地区除外)。
• 订单金额低于1000日元:运费440日元
• 订单金额低于1500日元:运费385日元
• 订单金额1500日元及以上:免运费
*北海道、冲绳、离岛及其他部分地区可能需额外支付运费。
货到付款需另付550日元货到付款手续费。银行转账付款需由顾客承担转账手续费。信用卡付款无需支付手续费。
*通过电商平台购买的商品,运费因店铺而异。
# --- 加盟店日本境内运费规则 ---
# 每 1 家加盟店,无论订单数量与金额,统一收 FRANCHISE_SHIPPING_FEE_PER_STORE 日元
FRANCHISE_SHIPPING_FEE_PER_STORE = 800
# --- 通贩手续费规则 ---
# amount < HANDLE_FEE_FREE_THRESHOLD: HANDLE_FEE_BELOW
# amount >= HANDLE_FEE_FREE_THRESHOLD: 免手续费(0)
HANDLE_FEE_FREE_THRESHOLD = 5000
HANDLE_FEE_BELOW = 240
def get_shipping_fee(amount: int) -> int:
"""计算官方店铺日本境内运费(本州/四国/九州统一价)。
规则:
- amount < 1000 日元: 440 日元
- 1000 <= amount < 1500 日元: 385 日元
- amount >= 1500 日元: 0(免运费)
备注: 北海道/冲绳/离岛可能需额外支付;此处按本州口径计算。
加盟店运费另由 get_franchise_shipping_fee 计算。
"""
if amount > 1500:
if amount >= OFFICIAL_SHIPPING_FEE_HIGH_THRESHOLD:
return 0
elif amount > 1000:
return 440
else:
return 385
if amount >= OFFICIAL_SHIPPING_FEE_LOW_THRESHOLD:
return OFFICIAL_SHIPPING_FEE_MID
return OFFICIAL_SHIPPING_FEE_LOW
def get_franchise_shipping_fee(franchise_store_count: int) -> int:
"""计算加盟店日本境内运费。
每 1 家加盟店统一收 800 日元,与订单数量/金额无关。
franchise_store_count <= 0 时返回 0。
"""
if franchise_store_count <= 0:
return 0
return franchise_store_count * FRANCHISE_SHIPPING_FEE_PER_STORE
def get_handle_fee(amount: int) -> int:
"""
根据定义的规则计算手续费
https://www.suruga-ya.jp/man/qa/hanbai_qa/shiharai.html#shiharai_1_2
A. 运费根据购买金额而定。
■本州、四国、九州:
购买金额低于5,000日元…240日元;
购买金额5,000日元及以上…免运费。
■北海道、冲绳:
购买金额低于5,000日元…570日元;
购买金额5,000日元至低于10,000日元…285日元;
购买金额10,000日元及以上…免
"""计算通贩手续费(本州/四国/九州口径)。
运费。偏远岛屿及其他部分地区可能需额外收费。
这里按照本州计算手续费。
规则:
- amount < 5000 日元: 240 日元
- amount >= 5000 日元: 0(免手续费)
参考: https://www.suruga-ya.jp/man/qa/hanbai_qa/shiharai.html#shiharai_1_2
"""
if amount > 5000:
if amount >= HANDLE_FEE_FREE_THRESHOLD:
return 0
else:
return 240
return HANDLE_FEE_BELOW