トップ/管理画面/① Amazon 発送・伝票印刷
01

Amazon 発送・伝票印刷

blocked / 認証待ち

SP-API(Selling Partner API)で「未発送注文の取得 → 最安の配送サービス選択 → 配送ラベル取得 → ローカルプリンタ印刷」までを通しで自動化する管理画面です。コードは実装完了。SP-API認証情報を .env に入れれば、下の各操作がそのまま動きます。

done partial blocked / 認証待ち not started
Status

いま何ができて、何ができていないか。

動いている
SP-APIクライアント一式が実装済み。LWAトークン取得+60分キャッシュ、PII操作用RDT自動取得、未発送注文取得、Merchant Fulfillmentでの最安配送選択・発送確定・ラベル取得、Base64+GZIPデコードしてWindowsプリンタ印刷まで。CLI(orders/flow/label)とnpm scripts整備済。2023年以降SigV4不要を前提に正しく実装。
足りない
実APIへの疎通は一度も無し。SP-API認証情報が未取得で .env が存在しない(.env.exampleのみ)。labels/出力も未生成=flow未実行。寸法(20x15x5cm)・重量(500g)はrun.mjs内の仮値ハードコードで商品マスタ連携は未実装。実プリンタ検証なし。
ブロッカー
SP-API認証情報(LWA refresh token等)が未取得。config.mjsのrequired()が例外を投げるため、.envを埋めるまで一切実行できない。
Operations Console

発送オペレーション

各操作はコード実装済み。認証情報が未投入のためボタンは無効(🔒)です。鍵を入れると有効化されます。

🔑認証・環境変数
未設定

SP-API は LWA リフレッシュトークンのみで動作(2023年以降 SigV4 不要)。住所など個人情報を含む操作は RDT を自動取得します。下記が .env に揃うと全操作が有効化されます。

SPAPI_LWA_CLIENT_ID未設定
SPAPI_LWA_CLIENT_SECRET未設定
SPAPI_REFRESH_TOKEN未設定
SPAPI_MARKETPLACE_ID未設定
SPAPI_SHIP_FROM未設定

取得手順は docs/credentials-setup.md の「A. Amazon SP-API」。鍵は会話に貼らず、別ウィンドウのPowerShellで .env に記入します。

📦未発送注文の取得
orders

過去30日の Unshipped / PartiallyShipped 注文を一覧。住所(PII)取得のため RDT を自動取得します。

$ npm run amazon:orders
🚚配送選択〜ラベル取得
flow

注文明細・配送先を取得 → 利用可能な配送サービスを取得 → 最安を自動選択 → 発送確定 → ラベル取得まで一気通貫。

$ npm run amazon:flow
🖨️伝票の印刷
print

ラベルを Base64+GZIP デコードし labels/ に保存。PDF/PNG は Windows の print verb、ZPL は共有プリンタへ生送出。

env PRINTER_NAME=(既定)
📐梱包の寸法・重量
仮値

現状は run.mjs に仮値をハードコード。実運用では商品マスタ連携が必要(未実装)。

寸法
20×15×5 cm
重量
500 g
供給元
仮値(要連携)
Implementation

実装マップ

src/amazon/spApiClient.mjsLWA / RDT / 汎用リクエスト
src/amazon/orders.mjs注文・明細・配送先住所
src/amazon/merchantFulfillment.mjs配送サービス選択・ラベル取得
src/amazon/printLabel.mjsデコード・保存・印刷
src/amazon/run.mjsCLI(orders / flow / label)
# 別ウィンドウのPowerShellで鍵を取得→.envに記入後
npm run amazon:orders   # 未発送注文の疎通確認
npm run amazon:flow     # 取得→ラベル→印刷を通しで
Next Move

次の一手

この管理画面を本番稼働させるには SP-API の認証情報が要ります。いまは実APIへの疎通が一度も無く、各ボタンは無効です。docs/credentials-setup.md に沿って別ウィンドウのPowerShellで鍵を取得し .env に記入(値は会話に貼らない)。その後 Claude に「npm run amazon:orders を実行して」と伝えれば、初めて本番データが動き出します。