注文・返金
注文と返金は Webhook で受信し、設定したルールでスクリーニングします。フラグが立ったものだけが手動レビューに回り、それ以外は自動承認されます。
注文の処理
orders/paid(HMAC 検証)を受信して保存し、order-review.yml のルールで審査します。
| ルール | フラグ条件 | 既定 |
|---|---|---|
highValue |
total_price ≥ 通貨別しきい値(JPY ≥ 100,000 等) |
on |
flaggedFinancialStatus |
financial_status が pending/authorized/partially_paid |
on |
largeQuantity |
単一明細の数量 ≥ maxLineQuantity(既定 10) |
on |
newCustomer |
orders_count ≤ maxOrdersCount |
off |
addressMismatch |
請求先と配送先の国が異なる | on |
enabled: false で全件自動承認。設定が無い/壊れていても処理は止めません(フェイルオープン)。
ワークフロー: Order Review(承認)→ Fulfill Order(追跡番号入力 → 出荷)。出荷時に commerce:tracking_number 等を記録し、Admin API 有効時は fulfillmentCreateV2 で Shopify に書き戻します(失敗は記録のみ、業務は止めません)。
ステータス: received → review_pending → approved → fulfillment_pending → fulfilled(失敗時 error)。
返金の処理
refunds/create(Shopify で返金実行済みの通知)を受信して審査します。これは監査・不正監視のためのもので、入金処理や Shopify への書き戻しは行いません。
| ルール | フラグ条件 | 既定 |
|---|---|---|
highRefundValue |
返金額 ≥ 通貨別しきい値(JPY ≥ 50,000 等) | on |
fullRefund |
返金額 ≥ 元注文の total_price |
on |
noRestock |
返品されたが在庫を戻していない | on |
レビュー後、返金事実を記録し、元注文の commerce:refunded_amount / commerce:refund_count / commerce:source_status(refunded / partially_refunded)を更新します(commerce:order_updated で二重適用を防止)。
ステータス: received → review_pending → resolved(失敗時 error)。
タスクと通知
レビュータスクは Webtop の Tasks アプリで処理し、notifications.yml の各チャネル(Slack / Discord / Teams / LINE / Webhook / Email)に通知されます。フォームはフラグ理由を強調表示します。
ステータスの考え方
2 つの軸があります。commerce:status(取り込み処理のライフサイクル)と commerce:source_status(Shopify の業務ステータスのミラー)。詳細は概要および運用ツールを参照してください。