mcpField
O
order-fulfillment-workflow

order-fulfillment-workflow

github.com/finsilabs其他60119 次安装5 天前更新
代码仓库

关于 order-fulfillment-workflow

面向电商仓储履约流程设计的技能,涵盖订单拣货、包装、发货和条码核验。内容也涉及拣货单、装箱单、物流标签及第三方物流对接。

主要功能

  1. 01订单拣货、包装与发货流程
  2. 02条码扫描核验商品
  3. 03生成拣货单和装箱单
  4. 04创建物流标签
  5. 05通过 API、EDI 或 SFTP 对接 3PL

适用场景

  1. 01用内部工具替代表格拣货
  2. 02为新仓储作业建立履约流程
  3. 03降低错发商品的情况
  4. 04向第三方物流推送标准订单数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill order-fulfillment-workflow

安装后在 Claude Code 中输入/order-fulfillment-workflow确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

tile.json
evals/carrier-label-creation-with-shippo-and-p/
criteria.json
task.md
evals/fulfillment-state-machine-and-barcode-sc/
criteria.json
task.md
evals/pick-list-generation-and-pdf-packing-sli/
criteria.json
task.md

详细介绍

订单履约工作流

概述

履约工作流会将已付款订单从“待履约”状态推进到拣货、打包和发货,并通过条码验证防止错发,为每批发货生成装箱单。对大多数商家来说,专用应用比定制软件更可靠、成本更低。只有对于工作流独特且订单量大的仓储运营,定制开发才有意义。

何时使用此技能

  • 构建内部仓库工具,以替代基于电子表格的手动拣货流程
  • 设置新的履约运营,需要从第一天起就采用结构化工作流
  • 与要求提供标准化订单数据的第三方物流(3PL)服务商集成
  • 添加拣货验证,以减少错发和客户投诉
  • 需要同时支持单订单拣货和批量拣货,以提高效率

核心说明

步骤 1:确定平台并选择合适的履约工具
平台推荐工具原因
ShopifyShipStation、Shopify Fulfillment Network (SFN) 或 Pirate ShipShipStation 可在一个工具中处理拣货单、装箱单和多承运商标签打印;SFN 则完全外包履约服务
WooCommerceShipStation(WooCommerce 插件)、WooCommerce Shipping + Packing Slips by WooCommerceShipStation 的 WooCommerce 插件可自动同步订单;内置的装箱单扩展可处理单据生成
BigCommerceShipStation、ShipBob 或 EasyshipShipStation 和 ShipBob 都提供原生 BigCommerce 集成;Easyship 支持跨承运商比价
自定义 / 无头架构构建履约状态机,并集成 Shippo 或 EasyPost 来生成标签使用 Shippo/EasyPost 创建不依赖承运商的标签;围绕它们构建拣货、打包和发货工作流
步骤 2:设置履约工具
Shopify

选项 A:ShipStation(推荐用于每天 50 单以上)

  1. 从 Shopify App Store 安装 ShipStation
  2. ShipStation 会自动拉取所有“未履约”的 Shopify 订单
  3. 在 ShipStation 中设置 Automation Rules(Automation → Automation Rules),根据订单重量、目的地或商品类型分配承运商、服务和预设
  4. **拣货单:**在 ShipStation 中,前往 Orders → 选择多个订单 → Print → Pick List。ShipStation 会按照仓库布局排序,生成汇总拣货单
  5. **装箱单:**选择订单 → Print → Packing Slip。在 Account Settings → Printing → Document Templates 中自定义装箱单模板
  6. **标签打印:**ShipStation 通过其桌面应用将标签打印到热敏标签打印机(Zebra、DYMO)——每个订单扫描一次即可创建并打印标签
  7. 打印标签后,ShipStation 会自动在 Shopify 中将订单标记为已履约,并向客户发送跟踪邮件

