The operational platform

We are the storefront.
You run the brand.

VATFlow hosts your shop and your back-office on one platform: products with full size/colour variants, multi-warehouse inventory, the whole order lifecycle, and fulfilment handed to your own carrier. Brands migrate to us — we do not connect to Shopify or WooCommerce.

One platform from cart to delivery. Every state change audit-logged.

01Hosted storefront

Your shop and checkout live on our platform.

No theme engine to wrestle, no app store to babysit. You bring the catalogue and the brand; we run the storefront, the cart, and the checkout that feeds the VAT engine and the order ledger.

Hosted store

Your storefront and checkout run on our platform — no separate hosting, no plugins to patch.

You migrate to us

Import your catalogue and customers once. We are the store, not a connector bolted onto one.

Mock checkout, real flow

Phase 1 ships a mock checkout so the cart→VAT→invoice→fulfil→track loop is demoable end to end.

One audit trail

Every order, edit, and refund writes an immutable AuditLog entry — who, what, before, after, when.

Migrating from another store? You move once. We are not a plugin for Shopify or Woo — we replace them.

02Catalogue

Products with a real size/colour matrix.

Fashion catalogues are a grid, not a flat list. VATFlow models the size × colour matrix natively, so a single tee becomes every SKU it should be — each priced, stocked, and tracked on its own.

Size × colour variant matrix

Define a product once, then expand it across the full size and colour grid. Each cell is its own SKU with its own price, barcode, and stock.

SKU-level inventory

Stock is tracked per variant, per warehouse — not per product. The matrix UI shows exactly where every size and colour sits.

Decimal-exact pricing

Every money field is Decimal128, never a float. Net prices stay precise from the variant row through to the VAT line on the invoice.

Variant matrix · TEE-CREW4 × 3 = 12 SKU
Colour \ SizeSMLXL
Black1228194
Sand71509
Forest2133116

Cells show on-hand units. A 0 is out of stock at this warehouse — not across the brand.

Inventory

Stock lives in warehouses, not in a single bucket.

Run as many warehouses as your supply chain needs. Inventory is tracked per SKU per location, carriers are configured per warehouse, and a reconciliation job keeps the count honest.

Per-SKU counts Per-warehouse carriers Reconciliation job Decimal128 money

Multi-warehouse

Hold stock across as many warehouses as you run — UK, EU, or third-country — each with its own address and carriers.

Per-warehouse carriers

Configure which shipping partners a warehouse can use. Fulfilment routes from the warehouse that holds the stock.

Reconciliation job

A periodic job reconciles counts so the ledger and the shelf agree — the MongoDB-for-finance mitigation, made operational.

03Cart → delivery

One order, five accountable steps.

The lifecycle is a single chain on our platform: each stage writes an audit entry and feeds the next, so the VAT figure on the invoice is the same one the customer paid and the one you file.

  1. 01

    Cart

    A customer checks out on your hosted storefront.

  2. 02

    VAT

    The engine resolves place of supply, scheme, and rate — before payment.

  3. 03

    Invoice

    A compliant PDF invoice is generated (a credit note on return).

  4. 04

    Fulfil

    The order is handed to your carrier; a label and AWB come back.

  5. 05

    Track

    Carrier events surface on your own tracking page — they never leave.

The VAT step is the legally-risky core — see exactly how it classifies. How the tax engine works

Pluggable fulfilment

Bring your own carrier. Keep your tracking page.

Shiprocket, DHL Express, UPS, Royal Mail, and FedEx each sit behind one common ShippingProvider interface. Configure carriers per warehouse; we orchestrate labels, AWBs, and manifests, then pull every status event back onto your own tracking page. The customer never leaves.

  • Shiprocket Shiprocket
  • DHLDHL DHL Express
  • UPSups UPS
  • Royal Mail Royal Mail
  • FedExFedEx FedEx

Swap the mock provider for a production one — the interface stays the same.

Tracking · stays on /trackAWB 77-4192-008
  1. 09:02Label createdDHL Express
  2. 11:40CollectedManifest #M-0218
  3. 14:55In transitLeipzig DE
  4. Out for deliverypending
  5. Deliveredpending
Carrier events, surfaced on your domain.
04Your UI, our platform

Hosted storefront, or build your own on the API.

Use the storefront we host, or drive the same orders, products, inventory, and VAT through our public REST API. Either way the order lands in one lifecycle, one audit trail, one ledger — the platform stays the system of record.

One inventory

Storefront and API orders draw from the same per-warehouse stock — no double-selling the last unit.

One VAT engine

An API order is classified by the same rules as a storefront order: place of supply, scheme, rate.

One order ledger

However an order arrives, it lands in the same lifecycle with the same audit trail and invoice.

API keys, rate limits, and webhooks are documented for builders. Read the developer docs

Storefront, ops, and tax in one

Move your shop onto a platform that owns the whole order.

Import your catalogue, set up your warehouses, and pick your carriers. The VAT and the tracking are handled — and they stay on your platform.