shop-tools(仮称)
店舗向けのツール(セルフレジアプリ+POS/PSP連携+非換金ポイント)。決済そのものは自前運用せず、資金と指図を持たないことで規制外に寄せ、ソロで回せる形を狙う。
- 調査日: 2026-10-29(初版 2026-10-11 / 最終更新 2026-10-31)
- データ時点: 2025–2026年(Square / 決済関連は 2026年10月)
- 状態: V1 デモをデプロイ済み。本番Square/Terminal接続コードは準備済み(実接続は未検証)
- 親: ../../README.md
- 関連トピック: ../../topics/solo-leverage.md
- 運用マニュアル: ../OPERATIONS.md
- Webドキュメント: https://shoptools-dev-docs.pages.dev/
コンセプト
- セルフレジアプリを店舗に提供(レジSIM・会計UX・タブレット/スマホ)。
- 店舗と銀行/PSPをつなぐが、資金と指図は持たない(決済は店舗の口座/PSPに委譲)。
- **ポイントは「換金しない」**店舗内ポイントとして台帳管理。
- 提供者はソフトウェアベンダーに徹する(=規制の外に寄せる)。
V1 設計の要点(2026-10)
- カートは顧客PWA、確認と決済開始は店員PWA、決済は Square Terminal
- 顧客が6桁コードを表示 → 店員が入力 → BE が注文をそのレジに claim → Terminal へ
- 商品マスタ・在庫・税・売上レポートは Square を正とし、BE は参照+キャッシュ
- 構成:CloudFront(PWA)+ API Gateway/Lambda/DynamoDB(BE)+ SSM
- デモは Terminal モック(店舗PCの Node)で配布キット化
- 本番は Cognito・既存 Square アカウント/ロケーションを使用
- 現金は V1.1 で追加可(Terminal 非対応。Payments API で記録。ドロワーは手動/Square POS 併用)
- 対象:SKU 〜100 程度、量り売りなし、1店舗1〜数レジ
- イベント物販は派生モード:予約(在庫引当)→ 受取時に検品+決済。事前決済なし(event-merch.md)
詳細は design.md を参照。
ソロ適性(大枠)
| 項目 | 評価 |
|---|---|
| 型 | B(ツール/サービス)+D依存(銀行API/PSP、運用は持たない) |
| ライブオペ | 中(店舗導入・POS連携・サポート)→ BaaS/PSPで軽減可 |
| 発見 | 中(SaaSは棚が混む。店舗向けは事例/紹介/営業が効く) |
| 経済・コミュニティ | 低〜中(B2B単体は可。ポイント横断流通を狙うと一気に重くなる) |
| 規制・信託・不正 | 設計次第(下記「やらないこと」を守れば軽い) |
| 総合 | ○〜◎ |
やらないこと(非目標 / 規制線)
- 資金移動(預かって送る)
- 収納代行・決済代行(振込先/金額を銀行へ伝達)→ 電子決済等代行業の登録が必要になり得る
- 換金できるポイント(前払式支払手段/資金移動に抵触し得る)
- 与信・立替・前払い
→ これらは V2(パートナー必須・ソロ不可に近い) として切り分ける。
V1 の決済は店舗の Square 口座に直接入金され、当方は資金を預からない。SaaS 化する場合は店舗ごとに OAuth でトークンを分離する(production-migration.md)。
V1スコープ
| 含む | 含まない |
|---|---|
| 顧客PWAのカート・合計・6桁コード | 現金決済(V1は対象外、V1.1で追加可) |
| 店員PWAの確認・決済開始 | 返金UI(Square Dashboard) |
| Square Terminal 決済/モック | 在庫管理・発注 |
| Square カタログ参照 | 重量・量り売り |
| 店舗別・レジ別の分離、2レジ同時 | オフライン決済 |
| 本番移行を見据えた環境分離 | 非換金ポイント(別フェーズ) |
| 店舗・イベントの物販(単一の販売主体) | フリーマーケット(個人出品・現金中心・古物市場主許可) |
ファイル索引
| ファイル | 内容 |
|---|---|
| ../OPERATIONS.md | 運用マニュアル(AWS/Cloudflareデプロイ、MFA、起動/停止、データ操作、障害対応) |
| business-case.md | 事業性・強みの整理(模倣性、コンテンツ文脈、運用知、データ、販路、事業モデル、ソロ適性、検証質問) |
| design.md | V1 設計書(アーキテクチャ、データモデル、状態遷移、API、認証、拡張、リスク、M0–M8) |
| staff-pos.md | 店員POSモード(V1のカート/検索/決済、共通パッケージ、スキャンの将来対応) |
| terminal-options.md | 端末選定・制約・調達(Square Terminal/POS/Reader比較、切替時間、キャンペーン) |
| catalog-inventory.md | カタログ・在庫・引当(Square Catalog/Inventory、同期、可用数、カート下書き) |
| aws-cost-security.md | AWSコスト・セキュリティ(無料枠、削減策、DoS段階、認証/署名/IAM) |
| refactor.md | 共通化リファクタ(共有パッケージ、サーバーヘルパー、店員アプリ分割、スクリプト共通化) |
| square-terminal.md | Square Terminal API の連携詳細(ペアリング、Orders/Terminal、Webhook、Sandbox テストID、日本固有事項、エラー) |
| demo-kit.md | 配布キット仕様(Windows/Mac、Terminal モック、GMeet 台本、受入条件) |
| production-migration.md | 本番移行(環境分離、SSM/Cognito、マルチ店舗、既存 Square アカウント、切替フェーズ) |
| event-merch.md | イベント物販モード(予約・在庫引当・受取枠・検品・受取時決済・残数表示) |
| pilot-league.md | リーグ戦物販パイロット計画(ソロの線引き、RACI、KPI、当日 Runbook、相談事項) |
| cost-scale.md | 費用感と規模(物販1ブース基準の比較。LivePocket/TIGETは「無理に乗せた場合」の参考である旨を注記) |
| auction.md | オークション用途の可能性(ロット・入札・時間窓・落札・受取時決済、法務・KPI。現行テストでは未実施) |
| concept.md | 初期コンセプト詳細(V1/V2 の分岐、規制の線引き、MVP、リスク、未解決の問い) |
実装状況(ローカル)
- ローカル開発:
npm run dev(Docker の DynamoDB Local、mock、AWS不要) - AWS MFA:
MFA_TOTP_SECRETはAuthenticatorの秘密鍵と同等。.envを共有・コミットしない - AWSデモ:
npm run aws:mfa→npm run aws:check→npm run deploy -- -Yes→powershell -File scripts\pages.ps1 -Yes。起動/停止はnpm run aws:demo:*、データはnpm run aws:data:* - 注文・claim・ロック・checkout・カタログ/在庫・引当・カート下書き・同期設定・Square webhook は実装済み
- AWSバックエンド+Cloudflare Pages(管理画面含む)をデプロイ済み。本番Square/実Terminalは未検証
- PWA は manifest とアイコンのみ。Service Worker 未登録のため、現状はブラウザ運用
- スマホは Cloudflare Pages(HTTPS・
*.pages.dev)から開く。ローカル常駐は不要(demo-kit.md) - 検証:
npm run verify(unit 57 / integration 14 / local 29 / UI 20)。SAM E2E はnpm run test:e2e
次のアクション
- M0:基盤(SAM、DynamoDB、SSM、health、config)
- M1:core(状態機械・claim・ロック)+ unit テスト
- M2:Catalog(seed/Square)+注文API(実Squareは未検証)
- M3:Adapter(mock/Square)+checkout+webhook(実Terminalは未検証)
- M4:Cognito(現状はPIN/JWT。staff APIは実装済み)
- M5:PWA登録(顧客/店員のWeb画面・タイル・検索は実装済み)
- M6:Terminal モック+起動パネル(Win/Mac。実機Terminalは未対応)
- M7:契約テスト→sandbox→本番パイロット
- M8:スキャン実機検証(iOS/Android)
- V1.1:現金対応(Payments API、ドロワー運用、返金・日締め)
- 店舗との合意:既存 Terminal の再ペアリング、レシート運用、返金運用