34-Module ERP
Enterprise resource planning with commerce integration
Problem
Indonesian SMEs need:
- Unified inventory management across online and offline channels
- Automated accounting that syncs with sales and purchases
- Multi-channel commerce: TikTok Shop, Shopee, WooCommerce, POS
- HR management from recruitment to payroll
- A system modular enough to pick only needed features
Solution
A 34-module Laravel ERP with Filament 4 admin panel:
- Core Modules: Accounting, POS, Purchase, Sale, Inventory
- HR Modules: Payroll, Recruitment, Attendance, Appraisal, Termination
- Commerce Modules: TikTok Shop, Shopee, WooCommerce integration
- CMS Modules: Page Builder, Blog, Setting Builder
- CRM Module: Customer relationship management
- Classroom Module: Training and course management
Architecture
┌──────────────┐
│ Filament 4 │
│ Admin Panel │
└──────┬───────┘
│
┌──────────────────┼──────────────────┐
│ │ │
┌────▼─────┐ ┌──────▼──────┐ ┌──────▼──────┐
│ Commerce │ │ Accounting │ │ HR / CRM │
│ Modul │ │ Modul │ │ Modul │
└────┬─────┘ └─────────────┘ └─────────────┘
│
┌────┴────┬──────────┬──────────────┐
│ TikTok │ Shopee │ WooCommerce │
│ Shop │ │ │
└─────────┴──────────┴──────────────┘
Key Tech Decisions
coolsam/modules for package organization
Chose coolsam/modules (nwidart-style) over Laravel native packages because
it provides first-class Filament integration. Each module is self-contained
with its own migrations, models, Filament resources, and service provider.
34 modules remain independently testable and deployable.
Omnichannel commerce abstraction
Each marketplace (TikTok Shop, Shopee, WooCommerce) implements a shared
ChannelIntegration contract with methods: syncProducts(), pullOrders(),
pushInventory(), handleWebhook(). Adding a new marketplace requires only
a new implementation class — zero changes to order processing or accounting logic.
Accrual accounting (simple model)
Chose simple accrual accounting: revenue recognized when a bill/invoice is issued. No deferred revenue, no service periods, no reconciliation closing. The chart of accounts is configurable per tenant, and accounting entries snapshot the account configuration at transaction time so future config changes don’t alter historical data.
Metrics
| Metric | Value |
|---|---|
| Modules | 34 |
| Marketplace Integrations | TikTok Shop + Shopee + WooCommerce |
| Observability | Sentry + Telescope + Debugbar |