Jiffoo Docs

Quick Start

Get your first store running in 30 minutes

Quick Start

Get Jiffoo Mall up and running in under 30 minutes. This guide walks you through installing the platform, creating your first tenant store, adding a product, and making your first test purchase.

What You'll Build

Jiffoo Mall is a multi-tenant e-commerce platform supporting:

  • Multi-merchant stores
  • Theme customization
  • Plugin extensions

By the end of this guide, you'll have:

  • ✅ A working Jiffoo Mall installation
  • ✅ Your first tenant store created
  • ✅ A product listed in your catalog
  • ✅ A functional checkout flow

Prerequisites

Before starting, ensure you have:

  • Node.js 18+ installed
  • pnpm or npm package manager
  • PostgreSQL or SQLite database
  • 30 minutes of uninterrupted time

New to Jiffoo Mall? This platform supports multi-tenant stores, plugin extensions, and theme customization. We'll focus on the basics first.


Step 1: Install Jiffoo Mall (5 min)

Clone and Install

# Clone the repository
git clone https://github.com/thefreelight/Jiffoo.git
cd Jiffoo

# Install dependencies
pnpm install

Configure Environment

# Copy environment template
cp apps/api/.env.example apps/api/.env

Quick configuration - Edit apps/api/.env with these minimal settings:

DATABASE_URL="postgresql://user:pass@localhost:5432/jiffoo"
JWT_SECRET="your-secret-key-here"

Tip: Use SQLite for quick testing: DATABASE_URL="file:./dev.db"

Initialize Database

# Generate database schema
pnpm --filter api db:generate

# Create database tables
pnpm --filter api db:push

# Seed with sample data (optional)
pnpm --filter api db:seed

✓ Success check: You should see "Database pushed successfully" message.


Step 2: Start Development Servers (2 min)

# Start all services
pnpm dev

Wait for all services to start. You'll see:

ServiceURLPurpose
🛒 Shophttp://localhost:3000Customer storefront
🔧 APIhttp://localhost:3001Backend API
👑 Super Adminhttp://localhost:3002Platform management
🏪 Adminhttp://localhost:3003Store management

✓ Success check: All services show "ready" status in terminal.


Step 3: Access Super Admin (3 min)

Login to Platform

  1. Visit http://localhost:3002
  2. Login with default credentials:

⚠️ Security: Change these credentials in production!

Create Your First Tenant

  1. Click Tenant Management in sidebar
  2. Click + Add Tenant button
  3. Fill in the form:
    • Store Name: My First Store
    • Subdomain: store1
    • Admin Email: [email protected]
    • Admin Password: store123
  4. Click Create Tenant

✓ Success check: You'll see "Tenant created successfully" notification.


Step 4: Configure Your Store (5 min)

Login to Store Admin

  1. Visit http://localhost:3003
  2. Login with tenant credentials:

Basic Store Settings

Navigate to SettingsGeneral:

  1. Store Details:

    • Store Name: My Awesome Store
    • Currency: USD
    • Language: English
  2. Contact Information:

    • Email: Your store email
    • Phone: Your contact number
  3. Click Save Changes

✓ Success check: Settings saved successfully message appears.


Step 5: Add Your First Product (8 min)

Create a Product

  1. Go to ProductsAdd Product

  2. Fill in product details:

    Basic Info:

    • Name: Premium T-Shirt
    • Description: Comfortable cotton t-shirt
    • Price: 29.99
    • SKU: TSHIRT-001

    Inventory:

    • Stock: 100
    • Status: Active
  3. Upload Image (optional):

    • Click Add Image
    • Upload product photo
  4. Categories (optional):

    • Select or create Clothing category
  5. Click Publish Product

✓ Success check: Product appears in your product list.

Quick Alternative: Use Sample Data

# Seed with sample products
pnpm --filter api db:seed --products

Step 6: Test Your Store (5 min)

View Storefront

  1. Visit http://localhost:3000
  2. You should see your product listed
  3. Click on the product to view details

Make a Test Purchase

  1. Click Add to Cart
  2. Click Cart icon (top right)
  3. Click Checkout
  4. Fill in test customer details:
  5. Use test payment method:
    • Card: 4242 4242 4242 4242
    • Expiry: Any future date
    • CVC: Any 3 digits
  6. Click Place Order

✓ Success check: You'll see an order confirmation page.

Verify Order in Admin

  1. Go back to Admin panel (http://localhost:3003)
  2. Navigate to Orders
  3. Your test order should appear in the list

Step 7: Next Steps (2 min)

🎉 Congratulations! You now have a working e-commerce store.

Immediate Next Steps

  1. Customize Your Theme

    • Go to AppearanceTheme Settings
    • Upload logo, change colors, adjust layout
    • See: Theme Development
  2. Configure Payment Methods

    • Go to SettingsPayments
    • Enable Stripe, PayPal, or other processors
    • See: Configuration Guide
  3. Add More Products

    • Import via CSV
    • Connect to inventory system
    • Set up product variants

Learn More

GuideWhat You'll LearnTime
ConfigurationEmail, payments, storage15 min
Plugin SystemExtend functionality30 min
Theme DevelopmentCustom storefront design45 min
API ReferenceIntegrate with external systems20 min

Understanding Roles

Jiffoo Mall supports multiple user types:

RoleAccessUse Case
👑 Super Admin/super-adminPlatform operator, manage tenants
🏪 Admin/adminStore owner, manage products/orders
👥 Agent/agentDistribution agent, track commissions
🛒 Customer/shopShopping user, place orders

Key Features to Explore

  • 🔌 Plugin Marketplace - Payment, email, OAuth integrations
  • 📊 Analytics Dashboard - Sales reports, customer insights
  • 👥 Agent System - Three-tier distribution network
  • 🌍 Multi-language - Built-in i18n support
  • 📱 Mobile Responsive - Works on all devices

Get Help


Troubleshooting

Services Won't Start

# Check if ports are in use
lsof -i :3000,3001,3002,3003

# Kill existing processes if needed
killall node

Database Connection Failed

# Verify PostgreSQL is running
pg_isready

# Or use SQLite for development
DATABASE_URL="file:./dev.db"

Can't Login

# Reset admin password
pnpm --filter api db:reset-admin

Port Already in Use

Edit .env to use different ports:

PORT=3001  # API port
SHOP_PORT=3000
ADMIN_PORT=3003

Total time: ⏱️ ~30 minutes

Ready to build something amazing? Start by exploring the Configuration Guide or jump into Plugin Development!

On this page