order-fulfillment-workflow について
ECの倉庫業務における注文のピッキング、梱包、発送、バーコード検証を設計するためのスキルです。ピッキングリスト、納品書、配送ラベルの作成や、3PLとの連携も扱います。
主な機能
- 01注文のピッキング・梱包・発送フロー
- 02バーコードによる商品確認
- 03ピッキングリストと納品書の生成
- 04配送ラベルの作成
- 05API、EDI、SFTPによる3PL連携
活用シーン
- 01表計算ソフト主体のピッキングを社内ツールに置き換え
- 02新しい倉庫のフルフィルメント手順を整備
- 03誤った商品の発送を減らす
- 04標準化した注文データを3PLに送信
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ finsilabs/ awesome-ecommerce-skills --skill order-fulfillment-workflowインストール後、Claude Code で/order-fulfillment-workflowを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
tile.jsonevals/carrier-label-creation-with-shippo-and-p/criteria.jsontask.mdevals/fulfillment-state-machine-and-barcode-sc/criteria.jsontask.mdevals/pick-list-generation-and-pdf-packing-sli/criteria.jsontask.md詳細
注文フルフィルメントのワークフロー
概要
フルフィルメントのワークフローでは、支払い済みの注文を「フルフィルメント待ち」の状態から、ピッキング、梱包、発送まで進めます。誤発送を防ぐためのバーコード照合や、各発送分の梱包明細書の作成も行います。ほとんどの販売事業者にとって、専用アプリのほうがカスタムソフトウェアより確実かつ低コストに処理できます。カスタム開発が妥当なのは、独自の倉庫ワークフローを持つ大規模な業務に限られます。
このスキルを使用する場面
- 手作業のスプレッドシートによるピッキング作業を置き換える、社内向け倉庫ツールを構築するとき
- 新しいフルフィルメント業務を立ち上げ、初日から体系的なワークフローを整える必要があるとき
- 標準化された注文データの連携を必要とするサードパーティーの物流(3PL)プロバイダーと連携するとき
- ピッキング確認を導入して、誤発送や顧客からの苦情を減らすとき
- 効率化のため、単一注文のピッキングとバッチピッキングの両方に対応する必要があるとき
基本的な手順
ステップ 1:プラットフォームを特定し、適切なフルフィルメントツールを選択する
| プラットフォーム | 推奨ツール | 理由 |
|---|---|---|
| Shopify | ShipStation、Shopify Fulfillment Network(SFN)、または Pirate Ship | ShipStationはピッキングリスト、梱包明細書、複数配送業者のラベル印刷を1つのツールで処理します。SFNはフルフィルメントを全面的に外部委託できます |
| WooCommerce | ShipStation(WooCommerceプラグイン)、WooCommerce Shipping + Packing Slips by WooCommerce | ShipStationのWooCommerceプラグインは注文を自動的に同期します。組み込みの梱包明細書拡張機能は書類を作成します |
| BigCommerce | ShipStation、ShipBob、または Easyship | ShipStationとShipBobはいずれもBigCommerceとのネイティブ連携に対応しています。Easyshipでは配送業者間の料金を比較できます |
| カスタム/ヘッドレス | フルフィルメントのステートマシンを構築し、ラベル発行用にShippoまたはEasyPostと連携する | 配送業者に依存しないラベル作成にはShippo/EasyPostを使用し、その周囲にピッキング・梱包・発送のワークフローを構築します |
ステップ 2:フルフィルメントツールを設定する
Shopify
オプション A:ShipStation(1日50件以上の注文におすすめ)
- Shopify App StoreからShipStationをインストールします
- ShipStationがShopifyの「未フルフィルメント」注文をすべて自動的に取得します
- ShipStationで自動化ルール(自動化 → 自動化ルール)を設定し、注文の重量、配送先、商品タイプに応じて配送業者、サービス、プリセットを割り当てます
- ピッキングリスト: ShipStationで注文に移動し、複数の注文を選択して、印刷 → ピッキングリストを選択します。ShipStationは倉庫のレイアウト順に並べた統合ピッキングリストを作成します
- 梱包明細書: 注文を選択し、印刷 → 梱包明細書を選択します。アカウント設定 → 印刷 → 書類テンプレートで梱包明細書のテンプレートをカスタマイズします
- ラベル印刷: ShipStationはデスクトップアプリを介して、サーマルラベルプリンター(Zebra、DYMO)にラベルを印刷します。注文ごとに1回スキャンすると、ラベルが作成され印刷されます
- ラベルを印刷すると、ShipStationはShopifyで注文を自動的にフルフィルメント済みにし、追跡情報のメールを顧客に送信します
オプション B:Shopify Fulfillment Network(SFN)— フルフィルメントを全面的に外部委託
- 設定 → 配送と配達 → Shopify Fulfillment Networkに移動します
- SFNがピッキング、梱包、発送のすべてを処理します。商品在庫をSFNの倉庫に送ると、注文が自動的にフルフィルメントされます
- 自社側で倉庫管理を行う必要はありません。SFNが在庫を追跡し、当日または翌日に注文をフルフィルメントします
オプション C:Shopifyの組み込みフルフィルメント(少量の場合)
- 注文 → [注文] → 商品をフルフィルメントに移動します
- 追跡番号を手動で入力するか、Shopify Shippingでラベルを購入します
- Shopifyは基本的な梱包明細書を作成します:注文 → 印刷 → 梱包明細書
WooCommerce
ShipStation を使用する場合:
- ShipStation for WooCommerce プラグインをインストールします(WordPress.org で無料)
- ShipStation で「Account Settings → Stores」に移動し、WooCommerce ストアを接続します
- 未処理の WooCommerce 注文は ShipStation に自動的に同期されます
- ShipStation を使用して、ピッキングリスト、納品書、ラベル印刷を行います(上記の Shopify と同じワークフローです)
- ラベルを印刷すると、ShipStation は追跡番号を WooCommerce に戻し、注文を「Completed」にします
WooCommerce のみを使用する場合(取扱量が少ない場合):
- PDF の納品書には WooCommerce PDF Invoices & Packing Slips をインストールします(WordPress.org で無料)
- WooCommerce → Orders に移動し、保留中の注文を選択して、「Bulk Actions」ドロップダウンから「Generate packing slips」を選択します
- ピッキングリストには、Smart Manager for WooCommerce プラグインまたは ATUM Inventory Management を使用すると、WooCommerce から直接生成できます
BigCommerce
ShipStation を使用する場合:
- BigCommerce App Marketplace を通じて ShipStation を接続します
- ShipStation は、未処理の BigCommerce 注文をすべて自動的に同期します
- ShipStation で同じワークフローを使用して、ピッキングリスト、納品書、ラベル印刷を行います
ShipBob を使用する場合(フルフィルメントの外部委託):
- BigCommerce App Marketplace から ShipBob を接続します
- 在庫を ShipBob の倉庫に発送すると、すべての注文が自動的にフルフィルメントされます
- ShipBob は BigCommerce の注文ステータスと追跡情報をリアルタイムで更新します
ステップ 3:ピッキングリストの生成と倉庫のワークフローを設定する
優れたピッキングリストは、ピッキング担当者の移動時間を最小限に抑えるため、倉庫の場所(ビン/棚)ごとに商品をまとめます。ほとんどの配送アプリがこれに対応しています。
ShipStation のピッキングリスト設定:
- Account Settings → Printing → Pick List に移動します
- グループ化方法を設定します。SKU 別(バッチピッキング用)または注文別(単一注文のピッキング用)を選択します
- 商品にビンの場所を入力している場合は、「Show bin location」を有効にします(ShipStation → Products → 商品を編集)
- バーコードスキャンの場合: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:250 社以上の配送業者に対応した BigCommerce ネイティブ連携機能です
カスタム/ヘッドレス
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 などの機能により、誤った商品を発送するのを防げます。任意ではなく、必須の手順として有効にします
- 1日の終わりにまとめてラベルを印刷します — 1日の注文数が 100 件未満の場合、まとめて印刷することでプリンターの効率が向上します。1日の注文数が 100 件以上の場合は、注文の梱包に合わせてラベルを印刷します
よくある落とし穴
| 問題 | 解決策 |
|---|---|
| 注文が間違った商品とともに発送される | ラベル印刷を許可する前に、ShipStation または WMS でバーコードスキャンによる確認を有効にします。マネージャーの承認なしに手動で上書きできないようにします |
| 追跡番号が顧客に送信されない | 出荷アプリが、プラットフォーム上で注文を自動的にフルフィルメント済みにし、プラットフォームの出荷確認メールを送信するよう設定されていることを確認します |
| 3PL が注文フィードから誤った数量を受け取る | 3PL の仕様に照らして webhook ペイロードの形式を検証します。全注文に対して有効にする前に、少数の注文でテストします |
| フルフィルメント状況と配送業者の追跡情報が一致しなくなる | ShipStation または EasyPost の追跡 webhook を使用して、配送業者が荷物をスキャンしたときに注文状況を自動更新します |
関連スキル
- @shipment-tracking
- @returns-management
- @order-management-system
- @international-shipping
- @dropshipping-integration
コメント
Markdown 対応