Multi-Platform E-Commerce ERP Inventory & HR Management System
2024 – Present
This project builds a custom ERP system for a Taiwanese e-commerce brand that sells across multiple e-commerce platforms simultaneously. As the business scaled, a unified ERP system was needed to manage cross-platform orders, inventory, procurement, and human resources.
Built with Laravel 11 + Filament 4, this comprehensive enterprise resource planning system covers multi-platform order import and management, warehouse picking and shipping, inventory management (procurement → receiving → stock → shipping), and a complete HR module (scheduling, attendance, leave, overtime, payroll calculation).
The system currently includes 95+ data models, 45+ Filament admin panels, and 115+ service classes, with JWT API providing mobile device picking/shipping interfaces, integrated with AWS S3 cloud storage and Redis caching layer.
Integrate orders from multiple e-commerce platforms into a unified system. Each platform supports dedicated payment methods (credit card, LINE Pay, Apple Pay, Google Pay, etc.) and logistics provider integration
Complete WMS workflow from picking list generation, inventory locking, shipping label printing to logistics tracking. Supports partial shipments, home delivery, 7-11 and FamilyMart pickup, postal delivery, and more, with automatic barcode and shipping label PDF generation
Covers the complete procurement flow: Purchase Requisition → Purchase Order → Goods Receipt → Stock Entry, along with warehouse operations such as stock transfer, scrap, and stocktaking. Every change is tracked via StockTransaction records
Full lifecycle from employee onboarding to daily management: employee data & auto-calculated labor/health insurance tiers, shift scheduling (single/batch/conflict detection), attendance (Excel import/export/smart anomaly detection/attendance summary), leave & overtime requests (multiple leave types/auto hour calculation/multi-level approval), payroll calculation (salary grades/tax/dependent deductions/insurance deductions) and payslip PDF generation
Multi-stage approval workflows built with SigningTemplate and SigningStage, supporting step-by-step approvals for purchase requisitions, leave requests, overtime, and more. All approval records are fully preserved
Warehouse staff use iOS devices as PDA handheld terminals, connecting to the ERP system via JWT API. Supports barcode scanning for picking, shipping confirmation, and inventory stocktaking, with real-time warehouse status synchronization
Built 45+ admin panels with Filament 4, covering orders/picking/shipping, suppliers/customers/materials, HR/scheduling/payroll, and system permissions modules. Shield RBAC enables fine-grained role-based access control
graph TB EC1["E-Commerce Platform A"] --> ORDER EC2["E-Commerce Platform B"] --> ORDER EC3["E-Commerce Platform C"] --> ORDER PDA["📱 iOS PDA
Picking · Shipping · Stocktaking"] -->|JWT API| WMS subgraph ERP["Custom ERP"] ORDER["📦 Order Management"] WMS["🏭 Warehouse Management WMS"] SCM["📊 Inventory Management"] HR["👥 HR System"] MAT["🧪 Materials & Suppliers"] SIGN["✍️ Electronic Approval"] ADMIN["⚙️ Admin Backend"] end ORDER --> WMS SCM --> WMS HR --> SIGN SCM --> SIGN ERP --- INFRA["☁️ Redis · AWS S3"] classDef ext fill:#1a365d,stroke:#4299e1,color:#bee3f8 classDef pda fill:#553c9a,stroke:#9f7aea,color:#e9d8fd classDef infra fill:#1c4532,stroke:#48bb78,color:#c6f6d5 class EC1,EC2,EC3 ext class PDA pda class INFRA infra
The system has dedicated order Models and Filament Resources for each e-commerce platform, corresponding to each platform's order format and payment methods. Each platform has its own Enum definitions for payment methods and logistics providers, supporting credit cards, installment payments, mobile payments (LINE Pay / Apple Pay / Google Pay), ATM transfers, convenience store payments, and 10+ other payment methods.
After import, orders are uniformly converted into an internal SalesOrder + SalesOrderItem + SalesOrderSubItem three-tier order structure, feeding into the subsequent picking and shipping workflow.
The warehouse uses a three-tier architecture of Warehouse → Location → Lot for bin management. The picking process is initiated by PickingOrder, where the system automatically locks inventory (StockLockDetail) based on order details. Upon picking completion, a ShippingOrder is generated.
The system supports partial shipments, where a single order can be split into multiple shipping orders based on stock availability or customer requirements, each independently tracking logistics status. Shipping orders support automatic generation of barcode labels (PHP Barcode Generator) and shipping detail PDFs (DomPDF + TCPDF dual engine). Logistics supports home delivery, 7-11 pickup, FamilyMart pickup, postal delivery, and self-pickup. The REST API uses JWT authentication to provide mobile device picking scanning and shipping operation interfaces.
The procurement flow follows the standard ERP procurement chain: PurchaseRequisition → PurchaseOrder → GoodsReceipt → Stock entry. Every inventory change is recorded in StockTransaction, supporting full traceability of all changes.
Stock transfers are managed via TransferOrder + TransferOrderItem for cross-warehouse/cross-bin movements; scrap is recorded via ScrapOrder + ScrapOrderItem. Each document type has its own Key Generator for automatic sequential numbering.
Materials are managed via Material + MaterialCategory (Closure Table hierarchical classification), with support for combined materials (CombinedMaterial) to define BOM structures. Supplier data includes three tiers: Supplier, SupplierContact, SupplierBank. Customer data is similarly managed with Customer, CustomerContact, CustomerContactPeople, CustomerBank in multiple layers. Supplier data supports Excel bulk import (Maatwebsite/Laravel-Excel).
The comprehensive HR module covers the full lifecycle from employee onboarding to daily management. Employee data settings include basic information, salary structure (base salary + allowances, with support for special statuses such as unpaid leave), labor and health insurance tiers (automatically updated based on government annual announcements for insured salary tiers and deduction amounts), bank accounts (for salary transfers), and approver assignments (setting multi-level approval managers for leave/overtime/clock adjustments/schedule changes).
Shift Scheduling — WorkSchedule creates work schedule templates (clock-in/out times, lunch break hours, late/early leave tolerance ranges), combined with Holiday settings for national holidays and company special holidays. Schedules support single creation (temporary adjustments) and batch creation (select date range + employees + apply template). ScheduleAdjustment handles schedule adjustment requests (requiring supervisor approval), and ServiceScheduleConflictChecker automatically detects scheduling conflicts.
Attendance System — Clock records are stored in Attendance, supporting Excel batch import/export (required: employee ID, clock time, type). For missed or abnormal clock-ins, ClockAdjustment allows clock correction requests (within 3 days). The system uses ServiceAttendanceSmartDetection for intelligent anomaly detection (late/early leave/missing clock), and CalculatorDailyAttendance calculates daily attendance status. The attendance summary consolidates schedule times, actual clock records, attendance status, leave records, and overtime records, filterable by date range and employee for export.
Leave Management — LeaveRequest manages leave applications, supporting annual leave, sick leave, personal leave, compensatory leave, marriage leave, bereavement leave, and more. The system automatically calculates leave hours based on schedule times and deducts rest periods. LeaveQuotaTransaction tracks leave quota changes (including manual adjustments with reason records). OvertimeRequest manages overtime applications (must be submitted before overtime), which require supervisor approval before clocking in. The system automatically calculates overtime hours and rates, and employees can choose compensatory time off or overtime pay. OvertimeApprovalLog records the multi-level approval history.
Payroll System — PayrollRun executes batch payroll calculations, with Payslip + PayslipItem generating detailed breakdowns. Payroll is automatically calculated using SalaryGrade (salary tiers), SalaryItem (additions/deductions), and SalaryTaxRule (tax rules), factoring in Dependent and DependentInsurance deductions, as well as automatic labor and health insurance deductions. Payslips are generated as PDFs for employee download. All operations maintain complete historical records for audit trail queries.
Order management uses Eloquent State Machine (asantibanez/laravel-eloquent-state-machines) to define strict state transition rules. From "Pending" → "Picking" → "Shipped" → "Completed" → "Cancelled/Returned" and other states, each transition is validated by the State Machine to ensure orders cannot skip required steps due to manual operations.
Warehouse floor staff use iOS devices as PDA (Personal Digital Assistant) handheld terminals, connecting to the ERP system's JWT REST API via mobile browser to perform picking, shipping, and inventory stocktaking operations.
Picking Operations — After scanning the picking order barcode, the system displays the pending items list and bin location guidance. Warehouse staff scan product barcodes one by one to confirm picks, updating PickingOrder status and inventory locks in real time. Shipping Confirmation — After picking completion, scanning the shipping order verifies package contents and confirms shipment. The system automatically updates ShippingOrder status and logistics tracking information. Inventory Stocktaking — Supports using PDA to scan bin locations and product barcodes for on-site stocktaking. Results are compared against system inventory in real time, with discrepancies automatically flagged for review.
Multi-stage approval workflows are built with SigningTemplate + SigningStage, supporting step-by-step approvals for purchase requisitions, leave requests, overtime, and more. The permission layer implements fine-grained RBAC via Filament Shield (based on Spatie Permission), allowing different departments and roles to access different Filament Resources. All operations are fully recorded for audit trails via Spatie Activity Log + Authentication Log.
File storage uses AWS S3, with caching and queues handled by Redis. Image processing uses Intervention Image for cropping and compression. API documentation is auto-generated with Scribe. The system features ControlFlag feature flags for dynamically enabling/disabling specific modules.
CONTACT US
Whether it's ERP systems, multi-platform e-commerce integration, or HR management, we can build a tailored solution for you.
Contact Us