Skip to main content
LIVE · DEVSOLEIL
Metal Trading · B2B

Metal Flow  Bilingual ERP for Metal Trading

Bilingual (EN/AR), VAT-ready ERP for Saudi metal traders — the full quote-to-cash cycle on a live profit ledger, evolved into a multi-company platform with per-tenant data isolation, numbering, and access control.

Overview

The brief.

Metal Flow runs the full commercial cycle of a metal-trading company on one transparent, profit-aware ledger: a deal starts as a quotation, is approved into a sales order, fulfilled through partial delivery notes, and sourced via purchase orders — while payments, a cash/bank ledger, and petty cash keep the money side reconciled. Every printable document is a branded, bilingual, VAT-compliant PDF.

Project snapshot

The essentials.

Industry
Metal Trading · B2B
Services
web-apps
Client
Metal Flow logoMetal Flow
Saudi Arabia
Headline outcome
Quote → CashWorkflow covered
Tech stack

What we built with.

The project

What we built, in detail.

Metal traders typically juggle quotations, orders, deliveries, supplier POs, and cash across spreadsheets and disconnected tools — with no live view of profit per line or outstanding balances, and no bilingual, VAT-ready paperwork. Metal Flow replaces that with a single system that keeps the quote-to-cash chain linked and auditable end-to-end, computes profit and margin per line and per document in real time, and tracks every receipt, payment, bank transfer, and petty-cash movement against the documents that generated it. Built for Saudi operations: every screen and document is bilingual English/Arabic with full RTL support, 15% VAT is first-class, and invoices render the grand total in words.

Key features

The pieces that
make it click.

01

Live profit ledger

Per-line selling and buying prices with real-time profit and margin on every line and every document, across the entire quote-to-cash chain.

02

Bilingual, RTL-first UI

Every label, field, and document is English/Arabic. A reusable bilingual field component offers inline machine translation, and the layout direction flips with the chosen locale.

03

Branded VAT-compliant documents

Quotations, sales orders, delivery notes, and purchase orders render as branded A4 print/PDF views with per-company letterhead bands and "grand total in words".

04

Partial deliveries with guards

Multiple delivery notes per sales order with per-line reconciliation. Orders stay editable after delivery, but a delivered line can never be reduced below what shipped or removed.

05

Cash, bank & petty cash

All balances derive from a single transactions table, so cash, bank, and per-account views never drift. Funds transfers are linked leg pairs; petty cash tracks per-employee floats with overdraw guards.

06

Multi-company platform

Company profiles with isolated data, per-tenant numbering and branding, color-coded profile chips in listings, and per-user profile access — cross-profile record access safely returns a 404.

Challenges & solutions

What was hard.
How we solved it.

Challenge

Retrofit multi-tenancy onto a live production system without downtime or data loss.

Solution

A global Eloquent scope transparently filters every read on the twelve per-profile models while a companion trait auto-stamps the active profile on insert. An additive, backfilling migration added the profile key everywhere and re-pointed uniqueness to composite (profile, number) keys.

Challenge

Sales orders must stay editable after partial delivery without corrupting delivery-note links.

Solution

Edits reconcile line items by id — update, insert, delete — instead of delete-and-recreate, so downstream delivery-note links are never orphaned.

Challenge

Shared PHP hosting with no Node runtime or build step.

Solution

Server-driven UI with Livewire + Volt single-file components, hand-authored CSS with cache-busting, and additive live-data migrations run over a token-guarded maintenance route — no CLI required on the host.

Challenge

Brute-force login attempts on an internet-facing business system.

Solution

Escalating per-email+IP throttling: a handful of free attempts, then exponentially growing lockouts capped at one hour, with counters reset on success — so brute force can't be sustained by waiting out a fixed window.

The result

What changed
after launch.

Quote → CashWorkflow covered

The platform was later evolved from a single-company app into a true multi-tenant system — with no downtime and no data loss. A single deployment now hosts several independent businesses, each with isolated data, its own document numbering (two tenants can both have an SO-0001), and its own branding, with per-user control over which businesses each user may access.

Tags
#Laravel#Livewire#Volt#PHP#MySQL#Multi-tenant#ERP#Bilingual RTL#VAT#Alpine.js#Pest
Visit the live app (login)
Previous project

E-Max PCM — Retail Footfall & Occupancy Analytics

E-Max PCM

Next project

Smart CA — Practice Management SaaS

Devsoleil

Reach us directly — no forms, no wait

Let'stalk.

Drop us a message or call us directly. We reply to every enquiry — usually the same day.