技術引き継ぎ書¶
概要¶
リツビ BtoB ECサイトの技術的な引き継ぎ情報をまとめた文書です。
システム概要¶
アーキテクチャ¶
- バックエンド: Vendure (Node.js/TypeScript)
- フロントエンド: Next.js (React/TypeScript)
- データベース: PostgreSQL
- キャッシュ: Redis (Upstash)
- ホスティング:
- Vendure: Fly.io
- Next.js: Vercel
- Database: Fly.io Postgres
主要技術スタック¶
Vendure プラグイン¶
@ritsubi/b2b-customer-plugin: B2B顧客管理@ritsubi/pricing-plugin: 顧客別価格設定@ritsubi/campaign-plugin: キャンペーン管理@ritsubi/direct-shipping-plugin: 直送モード@ritsubi/monthly-rebate-plugin: 月次割戻金計算@ritsubi/smile-integration-plugin: SMILE連携
Next.js 構成¶
app/ディレクトリ構成(App Router)- Server Components + Client Components
- GraphQL クライアント (Apollo Client)
- 状態管理: Zustand
- UI コンポーネント: Tailwind CSS + shadcn/ui
開発環境¶
セットアップ手順¶
# プロジェクトクローン
git clone [リポジトリURL]
cd ritsubi-vendure
# 依存関係インストール
pnpm install
# 環境変数設定
cp .env.example .env.local
# Vendure開発サーバー起動
pnpm run dev:vendure
# Next.js開発サーバー起動
pnpm run dev:storefront
環境変数¶
# Vendure
DATABASE_URL=postgresql://...
REDIS_URL=redis://...
JWT_SECRET=...
# Next.js
NEXT_PUBLIC_GA_TRACKING_ID=...
VENDURE_BASE_URL=...
VENDURE_API_URL=...
デプロイメント¶
Vendure (Fly.io)¶
# デプロイ
fly deploy -c fly.vendure.toml
# ログ確認
fly logs -a ritsubi-vendure
Next.js (Vercel)¶
# Vercel CLI でデプロイ
vercel --prod
# または Git Push で自動デプロイ
git push origin main
データベース移行¶
# Vendure マイグレーション
pnpm run migration:run
# データシーディング
pnpm run seed
重要な設定ファイル¶
Vendure 設定¶
packages/vendure-server/src/vendure-config.ts: メイン設定packages/vendure-plugins/: カスタムプラグインmigrations/: データベースマイグレーション
Next.js 設定¶
apps/storefront/next.config.js: Next.js設定apps/storefront/src/lib/vendure.ts: GraphQL設定apps/storefront/src/stores/: 状態管理
カスタムプラグイン仕様¶
B2B 顧客管理プラグイン¶
// 顧客ステータス管理
enum CustomerStatus {
PREMIUM = 'premium',
STANDARD = 'standard',
LIMITED = 'limited',
// ... 他12種類
}
// 掛率設定
interface DiscountRate {
customerId: string;
productCategoryId?: string;
rate: number; // 0.1 = 10%割引
}
キャンペーンプラグイン¶
// キャンペーンタイプ
enum CampaignType {
PERCENTAGE_DISCOUNT = 1,
FIXED_AMOUNT_DISCOUNT = 2,
FREE_SHIPPING = 3,
GIFT_PRODUCT = 4,
VOLUME_DISCOUNT = 5,
LOYALTY_POINTS = 6,
}
外部システム連携¶
SMILE ERP 連携¶
- エンドポイント:
/api/smile-integration - 認証: API Key
- 同期頻度:
- 在庫: 10分毎
- 価格: 1時間毎
- 商品: 日次
- 顧客: 日次
決済システム¶
- プライマリ: GMOペイメントゲートウェイ
-
セカンダリ: PayPal
-
設定場所:
vendure-config.tsの paymentOptions
監視・ログ¶
アプリケーションログ¶
# Vendure ログ
fly logs -a ritsubi-vendure
# Next.js ログ
vercel logs [デプロイメントID]
エラー追跡¶
- Vendure: Winston + Fly.io ログ
- Next.js: Vercel Analytics + Console
パフォーマンス監視¶
- レスポンス時間: Vendure内蔵メトリクス
- データベース: PostgreSQL slow query log
- Redis: Upstash ダッシュボード
トラブルシューティング¶
よくある問題¶
Vendure が起動しない¶
- データベース接続を確認
-
Redis接続を確認
-
環境変数の設定を確認
- マイグレーションの実行
Next.js ビルドエラー¶
- TypeScript エラーの確認
- 環境変数の設定確認
- 依存関係の更新
- キャッシュクリア
SMILE連携エラー¶
- API Key の確認
- エンドポイントの疎通確認
- データ形式の確認
- ログでエラー詳細を確認
セキュリティ考慮事項¶
認証・認可¶
- JWT Token による認証
- 顧客ステータスベースの認可
- API Rate Limiting
データ保護¶
-
パスワード暗号化(bcrypt)
-
PII データの適切な取り扱い
- HTTPS通信の強制
バックアップ・復旧¶
データベースバックアップ¶
# 手動バックアップ
pg_dump $DATABASE_URL > backup.sql
# 復元
psql $DATABASE_URL < backup.sql
アプリケーションバックアップ¶
- Git リポジトリでのコード管理
- 環境変数の安全な保存
- 設定ファイルのバージョン管理
連絡先・エスカレーション¶
開発チーム¶
- リードエンジニア: [連絡先]
-
Vendure専門: [連絡先]
-
Next.js専門: [連絡先]
インフラ・運用¶
- Fly.io担当: [連絡先]
- Vercel担当: [連絡先]
- DB管理者: [連絡先]
緊急時対応¶
-
システム障害: 即座に開発チームに連絡
-
セキュリティインシデント: セキュリティ担当に連絡
- データ問題: DB管理者に連絡
今後の改善計画¶
短期(1-3ヶ月)¶
- 監視システムの強化
- 自動テストの拡充
- パフォーマンス最適化
中期(3-6ヶ月)¶
- 新機能の追加
- UI/UX改善
- セキュリティ強化
長期(6ヶ月-1年)¶
- モバイルアプリ対応
- AI機能の導入
- 国際展開対応