选项 B:Shopify Fulfillment Network (SFN) — 完全外包

  1. 前往 Settings → Shipping and delivery → Shopify Fulfillment Network
  2. SFN 负责所有拣货、打包和发货操作——你只需将库存运送到其仓库,之后由其自动履约订单
  3. 你无需管理仓库;SFN 会跟踪库存,并在当天或次日履约订单

选项 C:Shopify 内置履约功能(适用于订单量较少的情况)

  1. 前往 Orders → [Order] → Fulfill items
  2. 手动输入跟踪号码,或通过 Shopify Shipping 购买标签
  3. Shopify 可生成基本装箱单:Orders → Print → Packing slip
WooCommerce

使用 ShipStation:

  1. 安装 ShipStation for WooCommerce 插件(可在 WordPress.org 免费获取)
  2. 在 ShipStation 中,前往 Account Settings → Stores 并连接你的 WooCommerce 商店
  3. 未履行的 WooCommerce 订单会自动同步到 ShipStation
  4. 使用 ShipStation 生成拣货单、装箱单并打印面单(工作流程与上文的 Shopify 相同)
  5. 打印面单后,ShipStation 会将跟踪号码推送回 WooCommerce,并将订单标记为“Completed”

仅使用 WooCommerce(订单量较少时):

  1. 安装 WooCommerce PDF Invoices & Packing Slips(免费,可在 WordPress.org 获取)以生成 PDF 装箱单
  2. 前往 WooCommerce → Orders,选择待处理订单,然后在 Bulk Actions 下拉菜单中选择“Generate packing slips”
  3. 生成拣货单:Smart Manager for WooCommerce 插件或 ATUM Inventory Management 可直接从 WooCommerce 生成拣货单
BigCommerce

使用 ShipStation:

  1. 通过 BigCommerce App Marketplace 连接 ShipStation
  2. ShipStation 会自动同步所有未结 BigCommerce 订单
  3. 使用相同的 ShipStation 工作流程生成拣货单、装箱单并打印面单

使用 ShipBob(外包履约):

  1. 从 BigCommerce App Marketplace 连接 ShipBob
  2. 将库存运送到 ShipBob 仓库;他们会自动履行所有订单
  3. ShipBob 会实时更新 BigCommerce 订单状态和跟踪信息
步骤 3:配置拣货单生成和仓库工作流程

优质的拣货单会按仓库位置(储物格/货架)对商品分组,以尽量减少拣货员的行走时间。大多数运输应用都支持此功能。

ShipStation 拣货单设置:

  1. 前往 Account Settings → Printing → Pick List
  2. 配置分组方式:按 SKU 分组(批量拣货)或按订单分组(逐单拣货)
  3. 如果已在商品中填写储物格位置(ShipStation → Products → edit product),请启用“Show bin location”
  4. 条码扫描:ShipStation 提供 Scan to Verify 功能——在 Account Settings → Features 中启用。扫描器会在打印面单前验证商品条码,防止发错商品

对于 3PL 集成:

  • 大多数 3PL(ShipBob、Whiplash、Flexport)通过 EDI、SFTP CSV 或 REST API 接收订单
  • 在 Shopify 中:安装 3PL 的应用,或使用 webhook 将订单推送到其系统
  • 在 WooCommerce 中:使用 WooCommerce webhook(WooCommerce → Settings → Advanced → Webhooks)将订单数据推送到 3PL
步骤 4:设置承运商面单创建
Shopify
  • Shopify Shipping(内置):在 Shopify 后台直接购买 USPS、UPS、DHL 和 Canada Post 面单,享受折扣费率
  • ShipStation:连接所有主要承运商;根据你的业务量协商费率——对于高业务量运营,通常比 Shopify Shipping 更便宜
  • EasyShip:可在 Shopify App Store 获取;可在 250 多家承运商中比价,包括国际运输选项
