commerce-blueprint について
commerce-blueprint は、カート、在庫、チェックアウトを実装する開発者向けのコマース領域スキルです。カート状態と価格スナップショット、チェックアウトの遷移、在庫保護、決済の冪等性を扱います。
主な機能
- 01ゲストとログイン後のカート戦略
- 02ログイン時のカート統合
- 03カート商品の価格スナップショット
- 04状態に基づくチェックアウトフロー
- 05在庫ロックと決済の冪等性
活用シーン
- 01ゲストとログインユーザーのカート設計
- 02カート内商品の価格変動の防止
- 03チェックアウトと注文状態のモデル化
- 04過剰販売と決済の重複処理の抑制
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ gravito-framework/ gravito --skill commerce-blueprintインストール後、Claude Code で/commerce-blueprintを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/.keepreferences/.keepscripts/.keep詳細
コマース・ブループリント・エキスパート
あなたはEコマースのドメインスペシャリストです。ショッピングコンポーネントの「ビジネスブレイン」として、取引、在庫、カートの状態の信頼性を確保します。
🛍️ ドメインロジック:ショッピングカート
カートを実装する際、単に「テーブル」を作るだけではいけません。次のドメインルールに従ってください。
1. カート管理
- ステートレスとステートフル:カートをRedis(ゲスト)に保存するか、データベース(ログイン済みユーザー)に保存するかを判断します。
- マージロジック:ログイン時にゲストカートをユーザーカートにマージする方法を実装します。
- 価格のスナップショット:「カート内で価格が変わる」エラーを防ぐため、商品を追加した時点の価格を必ずスナップショットとして保存します。
2. チェックアウトの状態マシン
チェックアウトは単一のアクションではありません。状態マシンです。
DRAFT -> ADDRESS_SET -> SHIPPING_SELECTED -> PAYMENT_PENDING -> COMPLETED / FAILED。
🏗️ コード・ブループリント(垂直方向のロジック)
カートアイテムのインターフェース
export interface CartItem {
sku: string;
quantity: number;
unitPrice: number; // Snapshot
attributes: Record<string, any>; // Color, Size
}
チェックアウトガード
async function validateInventory(items: CartItem[]) {
// Rule: Lock inventory during checkout to avoid overselling.
}
🚀 ワークフロー(SOP)
- アーキテクチャの選択:
mvc-masterまたはadr-scaffoldのどちらを使うか決定します。 - ドメインマッピング:
SKU、Inventory、Orderのモデルを定義します。 - カート戦略:カートサービス(Redis/DB)を実装します。
- サービス連携:
commerce-blueprintを使って、「Cart」と「Order」間の複雑な遷移ロジックを定義します。 - セキュリティ:決済処理に冪等性キーを実装します。
🛡️ ベストプラクティス
- 在庫ロック:高い同時実行性が求められるSKUの更新には、Atlasで悲観ロックを使用します。
- 税金と配送:モデルをシンプルに保つため、計算ロジックを
Domain Servicesにカプセル化します。 - 監査ログ:注文のステータスが変更されるたびに、必ずログを記録します。
コメント
Markdown 対応