ERP · React Native · Multi-tenant commerce

Ibex ERP — Omni-channel Commerce Platform

A multi-tenant ERP and mobile wholesale ordering experience connecting tenant branding, customer accounts, live catalogues, cart pricing, checkout and order tracking through one API-led platform.

React NativeTypeScriptDjango REST FrameworkPostgreSQLJWT Authenticationdjango-tenantsGitHub ActionsAWS EC2NginxGunicorn
Abstract technical illustration for Ibex ERP — Omni-channel Commerce Platform

The challenge

The storefront could not behave like an isolated shopping application. Tenant resolution, customer identity, stock availability, pricing, payment eligibility, checkout readiness and order status all needed to reflect ERP-owned business rules. The mobile experience also had to recover sessions safely, respect tenant feature flags and communicate detailed validation failures without exposing internal modules directly.

What we owned

  • Defined a tenant-first bootstrap flow for theme, storefront configuration and commerce context
  • Connected customer registration, authentication, token refresh, profile completion and password management
  • Integrated public catalogue browsing with authenticated cart, pricing, checkout and order tracking flows
  • Preserved ERP validation details and profile-completeness requirements in the mobile interface
  • Established TypeScript, lint, Jest and Android build validation through continuous integration
  • Created a Scaleweave-aligned default design system while retaining tenant-controlled branding

Outcome

The product now has a verified mobile integration foundation instead of a disconnected interface prototype: tenant configuration drives the experience, authentication can recover expired sessions, ERP validation reaches the customer clearly, and the shared commerce API contract provides a controlled path from catalogue discovery through checkout and order tracking. Broader ERP modules remain internal sources of truth rather than being coupled directly to the mobile client.

Client/project identity is anonymized here. Technical scope is shown without exposing confidential product details.