Vendure Implementation Status¶
📋 Overview¶
This document tracks the current status of the Vendure 3.4.2 B2B e-commerce implementation for the Ritsubi project. As of September 12, 2025, the Vendure server with React Dashboard is successfully operational.
✅ Completed Implementation¶
1. Core System Setup¶
- Vendure Version: 3.4.2 (Latest Stable)
- Architecture: React Dashboard (migrated from Angular)
- Database: PostgreSQL (port 5433)
- API Server: Running on http://localhost:4000
- Dashboard: Accessible at http://localhost:4000/dashboard/
2. Successfully Resolved Issues¶
NestJS ConfigModule Dependency Resolution Error¶
- Problem:
"Nest can't resolve dependencies of the ConfigModule (ConfigService, ?)" - Root Cause: Missing
DashboardPluginregistration for React Dashboard - Solution: Added
DashboardPlugin.init()to plugin configuration - Status: ✅ RESOLVED
Settings Store Registration Error¶
- Problem:
"Settings store field not registered: vendure.dashboard.userSettings" - Root Cause: React Dashboard requires SettingsStore schema registration
- Solution: DashboardPlugin automatically registers required SettingsStore fields
- Status: ✅ RESOLVED
3. Active Configuration¶
Working Files¶
/apps/vendure-server/
├── src/
│ ├── index.ts # Main server entry point
│ ├── vendure-config-minimal.ts # Production-ready configuration
│ └── vendure-config.ts # Full-featured configuration
├── dist/
│ └── dashboard/ # Built React Dashboard (3978 modules)
├── static/
│ ├── assets/ # Asset server files
│ └── email/ # Email templates
└── vite.config.mts # Dashboard build configuration
Current Settings (vendure-config-minimal.ts)¶
- Default Language: Japanese (LanguageCode.ja)
- Authentication: superadmin/superadmin
- Database: PostgreSQL with auto-sync enabled
- Plugins: DashboardPlugin + AssetServerPlugin
- CORS: Enabled for development
4. Database Status¶
- Connection: ✅ Successful
- Schema: ✅ Auto-created (73 tables)
- Key Tables:
settings_store_entry(for dashboard user settings)- Complete Vendure e-commerce schema
- B2B-ready user and customer management
5. API Endpoints Status¶
- Admin API: ✅
http://localhost:4000/admin-api(GraphQL) - Shop API: ✅
http://localhost:4000/shop-api(GraphQL) - Dashboard: ✅
http://localhost:4000/dashboard/(React SPA) - Assets: ✅
http://localhost:4000/assets/(Static files)
🔄 Migration from Angular to React Dashboard¶
Migration Completed¶
- From: Vendure 2.x with Angular Admin UI
- To: Vendure 3.4.2 with React Dashboard
- Benefits:
- Modern React + TypeScript architecture
- Better performance and developer experience
- Faster UI updates and customizations
- Built with Vite for optimal bundling
Technical Implementation¶
- Build System: Vite 6.3.6 +
@vendure/dashboard/vite(Vendure公式推奨のビルドルート。tsc -p tsconfig.dashboard.jsonは使用しない) - Bundle Size: 2.6MB main bundle (gzipped: 679KB)
- Module Count: 3,978 transformed modules
- Build Time: ~8 seconds
🏗️ Architecture Overview¶
Monorepo Structure Integration¶
ritsubi/
├── apps/
│ └── vendure-server/ # ✅ OPERATIONAL B2B API Server
├── apps/
│ └── storefront/ # 🔄 Next.js Customer Frontend (Planned)
├── packages/
│ ├── domain/ # 🔄 Shared Business Logic (Planned)
│ └── plugins/ # 🔄 Custom Vendure Plugins (Planned)
└── docs/ # 📚 Project Documentation
B2B E-commerce Features (Ready for Implementation)¶
- ✅ User Management: Multi-role customer hierarchy support
- ✅ Product Catalog: Complex B2B product organization
- ✅ Inventory Management: Real-time stock tracking
- ✅ Order Processing: Advanced B2B order workflows
- ⏳ Custom Pricing: Customer-specific discount rates (掛率制御)
- ⏳ Purchase Restrictions: Order quantity controls (購入単位制御)
- ⏳ Direct Shipping: Surcharge calculation (+10%)
- ⏳ Monthly Rebates: Volume-based discount system (月次割戻金)
🎯 Next Development Phases¶
Phase 1: Basic B2B Setup (Current Priority)¶
- Initial product catalog setup
- Customer role configuration
- Basic order workflow testing
- Admin dashboard customization for Japanese market
Phase 2: Custom Business Logic Implementation¶
- Customer-specific pricing plugin (掛率システム)
- Purchase unit restrictions plugin
- Direct shipping calculation system
- Monthly rebate calculation engine
Phase 3: Frontend Integration¶
- Customer portal (Next.js storefront)
- API integration between frontend and Vendure
- Mobile-responsive B2B interface
Phase 4: Data Migration & Go-Live¶
- CS-Cart data migration scripts
- Production deployment configuration
- Domain setup (order.ritsubi.co.jp)
- Performance monitoring setup
📝 Development Commands¶
Server Operations¶
# Start development server (dotenvx経由)
pnpm --filter ritsubi-vendure-server run dev
# Start Docker services + Vendure server
pnpm --filter ritsubi-vendure-server run dev:full
# Build and run compiled output
pnpm --filter ritsubi-vendure-server run build
pnpm --filter ritsubi-vendure-server run start
# Build React Dashboard bundle
pnpm --filter ritsubi-vendure-server run dashboard:build
Database Operations¶
# Connect to PostgreSQL
psql -h localhost -p 5433 -U postgres -d ritsubi_vendure_dev
# Check database tables
\dt
🚀 Current Status Summary¶
| Component | Status | Details |
|---|---|---|
| API Server | ✅ Operational | Port 4000, PID 2933187 |
| React Dashboard | ✅ Functional | Built & deployed |
| PostgreSQL DB | ✅ Connected | 73 tables created |
| Authentication | ✅ Working | superadmin access |
| Asset Server | ✅ Active | Static file serving |
| B2B Features | ⏳ Ready for Configuration | Schema supports complex B2B |
関連ドキュメント¶
Last Updated: September 12, 2025
Next Milestone: Basic B2B configuration and product catalog setup