Montera ERP
One operations platform for two D2C beauty brands: marketplace orders, waybills, payouts, stock, profit, warehouse and HR — reconciled against the source platforms every day.

01Problem
Orders came in from several Shopee and TikTok Shop stores while ads, stock, payouts and attendance lived in separate tools and spreadsheets. Numbers rarely matched: dashboards disagreed with Seller Center, waybills went missing, stock drifted, and profit could not be trusted because fees, payouts and COGS were never in one place.
The goal was a single system the whole team could rely on, where every figure can be traced back to the platform it came from.
02Architecture
Simplified view. Each store and channel is pulled through the same sync layer so mapping, retries and logging behave identically.
03My contribution
- Designed and built the order, waybill and payout sync for Shopee and TikTok Shop, including listing/variant → SKU mapping and bundle splitting.
- Built live sales dashboards and the "sales per day" table, aligned to Seller Center’s own definition of a sale.
- Built net-profit reporting combining COGS, platform fees, payouts, ad spend and expenses, with clear warnings when data is missing.
- Built a warehouse module: barcode scan stations, 100×150 shipping labels, waybill tracking and problem-parcel alerts.
- Built HR features: face-verified clock-in with server-side matching, office Wi-Fi/GPS presence check and an attendance map.
- Wrote daily validation jobs that compare ERP against the marketplace APIs and re-pull anything that differs.
- Run the production server: Apache, UFW and fail2ban, patching, and encrypted daily off-site backups.
04Technical challenges
Dashboard did not match Seller Center
Totals drifted from Seller Center even though every order was present.
Found that Seller Center counts a sale by payment time, not creation time, and treats unpaid COD differently. Rewrote the aggregation to the same definition; real-time totals now match order for order.
Orders arriving without products
Webhook orders from listings without variants had no product, stock or COGS attached.
Added fallback lookups (item ID, then listing SKU) in the Shopee webhook path, back-filled affected orders and added a check so it cannot silently recur.
Stock that could not be trusted
Stock was deducted at different moments, bundles were stored as their own SKUs and cancellations did not return stock.
Unified to one rule (deduct on shipment), split bundles into unit SKUs, auto-return stock on cancel/return, and added a stock-opname flow to reset the baseline.
Slow face check on iPhone
Camera opened slowly and detection lagged on iOS WebKit.
Lower-resolution preview stream, small detection frames, cached and pre-warmed models; capture only when the face is still and sharp.
05Results
- Daily automated reconciliation of orders and waybills against the marketplace APIs, with mismatches re-pulled automatically.
- Real-time sales and daily sales tables match Seller Center to the order.
- Single source of truth for orders, stock, payouts, profit, warehouse and attendance used by the whole team every day.
- Business volume and revenue are intentionally not published.
06Evidence
- Blurred screenshots of the dashboard and reports (above).
- Architecture and validation flow described on this page.
- Live walkthrough available on request.
Internal company system. Source code is private; screenshots are blurred to hide business figures and personal data. Happy to walk through the code and architecture in an interview.