Skip to main content

title: “Marketplace” description: “Multi-marketplace storefront dengan product catalog, cart system, Shopee sales sync, admin CMS, dan order management di SNISHOP ERP.”

Marketplace

Marketplace Halaman Marketplace adalah storefront digital multi-channel yang menampilkan produk dari berbagai seller di platform SNISHOP. Dibangun di atas Marketplace.jsx (811 baris) dengan katalog produk dari POSProduct (produk fisik) dan DigitalProduct (produk digital), sistem cart terintegrasi melalui MarketplaceCart, banner carousel, diskon & voucher, serta admin CMS untuk pengaturan commission dan tampilan. Sistem ini juga dilengkapi Shopee Sales Sync Engine (shopeeSalesSync.js, 187 baris) yang mensinkronisasi data penjualan Shopee secara realtime dengan algoritma offset otomatis, serta mendukung multi-channel pricing untuk Shopee, Tokopedia, TikTok Shop, WhatsApp, B2B, dan channel lainnya.

Arsitektur Komponen

Entity & Data Sources

POSProduct (Produk Fisik)

Entity POSProduct merepresentasikan produk fisik yang dijual melalui marketplace. Setiap produk memiliki dukungan multi-channel pricing, varian, dan sinkronisasi dengan DigitalProduct.

DigitalProduct (Produk Digital)

Entity DigitalProduct merepresentasikan produk digital seperti jasa desain, video editing, Zoom session, dan lainnya. Mendukung custom order form, varian harga, dan fitur produk.

MarketplaceCart (Keranjang Belanja)

Entity MarketplaceCart menyimpan item keranjang belanja per user. Setiap record merepresentasikan satu item dalam cart.

MarketplaceOrder (Order Marketplace)

Entity MarketplaceOrder merepresentasikan order fisik yang masuk melalui marketplace SNISHOP. Mencakup informasi lengkap dari data customer, item order, komisi, pengiriman, hingga tracking.

ProductOrder (Order Produk Digital)

Entity ProductOrder merepresentasikan order untuk produk digital. Mendukung sistem assignment admin, quota-based ordering, voucher, dan reseller discount.

MarketplaceCommissionSettings (Pengaturan Komisi)

Entity MarketplaceCommissionSettings menyimpan konfigurasi komisi global marketplace.

CompanyPOSInventory (Pergerakan Stok Company)

Entity CompanyPOSInventory mencatat setiap pergerakan stok produk di level company.

StockMovement (Detail Pergerakan Stok Multi-Channel)

Entity StockMovement mencatat detail pergerakan stok dengan dukungan multi-channel, lot tracking, dan kalkulasi profit.

Discount (Diskon Produk)

Entity Discount mengelola berbagai jenis diskon yang bisa diterapkan pada produk marketplace.

Voucher & ProductVoucher

Entity Voucher mengelola voucher subscription, sedangkan ProductVoucher mengelola voucher khusus produk marketplace. Voucher (Subscription) ProductVoucher (Produk Marketplace)

ShopSettings (Pengaturan Toko)

Entity ShopSettings menyimpan konfigurasi tampilan dan operasional toko marketplace.

WarehouseLocation (Lokasi Gudang)

Entity WarehouseLocation mengelola lokasi gudang dan toko untuk mendukung multi-location inventory.

LiveStreamingActivity (Aktivitas Live Streaming)

Entity LiveStreamingActivity mencatat aktivitas live streaming di berbagai platform untuk tracking penjualan dan engagement.

Entity Relationship Diagram

Multi-Channel Pricing System

Sistem marketplace SNISHOP mendukung pricing berbeda untuk setiap channel penjualan. Mapping channel ke pricing key dikelola melalui shared module channelPricing.js:

Fungsi Channel Pricing

9 Kategori Produk

Kategori Produk Digital

5 Opsi Sorting

“For You” Scoring Algorithm

Produk di tab “For You” diurutkan berdasarkan skor yang menggabungkan popularitas dan recency:

Stock Resolution

Stok ditampilkan dari entity CompanyPOSInventory yang di-aggregate per produk, dengan dukungan multi-location dari WarehouseLocation: Setiap pergerakan stok dicatat di StockMovement dengan detail channel penjualan, lot tracking, dan kalkulasi profit otomatis. Banner auto-rotate setiap 5 detik dengan konfigurasi dari admin CMS (max 5 banner). Konfigurasi banner disimpan di ShopSettings:

