コンテンツにスキップ

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

2. Successfully Resolved Issues

NestJS ConfigModule Dependency Resolution Error

  • Problem: "Nest can't resolve dependencies of the ConfigModule (ConfigService, ?)"
  • Root Cause: Missing DashboardPlugin registration 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