ERP-as-a-Service¶
Service ownership
Owner: application-services (apps-pm@clouddigit.ai) — Status: GA — Last audited: 2026-05-11
Cloud-hosted ERP, multi-tenant or single-tenant, with Bangladesh-specific accounting, VAT, and statutory reporting baked in.
What it is¶
A managed ERP platform pre-configured for Bangladeshi business reality:
- Mushak (VAT) — automatic VAT calculation on sales/purchase, Mushak-6.3 / 6.4 / 6.6 generation, online filing handoff
- NBR returns — corporate income tax, AIT, withholding
- RJSC compliance — Schedule X / Schedule XII generation
- BB FX records — for businesses with foreign-currency dealings
- BDT-first GL
Built on a foundation of widely-supported ERP — the actual underlying engine is the Odoo Community + Enterprise stack — so users are productive on day 1 if they've used Odoo before.
Modules¶
| Module | Use |
|---|---|
| Finance & Accounting | GL, AP, AR, fixed assets, BD VAT/AIT |
| Inventory & WMS | Multi-warehouse, batch/serial, expiry |
| Purchasing | Vendor mgmt, RFQ, PO, 3-way match |
| Sales & CRM | Pipeline, quotations, invoicing |
| Manufacturing | BOM, MRP, work orders |
| HR & Payroll | (use Payroll-as-a-Service for BD) |
| Project | Time-tracking, billing, budgeting |
Tenancy¶
- Multi-tenant — fastest to onboard, lowest cost, your data is logically segregated
- Single-tenant — dedicated installation; better for FIs, large enterprises, or cases where the ERP DB itself must be isolated
Pricing¶
Per-named-user-month, with module-based tiers. Single-tenant has a base infrastructure fee on top. See Pricing.
Related¶
- Payroll-as-a-Service — BD-specific payroll
- Compliance & sovereignty
Operate this service¶
Cloud Digit-hosted ERP (Odoo / ERPNext / SAP B1 variants) — fully managed, BD-localized, BDT-billed.
Available ERPs¶
| ERP | Best for |
|---|---|
| Odoo Community | SME, modular, customizable |
| Odoo Enterprise | Mid-market with EE features |
| ERPNext | Open-source, batch operations |
| SAP Business One | Mid-market with SAP affiliation |
| Tally on Cloud | Existing Tally users moving cloud |
What CD manages¶
- Hosting, scaling, backups
- Major version upgrades
- Database performance
- Backup / DR
- BD-localized features (BDT, NBR-VAT, BCC banking integrations)
What customer manages¶
- Business configuration (chart of accounts, workflows)
- Custom modules and reports
- User onboarding / training
- Data quality
IAM¶
| Role | Can do |
|---|---|
erp.viewer | Read-only ERP access |
erp.user | Standard ERP user (config'd inside ERP) |
erp.tech-admin | Manage CD infra, schedule upgrades |
erp.business-admin | Sign off business config changes |
Inside the ERP, the ERP's own RBAC applies.
Sizing tiers¶
| Tier | Users | Concurrent | Notes |
|---|---|---|---|
erp-small | < 25 | 5 | Single instance |
erp-medium | 25-100 | 20 | HA pair |
erp-large | 100-500 | 100 | Multi-tier, dedicated DB |
erp-enterprise | 500+ | 200+ | Custom architecture |
Data residency¶
ERP data stays in BD. Backups cross-region only intra-BD. Compliant with NBR data localization rules.
Related¶
Metrics¶
| Metric | Healthy | Alert |
|---|---|---|
erp.requests_per_sec | matches user count | |
erp.response_time_ms p95 | < 1000 | > 3000 |
erp.db.connections | < 80% of max | > 90% |
erp.errors_per_min | < 0.1% | > 1% |
erp.background_job.queue_depth | < 100 | > 1000 |
Daily operations¶
- Backup verification (yesterday's backup completed?)
- Top-slow-queries review
- User activity audit (suspicious logins)
- VAT/tax submission status (BD-specific)
Most operations automated; humans review the reports.
Backup and restore¶
Daily full + continuous binlog. Restore tested quarterly.
bash cd erp restore --instance acme-erp --target-time 2026-05-11T08:00:00+06:00 \ --to-sandbox acme-erp-restore-test
Always restore to sandbox first; validate; then decide if production restore needed.
Upgrades¶
| Upgrade type | Frequency | Downtime |
|---|---|---|
| Patch | Monthly | < 5 min (rolling) |
| Minor | Quarterly | < 30 min |
| Major | Annually | 2-4 h (planned) |
Customer signs off; CD executes in maintenance window.
Customizations¶
Customer-developed Odoo modules: - Versioned in customer git repo - Deployed via CD-controlled CI/CD - Validated in staging before prod
CD doesn't write the customizations; CD operates them.
BD-specific integrations¶
- NBR e-invoice integration (pre-configured)
- Bangladesh Bank statement import (auto-reconciliation)
- bKash / Nagad payment gateway integration
- Bangla / English bilingual UI
Updates as BD regulations change.
Related¶
Slow response¶
erp.response_time_ms p95 > 3s:
- DB query slow — see slow log
- Customization with infinite loop / N+1 query
- Background job filling queue, blocking UI requests
- Sizing tier under-spec'd
bash cd erp diagnose --instance acme-erp --since 1h
Background jobs stuck¶
erp.background_job.queue_depth climbing: - Worker processes crashed - DB locks blocking job execution - Job has bug (infinite retry)
Restart workers; investigate root cause.
Backup verification failed¶
WARN: Last backup verification reported invalid data
- DB consistency issue
- Backup process corrupted (rare)
- Restore-side issue
CD investigates; restore from previous valid backup if needed.
Customization broke after upgrade¶
Customer's custom module incompatible with new ERP version: - Test customizations in staging before prod upgrade - CD provides 60-day notice + test environment - Customer responsibility to update; CD assists if engagement
Tax submission failed (NBR / BB)¶
Regulator integration glitch: - Check NBR / BB system status - Retry submission - Manual fallback (paper submission) if regulator system is down
CD doesn't control regulator systems; customer assumes integration risk.
User can't log in¶
| Symptom | Cause |
|---|---|
| "Invalid credentials" | Password reset needed |
| "User disabled" | Admin disabled inside ERP |
| "License limit reached" | More users than tier supports |
| SSO loop | SSO config drift |
Cost spike¶
ERP usage costs: - More users than tier limit (auto-upgrade or manual decision) - Storage growth (large attachments) - Background job execution (heavy reports)
Usage analytics show top consumers.
Data corruption¶
Rare but possible: - DB-level corruption (CD restores; lose recent edits) - Application-level (customization bug; reproduce + fix) - User error (deleted data; restore selectively)
PITR restore for accidental deletion; full restore for corruption.