Inventra – Multi-tenant Inventory Management & ERP (Next.js + MongoDB)

Inventory and ERP for trading businesses: multi-warehouse stock on an append-only ledger, purchasing, sales, offline-tolerant POS, logistics, B2B and vendor portals and double-entry finance.

by DEV3 TechnologiesVerified Author(0) 0 sales 0 viewsUpdated 22 Oct 2026
Inventra – Multi-tenant Inventory Management & ERP (Next.js + MongoDB) — preview 1
1 / 8

Inventra is a multi-tenant inventory management and ERP application for trading and distribution businesses, built by DEV3 Technologies on Next.js 15 and MongoDB. Each business runs in its own workspace with stock, purchasing, sales, POS, logistics and finance on one ledger-backed platform.

Try it: the live demo is read-only and has one-click logins for the Business Admin, Warehouse Manager, Logistics & Export, Field Sales Rep, POS Cashier, Accountant, B2B Customer, two Vendor accounts and the Super Admin.

Stock you can trust

  • Append-only stock ledger – every change to on-hand or allocated quantity writes a movement record (11 movement types) with its value change, reference document, bin, batch and serials.
  • No overselling – stock updates are conditional increments inside MongoDB transactions; the test suite fires 50 parallel reservations at 10 units and expects exactly 10 to succeed.
  • FIFO / FEFO cost layers – receipts create cost lots; dispatches consume them by bin, then expiry date, then receipt date. Serial units are costed by specific identification.
  • Multi-facility network – central warehouses, fulfilment centres, retail shops and 3PLs, each with bins, safety buffers, tax jurisdiction and currency; orders are auto-routed to the best facility.
  • Transfers & planning – inter-facility transfers with in-transit stock and partial receipts, days-of-stock rebalancing and a dynamic re-order point that uses each vendor’s measured lead-time variability.

Buying, selling and shipping

  • Purchasing – PO lifecycle with emailed PDFs, auto-reorder drafts, receiving, ASNs and vendor scorecards (lead time, OTIF, defect rate).
  • Vendor portal – suppliers confirm POs, send ASNs, dispatch drop-ship orders and see consigned stock and settlements.
  • Sales – contract, volume, tier and group pricing, credit holds, pick/pack/ship, invoices, payments, returns, credit notes and AR ageing.
  • Point of sale – barcode scanning, split tenders, register shifts with X/Z reports and an offline sale queue (IndexedDB) that syncs idempotently when the connection returns.
  • Field sales – route, geo-tagged check-ins and offline order entry for reps.
  • Logistics – HS tariff library, duty/excise/VAT estimates, ZPL labels and PDF shipping documents (commercial invoice, packing list, certificate of origin).
  • B2B portal – wholesale buyers browse the catalogue, order and view invoices and statements; cost prices are never exposed.

Finance built in

  • Double-entry ledger with balanced postings and a period lock; P&L, balance sheet, cash flow and trial balance.
  • Multi-currency in integer minor units; each document keeps its own exchange rate.
  • HR & commissions, attendance and analytics (ABC analysis, turnover, stock-out forecast, dead and expiring stock).
  • AI-assisted import of spreadsheets, PDFs, photos and pasted text into a reviewable, roll-back-able batch (optional; a rule-based parser works without an API key).

What's in the package

  • Full TypeScript source (71 pages, 55 API routes, 46 Mongoose models), .env.example and README.
  • 19 Vitest test files with 112 automated test cases (integration tests run against a real replica set).
  • 9 roles and 27 permissions with all/assigned/self scopes; fail-closed tenant isolation in the data layer.
  • Super Admin console with a CMS-driven public website and a 3D warehouse hero, backup/restore and a read-only demo mode.

Requirements

  • Node.js 20.9 or newer and npm
  • MongoDB running as a replica set (stock and ledger postings use transactions)
  • Optional: Cloudinary, SMTP, Upstash Redis and an Anthropic API key for AI import

Inventra is not a PWA: the POS till and field-sales order entry keep working through an outage once loaded; the back office needs a connection.