Admin CMS

MarketplaceSettingsTab (320 baris)

Menggunakan entity MarketplaceCommissionSettings:

MarketplaceOrdersTab (188 baris)

Admin order management via listAdminMarketplaceOrders: Stats: total orders, total revenue, total commission.

ShopSettings CMS

Shopee Sales Sync Engine

shopeeSalesSync.js (187 baris) mensinkronisasi data penjualan Shopee Mall Official Store Quinn of Spicy dengan data transaksi realtime dari sistem ERP:

Detail Shopee Store

Base Sales per SKU (Contoh)

Algoritma Offset Realtime

Marketplace Integration (Shopee & Tokopedia)

Panel integrasi marketplace (ShopeeTokopediaIntegrationAddon) menampilkan status koneksi ke Shopee Open Platform dan Tokopedia Open API: Integrasi ini memungkinkan:
  • Sinkronisasi stok realtime antara SNISHOP dan marketplace
  • Import order otomatis dari marketplace ke SNISHOP
  • Update harga dan stok produk ke marketplace
  • Tracking penjualan multi-channel dalam satu dashboard

Discount & Voucher System

Jenis Diskon

Cakupan Diskon

Reseller Discount per Tier

Order Status

MarketplaceOrder (Produk Fisik)

ProductOrder (Produk Digital)

Payment Status

SEO & Demo Mode

  • usePageSEO hook untuk metadata SEO otomatis
  • Demo mode (isDemoMode) menampilkan DEMO_PRODUCTS dan DEMO_COMPANY
  • Cart memerlukan user authentication

Cara Akses

Dari sidebar, klik menu Marketing > Marketplace. Halaman ini publik — tidak memerlukan login untuk browsing, tetapi cart dan checkout memerlukan login.

Flow Penggunaan

  1. Buka Marketplace dari sidebar — lihat banner carousel dan produk unggulan
  2. Filter produk berdasarkan kategori atau urutkan berdasarkan harga/popularitas
  3. Klik produk untuk melihat detail di modal MarketplaceProductDetail
  4. Tambahkan ke cart — cart count terupdate realtime
  5. Checkout memerlukan login — sistem memvalidasi stok dari Inventory
  6. Admin bisa mengelola commission, banner, dan order melalui tab admin

Diagram Alur Proses

Sinkronisasi Produk ke Marketplace

Proses Order Marketplace

Update Stok Multi-Channel

State Diagram - Order Lifecycle

MarketplaceOrder Status Lifecycle

ProductOrder Status Lifecycle

StockMovement Types

Enum Reference Tables

MarketplaceOrder.status

MarketplaceOrder.payment_status

ProductOrder.status

StockMovement.movement_type

StockMovement.reference_type

CompanyPOSInventory.type

DigitalProduct.category

Discount.discount_type

Discount.applies_to

WarehouseLocation.location_type

LiveStreamingActivity.platform

LiveStreamingActivity.status

RBAC Permission Table

Berikut adalah hak akses berdasarkan role user dalam sistem marketplace:

Tips

  • Pastikan foto dan deskripsi produk sesuai standar setiap marketplace untuk approval yang lebih cepat
  • Monitor stok secara berkala terutama saat periode promo besar (Harbolnas, Ramadan)
  • Manfaatkan tab “For You” untuk menampilkan produk dengan scoring terbaik ke pengunjung
  • Gunakan Shopee Sales Sync untuk menjaga konsistensi data antara SNISHOP dan Shopee
  • Gunakan channel_pricing untuk mengatur harga berbeda per channel (marketplace, B2B, reseller, dll)
  • Aktifkan min_stock alert agar tidak kehabisan stok tanpa pemberitahuan
  • Manfaatkan LiveStreamingActivity untuk track performa live di Shopee, TikTok, dan platform lainnya
  • Gunakan ProductVoucher untuk promo produk spesifik dan Discount untuk diskon kategori atau seluruh produk
  • Untuk transfer antar gudang, gunakan StockMovement dengan type transfer dan isi from_location_id / to_location_id