title: “Marketplace (Multi-Seller Storefront)” description: “Marketplace multi-seller Tokopedia-style: katalog gabungan, stock aggregation, banner CMS, dan Shopee sales sync di SNISHOP ERP.”
Marketplace (Multi-Seller Storefront)

CompanyPOSProduct) dan produk digital (DigitalProduct) menjadi satu grid produk yang bisa di-filter, di-sort, dan di-search.
Sistem ini menggunakan inventory-aware stock aggregation yang mengambil data stok langsung dari modul Inventory, memastikan angka stok yang ditampilkan akurat. Fitur “For You” menggunakan scoring algorithm yang menggabungkan popularitas (sold_count) dan recency (created_date) untuk ranking produk.
Marketplace juga dilengkapi banner carousel dengan auto-rotate, category grid, trust badges, dan progressive loading (20 produk per batch). Admin bisa mengelola banner, commission rate, dan display settings melalui MarketplaceSettingsTab.
Arsitektur Komponen
Entity & Model
CompanyPOSProduct (Physical Products)
DigitalProduct (Digital Products)
MarketplaceCart
MarketplaceCommissionSettings
Fitur Utama
1. Combined Product Catalog
Marketplace menggabungkan 2 sumber produk menjadi satu grid:
Merge Logic:
2. Inventory-Aware Stock Aggregation
Stok produk fisik tidak hanya mengambil dariCompanyPOSProduct.stock, tapi di-aggregate dari modul Inventory:
Function: aggregateAvailableStockByProduct() menghitung total stok tersedia dari semua warehouse locations untuk setiap produk.
3. “For You” Product Ranking
Tab “For You” menggunakan scoring algorithm yang menggabungkan popularitas dan recency:
Result: Produk yang populer dan baru muncul mendapat ranking tertinggi.
4. Product Tabs
5. Banner Carousel
Banner carousel dengan auto-rotate setiap 5 detik:6. Category Grid
Grid kategori dengan icon dan label untuk quick filter:7. Seller Resolution
Marketplace hanya fetch company yang benar-benar memiliki produk aktif — bukan enumerate semua tenants: Security Boundary: Tidak memanggilCompany.list() yang bisa expose semua tenants.
8. Progressive Loading
Product grid menggunakan progressive loading untuk performa:9. Trust Badges
Marketplace menampilkan trust badges untuk membangun kepercayaan:10. Demo Mode
Marketplace mendukung demo mode untuk preview tanpa data real:Admin Panel
MarketplaceSettingsTab (320 lines)
3-section admin panel:
Commission Live Example:
MarketplaceOrdersTab (188 lines)
Dashboard order marketplace:Cara Akses
Dari sidebar, klik menu Shop > Toko. URL publik:/marketplace
Flow Penggunaan
Customer / Visitor
- Akses
/marketplacedari browser - Browse banner carousel untuk promo terbaru
- Filter by kategori atau gunakan search
- Pilih tab: For You / Terbaru / Terlaris
- Klik produk untuk melihat detail
- Lihat info seller dan stock availability
- Pilih quantity dan klik “Add to Cart”
- Lanjut ke checkout dari cart page
Admin
- Buka Marketplace dari sidebar untuk preview
- Kelola banner melalui MarketplaceSettingsTab
- Atur commission rate dan withdrawal settings
- Monitor orders melalui MarketplaceOrdersTab
- Review statistik: total orders, revenue, commission
Integrasi Cross-Module
Shopee Sales Sync
Marketplace.jsx terintegrasi denganshopeeSalesSync.js (187 baris) untuk menampilkan angka penjualan yang menggabungkan:
Weighted Distribution: Angka penjualan didistribusikan ke produk berdasarkan popularitas.
Tips
- Gunakan foto produk yang konsisten dan profesional untuk membangun brand trust
- Monitor stock aggregation — jika ada discrepancy antara Marketplace dan Inventory, check warehouse data
- Atur commission rate yang fair untuk seller — terlalu tinggi mengurangi minat seller bergabung
- Gunakan banner carousel untuk highlight promo atau produk baru
- Progressive loading (20 per batch) menjaga performa — jangan load semua produk sekaligus
- For You scoring algorithm otomatis mempromosikan produk populer dan baru — tidak perlu manual sorting
Referensi Entity Schema (base44)
Berikut adalah dokumentasi schema lengkap untuk setiap entity yang digunakan dalam modul Toko/Marketplace, diambil langsung dari definisi JSONC dibase44/entities/.
Diagram Relasi Entity (erDiagram)
Tabel Schema Entity Lengkap
DigitalProduct
Struktur
order_form_fields[*]:
Struktur
variants[*]:
MarketplaceCart
MarketplaceCommissionSettings
MarketplaceOrder
Struktur
items[*]:
Struktur
shipping_address:
ProductOrder (Pesanan Produk Digital)
ShopSettings
Struktur
promo_banner:
Struktur
reseller_discounts:
CompanyPOSCategory
CompanyPOSInventory
CompanyPOSSettings
Struktur
receipt_settings:
Customer
CustomerMembership
WarehouseLocation
Diagram Status (stateDiagram)
Status MarketplaceOrder
Status ProductOrder (Produk Digital)
Diagram Sekuens (sequenceDiagram)
Flow Checkout Marketplace (Produk Fisik)
Flow Pemesanan Produk Digital
Flow Stock Aggregation dari Warehouse
Tabel Enum
Enum category (DigitalProduct)
Enum status (MarketplaceOrder)
Enum payment_status (MarketplaceOrder)
Enum status (ProductOrder)
Enum type (CompanyPOSInventory)
Enum customer_type (Customer)
Enum status (Customer)
Enum location_type (WarehouseLocation)
Enum scheme_type (CustomerMembership)
Enum reward_type (CustomerMembership)
Enum payment_terms (Customer)
Enum field_type (DigitalProduct.order_form_fields)
Tabel RBAC (Row-Level Security)
Berikut adalah aturan akses per entity berdasarkan definisi RLS di base44:
Detail RLS Customer (Company-Scoped):
Akses ke entity
Customer dibatasi dengan kondisi OR berikut:
data.company_id=user.data.active_company_idDANcompany_idtidak null/kosongcreated_by_id=user.id(creator bisa akses data sendiri)user.role=admin(admin memiliki akses penuh)
