注文・返金

注文と返金は Webhook で受信し、設定したルールでスクリーニングします。フラグが立ったものだけが手動レビューに回り、それ以外は自動承認されます。

注文の処理

orders/paid(HMAC 検証)を受信して保存し、order-review.yml のルールで審査します。

ルール フラグ条件 既定
highValue total_price ≥ 通貨別しきい値(JPY ≥ 100,000 等) on
flaggedFinancialStatus financial_statuspending/authorized/partially_paid on
largeQuantity 単一明細の数量 ≥ maxLineQuantity(既定 10) on
newCustomer orders_countmaxOrdersCount 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_statusrefunded / 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 の業務ステータスのミラー)。詳細は概要および運用ツールを参照してください。