このプロジェクトについて
ECサイトと実店舗のPOSシステムで、顧客情報を共有・統合する仕組みを構築しました。お客様は、どのチャネルで買い物しても同じ会員として認識され、ポイントも統合して利用できます。
解決した課題
| 課題 | 解決策 |
|---|---|
| 顧客データのセキュリティ | Shopifyに全て預け、自社では保有しない |
| オンライン/オフラインの顧客統合 | Shopify ID = POS会員番号として紐付け |
| Shopifyにないポイント機能 | ポイント→クーポン変換で代替 |
| システム間の自動同期 | 登録時に複数システムへ自動連携 |
| 同期失敗時のリカバリー | エラー記録と手動再同期の仕組み |
顧客データのセキュリティ
解決策Shopifyに全て預け、自社では保有しない
オンライン/オフラインの顧客統合
解決策Shopify ID = POS会員番号として紐付け
Shopifyにないポイント機能
解決策ポイント→クーポン変換で代替
システム間の自動同期
解決策登録時に複数システムへ自動連携
同期失敗時のリカバリー
解決策エラー記録と手動再同期の仕組み
アーキテクチャの全体像
システム構成図
顧客
オンライン / 店舗どちらも利用
ヘッドレスEC(Shopify + Next.js)
商品閲覧、オンライン購入、マイページ
実店舗POS(スマレジ)
店頭購入、会員確認、ポイント付与
自社サーバー(Vercel API)
顧客同期ロジック、ポイント取得、クーポン発行、認証処理(※顧客データは保存しない)
Shopify(顧客マスター)
顧客基本情報、メタフィールド(フリガナ等)、注文履歴、クーポン管理
5つのテーマ
このプロジェクトを5つのテーマに分けて詳しく解説しています。
1. 顧客データを自社で持たないという選択
セキュリティと運用コストの観点から、顧客データをShopifyに預ける設計思想を解説します。
| トピック | 内容 |
|---|---|
| セキュリティと責任分担 | なぜ顧客データを自社で持たないのか |
| パスワードレス認証 | ヘッドレス構成における認証の考え方 |
| メタフィールドの活用 | 日本特有の項目(フリガナ等)の管理 |
セキュリティと責任分担
内容なぜ顧客データを自社で持たないのか
パスワードレス認証
内容ヘッドレス構成における認証の考え方
メタフィールドの活用
内容日本特有の項目(フリガナ等)の管理
2. ヘッドレスサイトからPOSまでの顧客同期フロー
オンラインストアとPOSシステム間で顧客データを自動同期するアーキテクチャを解説します。
| トピック | 内容 |
|---|---|
| 登録時の自動同期 | 複数システムへの同時登録 |
| 重複防止の仕組み | 既存顧客との正しい紐付け |
| 同期のON/OFF制御 | 環境変数による柔軟な制御 |
登録時の自動同期
内容複数システムへの同時登録
重複防止の仕組み
内容既存顧客との正しい紐付け
同期のON/OFF制御
内容環境変数による柔軟な制御
→ POS同期の詳細
3. ログインからPOSポイント取得までの仕組み
オンラインストアでPOSのポイント残高をリアルタイムに取得・表示する仕組みを解説します。
| トピック | 内容 |
|---|---|
| ポイント取得の全体フロー | マイページでのリアルタイム表示 |
| IDマッピング | Shopify IDとPOS会員番号の紐付け |
| API認証 | ポイント取得時のセキュリティ |
ポイント取得の全体フロー
内容マイページでのリアルタイム表示
IDマッピング
内容Shopify IDとPOS会員番号の紐付け
API認証
内容ポイント取得時のセキュリティ
4. Shopifyにないポイント機能の回避策
POSのポイントをShopifyのクーポンに変換してオンラインで利用可能にする仕組みを解説します。
| トピック | 内容 |
|---|---|
| 変換アーキテクチャ | ポイント→クーポンの変換処理 |
| クーポンの設計 | 不正防止のための制約設計 |
| クーポン管理 | 取り消しとポイント返還 |
変換アーキテクチャ
内容ポイント→クーポンの変換処理
クーポンの設計
内容不正防止のための制約設計
クーポン管理
内容取り消しとポイント返還
5. オンラインとオフラインの顧客を一致させる方法
ShopifyとPOSで別々に登録された顧客を同一人物として特定し統合する仕組みを解説します。
| トピック | 内容 |
|---|---|
| マッチングキーの選定 | メールアドレスを採用した理由 |
| 住所データの正規化 | 英語/日本語表記の統一 |
| 同期エラー時のリカバリー | 障害対応と再同期 |
マッチングキーの選定
内容メールアドレスを採用した理由
住所データの正規化
内容英語/日本語表記の統一
同期エラー時のリカバリー
内容障害対応と再同期
アーキテクチャの特徴
| 特徴 | 説明 |
|---|---|
| Shopifyを顧客マスターとして使用 | 全ての顧客データの出発点 |
| APIベースの疎結合設計 | 各システムは独立して動作可能 |
| 環境変数による制御 | 同期のON/OFFを柔軟に切り替え |
| エラー耐性のある設計 | 一部が失敗しても全体は動作継続 |
Shopifyを顧客マスターとして使用
説明全ての顧客データの出発点
APIベースの疎結合設計
説明各システムは独立して動作可能
環境変数による制御
説明同期のON/OFFを柔軟に切り替え
エラー耐性のある設計
説明一部が失敗しても全体は動作継続
このプロジェクトで実現できたこと
お客様にとって
- オンラインと店舗で同じ会員として認識される
- どこで買ってもポイントが統合される
- マイページで店舗ポイントを確認できる
- ポイントをオンラインでも使える
運営側にとって
- 顧客データの一元管理
- セキュリティ対応コストの削減
- 手作業によるデータ入力の排除
- チャネル横断の購買分析が可能