WooCommerce
  • WooCommerce Shipping(内置,由 WooCommerce.com 提供支持):直接在 WooCommerce 后台生成 USPS 和 DHL Express 面单
  • ShipStation 插件:可在 ShipStation 中连接所有主要承运商
  • Easyship 插件:直接在 WooCommerce 结账页面和后台进行多承运商费率比价
BigCommerce
  • ShipStation:可对所有主要承运商进行费率比价
  • Easyship:原生 BigCommerce 集成,支持 250 多家承运商
自定义/无头架构
import Shippo from 'shippo';
const shippo = Shippo(process.env.SHIPPO_API_KEY);

// Create a shipping label for a fulfilled order
async function createShippingLabel(params: {
  warehouseName: string;
  warehouseAddress: Address;
  customerAddress: Address;
  packageWeightOz: number;
  packageDimensions: { lengthIn: number; widthIn: number; heightIn: number };
  preferredService?: string;
}): Promise<{ trackingNumber: string; labelUrl: string }> {
  const shipment = await shippo.shipment.create({
    address_from: {
      name: params.warehouseName,
      street1: params.warehouseAddress.street1,
      city: params.warehouseAddress.city,
      state: params.warehouseAddress.state,
      zip: params.warehouseAddress.zip,
      country: 'US',
    },
    address_to: {
      name: params.customerAddress.name,
      street1: params.customerAddress.street1,
      city: params.customerAddress.city,
      state: params.customerAddress.state,
      zip: params.customerAddress.zip,
      country: params.customerAddress.country,
      email: params.customerAddress.email,
    },
    parcels: [{
      length: params.packageDimensions.lengthIn.toString(),
      width: params.packageDimensions.widthIn.toString(),
      height: params.packageDimensions.heightIn.toString(),
      distance_unit: 'in',
      weight: params.packageWeightOz.toString(),
      mass_unit: 'oz',
    }],
    async: false,
  });

  const rate = params.preferredService
    ? shipment.rates.find(r => r.servicelevel.token === params.preferredService)
    : shipment.rates.sort((a, b) => parseFloat(a.amount) - parseFloat(b.amount))[0];

  const transaction = await shippo.transaction.create({
    rate: rate.object_id,
    label_file_type: 'PDF',
  });

  return {
    trackingNumber: transaction.tracking_number,
    labelUrl: transaction.label_url,
  };
}

最佳实践

  • 在开发自定义仓库工具之前,先使用现成的发货应用(ShipStation 或同类应用)——ShipStation 根据订单量每月收费 $9–$159,可处理拣货单、装箱单、打印标签和比较承运商费率;这几乎总是比定制开发更便宜、更快捷
  • 按货位排序拣货单——让拣货员按仓库的通道和货架顺序取货,可将拣货时间缩短 15–25%
  • 创建标签后立即发送追踪号码——不要等到承运商扫描包裹后再发送;更早收到追踪号码的客户,提交“我的订单在哪里”工单的次数更少
  • 在拣货时核验扫描结果——ShipStation 的 Scan to Verify 等类似功能可防止发错商品;应将其设为必经步骤,而非可选步骤
  • 在每天结束时批量打印标签——对于每天少于 100 单的情况,批量打印标签可提高打印机效率;对于每天 100 单及以上的情况,应在打包订单时打印标签

常见问题

问题解决方案
订单发出了错误的商品在 ShipStation 或你的 WMS 中启用条码扫描核验,然后才允许打印标签;未经经理批准,不得手动覆盖
未向客户发送追踪号码确保发货应用已配置为在平台中自动将订单标记为已履约,并触发平台的发货确认邮件
3PL 收到订单信息流中的商品数量有误根据 3PL 的规范验证 webhook 载荷格式;先用少量订单进行测试,再为所有订单启用
履约状态与承运商追踪信息不同步使用 ShipStation 或 EasyPost 的追踪 webhook,在承运商扫描包裹时自动更新订单状态

相关技能

  • @shipment-tracking
  • @returns-management
  • @order-management-system
  • @international-shipping
  • @dropshipping-integration

评论

支持 Markdown