P paper2skillsPlaybook
AI 路线图 →

一盘货跨境库存统一调度 — 多平台多国统一库存决策与分配引擎

Skill-Unified-Cross-Border-Inventory-Dispatch · 04-供应链

causalexperimentforecastingoptimizationpricing广告与投放供应链与补货定价与利润WF-A 智能补货WF-B 广告优化WF-F 动态定价WF-I 智能体工程WF-L 内容营销增长
年化 ROI200万
实现难度⭐⭐⭐⭐☆
业务优先级⭐⭐⭐⭐☆
业务视角
适用角色供应链负责人 · 采购负责人 · CEO / 运营 VP
适用平台Amazon FBA · 海外仓 · 多国仓位(美/欧/日)
什么情况下用库存周转率低,资金压在海外仓出不来;SKU 断货紧急空运,物流成本吃掉毛利;多仓库存分布不均
成功是什么样的库存周转天数从 90 天降到 60 天,断货率 <3%,海外仓综合成本降低 15-25%
业务痛点
库存周转天数太长资金压死了断货了只能空运救急成本爆了多市场库存分配不均

1. 解决的问题

三渠道各自备货造成A平台缺货B平台积压的荒诞并存——统一库存池优化将跨渠道缺货率从18%降至5%,总库存减少22%,年化价值$17万

2. 核心算法逻辑

业务背景(陈凤霞实战经验):书中第8章专节阐述"一盘货"是东南亚跨境电商供应链的最大创新——不同卖家、不同平台、不同渠道的库存统一集中在一个仓库,按需调配。从中国直发到东南亚的模式下,每个卖家各自管库存效率极低,而"一盘货"让库存共享,整体周转率提升3050%。

3. 业务应用场景

场景A:Amazon/Shopee/TikTok Shop三渠道统一库存

- 业务问题:某母婴卖家同时运营3个平台,吸奶器SKU在Amazon FBA有100件(偏低),Shopee海外仓有250件(偏高),TikTok Shop仓有80件(正常)。Amazon频繁缺货,Shopee积压,不敢统一调配怕"调走后Shopee也缺货" - 数据要求:3个平台实时库存数据、各平台日均销量、调拨成本 - 算法应用: 1. 统一库存视图:总可用430件,Amazon需求强度最高(日均25件),Shopee仅10件 2. 最优分配:Amazon调配至180件(7天安全库存)、Shopee降至160件、TikTok 90件 3. 物理调拨:从Shopee海外仓转80件至FBA(调

- **业务问题**:3个母婴卖家各自在泰国建独立库存,每家月营业额$20万,各自维持$5万安全库存(共$15万),利用率仅60% - **算法应用**:三家合用一个仓,统一安全库存池$9万(池化降低40%),按各家实时订单量动态分配发货优先级;集中采购降低头程成本15% - **预期产出**:三家合计节省$6万安全库存占压 + 仓租降低50% = 每月节省$1.5万

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • ROI 预估:3渠道卖家年销$200万,池化节省30%安全库存约$3万资金占压,跨渠道调拨避免缺货$5万,聚合采购节省$5万,合计$13万/年;系统成本$4万,ROI≈325%
  • 实施难度:⭐⭐⭐⭐☆(技术上需要对接3+个平台API实时库存,跨国物理调拨的海关合规是难点)
  • 优先级:⭐⭐⭐⭐☆(同时经营3+平台或东南亚多国市场的卖家强烈推荐)
  • 适用规模:同时运营3个以上平台渠道、或东南亚多国布局的卖家
  • 数据依赖:各平台实时库存API、订单数据、调拨成本记录

7. 代码模板

代码块数量:1 · 路径:未检测到

"""
一盘货跨境库存统一调度系统
功能:多渠道库存聚合 + 最优分配 + 快拨决策 + 聚合采购
"""
import numpy as np
import pandas as pd
from dataclasses import dataclass, field
from typing import List, Dict, Tuple, Optional
from scipy.optimize import linprog
import warnings
warnings.filterwarnings('ignore')


@dataclass
class ChannelInventory:
    """渠道库存状态"""
    channel_id: str           # 'amazon_us', 'shopee_sg', 'tiktok_uk'
    sku_id: str
    stock: int                # 当前库存
    daily_sales: float        # 日均销量
    min_service_level: float  # 最低服务水平(fill rate)
    unit_margin: float        # 单位毛利($)
    reallocation_cost: float  # 从其他渠道调拨成本($件)
    lead_time_days: int       # 从中央仓调拨时间
    
    @property
    def doi(self) -> float:
        return self.stock / max(self.daily_sales, 0.01)
    
    @property
    def safety_stock_needed(self) -> float:
        return self.daily_sales * (self.lead_time_days + 7)  # 提前期+7天安全


class UnifiedInventoryEngine:
    """统一库存调度引擎"""
    
    def __init__(self):
        self.channels: Dict[str, List[ChannelInventory]] = {}
    
    def add_channel_inventory(self, inv: ChannelInventory):
        if inv.sku_id not in self.channels:
            self.channels[inv.sku_id] = []
        self.channels[inv.sku_id].append(inv)
    
    def compute_global_atp(self, sku_id: str) -> Dict:
        """计算全局可用库存"""
        if sku_id not in self.channels:
            return {}
        
        channels = self.channels[sku_id]
        total_stock = sum(c.stock for c in channels)
        total_demand = sum(c.daily_sales for c in channels)
        
        return {
            'sku_id': sku_id,
            'total_stock': total_stock,
            'total_daily_demand': total_demand,
            'global_doi': total_stock / max(total_demand, 0.01),
            'channels': len(channels),

8. 论文来源

  • 2405.11234