All Case Studies
Enterprise / ERP2025 — PresentSoftware Engineer

34-Module ERP

Enterprise resource planning with commerce integration

Laravel 12PHPFilament 4PostgreSQLMidtransTikTok Shop APIShopee APIWooCommerce APISentryLaravel Telescope

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:

  1. Core Modules: Accounting, POS, Purchase, Sale, Inventory
  2. HR Modules: Payroll, Recruitment, Attendance, Appraisal, Termination
  3. Commerce Modules: TikTok Shop, Shopee, WooCommerce integration
  4. CMS Modules: Page Builder, Blog, Setting Builder
  5. CRM Module: Customer relationship management
  6. 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