Purchase order management

Purchase order management software with approval built in.

Draft it, route it for approval, e-mail it to the supplier and receive it straight into lot-tracked stock. Caravan Trade keeps every purchase order — and every freight, customs and clearing charge around it — on one document you can defend.

Draft → approval → receipt lifecycle Multi-currency landed costs Supplier & terms frozen on the order One click into lot-tracked stock
Purchase order PO-0341Pampore Growers Co-op
Currency USD Expected 28 Aug Payment “30 days from invoice” Deliver to Main godown
Pending approval
Awaiting approvalsubmitted by Farhan A. · 14 Aug
Walnut kernels · light halves500.000 kg @ $ 9.80 per kg · lot WAL-2508
$ 4,900.00
Mongra saffron · 250 g tins15.000 kg @ $ 500.00 per kg · new lot
$ 7,500.00
Goods total (costs shown separately)$ 12,400.00
4 stagesdraft, pending approval, approved, received — cancel while open
Any currencyon the order, and on every landed cost around it
1 gramthe base unit, so 12.5 kg is exact, not rounded
Zerore-keying between the PO, the receipt and the stock lot
The problem

Purchase orders scattered across WhatsApp, e-mail and memory

Most trading businesses do place purchase orders — they just place them in five places at once, and none of those places talks to the stock room or the accountant.

POs by chat and spreadsheet

  • Anyone can commit the business — approval is a phone call, if it happens
  • Freight and clearing charges live in a different spreadsheet, in a different currency
  • The goods arrive and someone re-types the whole order into the stock register
  • The supplier renames their terms and history quietly rewrites itself
  • Nobody can say who approved last month's biggest order, or when

POs in Caravan Trade

  • A real state machine: draft, pending approval, approved, received
  • Approver name and timestamp recorded on the order itself
  • Landed costs on the same document, each in its own currency
  • Receiving the order opens or tops up the stock lot — no re-typing
  • Supplier, contact and term labels frozen at save time
How it works

The purchase order approval workflow, end to end

One document moves through five deliberate steps. Each transition is checked, so an order can never skip its approval or be received twice.

1. Draft

Lines, quantities, unit costs and batch details — editable for as long as it stays a draft.

2. Submit

The buyer sends the draft for approval; it now waits in Pending approval.

3. Approve

An approver signs off — name and timestamp are stamped onto the order.

4. Send

E-mail the approved order to the supplier's contact, PDF attached.

5. Receive

Goods arrive; each line lands in inventory as a new or topped-up stock lot.

Cancellation is allowed at any open stage — and once an order is received or cancelled, it is closed. The transitions are row-locked, so two people acting on the same order at the same moment cannot double-receive it.

PO approval workflow

Submit, approve, receive — in that order, every time

Approval here is not a checkbox: it is a state the order must pass through. Submitting and approving are two separate actions, so a review step is built into the document's own lifecycle — and composable permission groups decide who may take which action. Only an approved order can be received into stock, and only an approved or received order can be e-mailed to the supplier.

  • Draft → Pending approval → Approved → Received, with Cancelled from any open stage
  • Approver's name and the approval timestamp recorded on the order
  • Creator recorded too — who raised it and who signed it off are both facts
  • An unapproved order physically cannot become stock
  • Row-locked transitions: a concurrent duplicate receive fails instead of slipping through
Order timelinePO-0341
Draft
Createdby Farhan A. · 14 Aug, 10:12
Pending
Submitted for approval14 Aug, 10:31
Approved
Approvedby Muneer S. · 14 Aug, 14:05 — recorded on the order
Received
Goods received21 Aug — two stock lots opened
Additional costsPO-0341 · shown per currency
Shipping
BlueRoute Logisticssea freight, Bandar Abbas → Nhava Sheva
$ 850.00USD
Customs
Sharma Clearing Co.duty & clearing agent charges
₹ 42,000.00INR
Transport
Highland Carriersport to Main godown
₹ 18,500.00INR
Costs by currencynever folded into the goods total
$ 850.00+ ₹ 60,500.00
Goods total · USD$ 12,400.00
Landed costs

Every landed cost, in the currency it was billed

Freight, transport, documentation, insurance, handling, customs and duty attach to the order itself — each one billed by its own partner, whether that is a courier, a clearing agent or any other business in your partner book, and each one in its own currency. The order's grand total stays a clean goods-only figure; the costs sit next to it as a per-currency breakdown, so a dollar order with rupee freight is never mashed into one misleading number.

  • Seven cost types: shipping, transport, documentation, insurance, handling, customs / duty, other
  • Billed-by partner snapshotted per cost — courier, clearing agent, transporter, anyone
  • Each cost in its own currency, shown as a per-currency breakdown
  • Goods total = quantity × unit cost, and nothing else — GST belongs to the purchase invoice
  • Money held in minor units, so totals reconcile to the paisa
Goods receipt

A goods receipt that opens the stock lot itself

Each order line already knows its inventory intent: open a new stock lot, or add to an existing one. When the approved order is received, every line lands in lot-tracked inventory at that moment — a new lot inherits the batch identity captured on the line, a top-up rolls the existing lot's moving-average cost, and the lot that was touched is written back onto the line so a later correction reconciles the right stock.

  • Batch identity per line: supplier lot number, manufacturing and expiration dates
  • New lot or top-up, chosen per line before the goods arrive
  • Deliver-to warehouse on the header, overridable line by line — one container, two stores
  • Custom fields on the line are snapshotted onto the freshly opened lot
  • Quantities in exact base units — grams for weight — so part-tins never drift
Receive orderPO-0341 · 21 Aug
New lot
Walnut kernels · light halvessupplier lot KWA-88 · exp Aug +1 yr · Cold store
+500.000 kg
Top-up
Mongra saffron · 250 g tinsinto lot SAF-2506 · moving-average cost rolled
+15.000 kg
Lots written back to the orderso a later edit reconciles the right stock
Order statusReceived
Order headerfrozen at save time
GSTIN 01AABCP…1ZX State Jammu & Kashmir Their ref Q-2608/22
SupplierPampore Growers Co-op · Srinagar
ContactBilal Dar · bilal@pamporegrowers.example · +91 60000 00000
Payment term“30 days from invoice” — label frozen on the order
Delivery term“Ex-works Srinagar” — admin-managed master data
Supplier management

Supplier management that never rewrites history

The moment an order is saved, it freezes a snapshot of the supplier — name, GSTIN, state, address — plus the contact person and billing address you chose from the supplier's book, and the labels of the payment and delivery terms. Rename the supplier, retire the contact, reword the term: every placed order still reads exactly as it read the day it was placed.

  • Supplier name, GSTIN, state and address snapshotted onto the order
  • Contact person and billing address chosen from the supplier's own records
  • Payment and delivery terms are admin-managed; their label is frozen per order
  • The supplier's own quote or order reference recorded alongside yours
  • Expected delivery date and free-form notes on the header
Send & attach

E-mail the PO to the supplier — PDF attached, nothing re-typed

Once an order is approved, one click opens a compose window pre-addressed to the supplier contact frozen on the order, with the subject, a courteous body and the order value already filled in — and the purchase order itself attached as a PDF, printed under the identity of the subsidiary that raised it. Supplier quotes, contracts and shipping documents can be attached to the order too, so the paper trail lives with the document it belongs to.

  • Compose pre-filled from the order: recipient, subject, body, order value
  • The PO travels as a PDF under the raising subsidiary's identity
  • Only an approved or received order can be sent — a draft never leaves the building
  • File attachments on the order for quotes, contracts and shipping papers
  • Every order gets its own document number, keyed to its order date
Send to supplierapproved orders only
Tobilal@pamporegrowers.example — the contact on the order
SubjectPurchase Order PO-0341
Body“Please find attached our purchase order PO-0341… Order value: USD 12,400.00.”
PDF
PO-0341.pdfattached automatically

“Nothing gets ordered without a second pair of eyes any more — and when the container lands, the stock lots are already waiting for it.”

See it on your own suppliers. Book a 30-minute demo — no credit card, no obligation.
Money & precision

Exact quantities, honest money

A purchase order is a financial commitment. The arithmetic underneath it is deliberately strict, so the number you approve is the number you meant.

Goods-only total
The order's grand total is the sum of quantity × unit cost across its lines — nothing else. GST is calculated on the purchase invoice raised from the received order, and additional costs stay in their own per-currency breakdown, so no figure hides inside another.
Grams are canonical
Weight-based lines are stored in grams, the exact base unit — order 12.5 kg or 250 g and the total is computed from an exact integer, never a rounded float.
Priced per your unit
A unit cost is quoted per its own basis — per kilogram, per gram, per piece — independent of the unit the quantity was typed in, and the two are dimension-checked before a line will save.
Minor units
Every amount is held in minor units (paise, cents), so line totals, the goods total and the cost breakdown reconcile exactly — in any currency the order or its costs are billed in.
Sold by area too
Goods priced by area — carpets, textiles — carry width, height and piece count per line, with the derived area as the priced quantity, exact at any scale.
Everything included

The complete capability list

No feature tiers hiding the approval workflow behind an upgrade. This is what the purchasing module does.

Order lifecycle

The state machine every order moves through.

Draft → Pending approval → Approved → ReceivedCancellable at any open stage; closed once received or cancelled.
Separate submit and approveTwo actions, so a review step is built into the document itself.
Approver recordedName and timestamp stamped onto the order at approval.
Receive gateOnly an approved order can be received into stock.
Row-locked transitionsA concurrent duplicate receive or cancel fails cleanly.
Document numberingEvery order numbered by your scheme, keyed to its order date.

Order content

What a line can carry, beyond product and price.

Product lines with SKU & HSNFrozen from the catalogue at save time.
Exact base-unit quantitiesGrams for weight — fractional kilos without rounding drift.
Price basis per lineUnit cost quoted per kg, per g or per piece, dimension-checked.
Batch identitySupplier lot number, manufacturing and expiration dates per line.
Packaging & pallet snapshotsPackaging, pallet and pallet count frozen onto the line.
Packing detailsPack count, gross weight and free-text remarks per line.
Per-line warehouseA line can deliver to its own site, falling back to the header.
Custom fieldsYour own attributes per line — grade, origin, container number.

Money & landed costs

What the order costs, and in which currency.

Goods-only grand totalSum of quantity × unit cost, in minor units. No tax on orders.
Additional costsShipping, transport, documentation, insurance, handling, customs / duty.
Billed by any partnerCourier, clearing agent, transporter — snapshotted per cost.
Per-currency breakdownEach cost keeps its own currency, never folded into the goods total.
Multi-currency ordersThe order itself is placed in the currency you buy in.
Invoice from order or lineRaise the GST purchase invoice from the whole order or a single line.

Supplier & communication

The people on the other side of the order.

Supplier snapshotName, GSTIN, state and address frozen at save time.
Contact & billing addressChosen from the supplier’s book, snapshotted onto the order.
Frozen term labelsAdmin-managed payment and delivery terms; the label sticks to the order.
Supplier referenceTheir quote or order number recorded alongside yours.
E-mail with PDFCompose pre-filled from the order; the PO travels as a PDF.
AttachmentsQuotes, contracts and shipping papers filed on the order.
Multi-subsidiaryEach order raised under a subsidiary, which drives the printed identity.
Permission groupsComposable rights — raising an order is not the same as approving one.
Not an island

Purchasing is wired into the rest of your trade

A purchase order is only trustworthy when the stock, the invoice and the reports are consequences of it — not copies of it.

Inventory

Receiving opens or tops up the batch-tracked lot — see how lots work.

Purchase invoicing

Raise the GST invoice from the received order, whole or line by line — billing & invoicing.

Reports & analytics

Purchase spend, supplier and cost views over the same live data — reports & analytics.

Partners

Suppliers, couriers, clearing agents and transporters, each with contacts and terms.

Multi-subsidiary

Each business unit raises its own orders under its own printed identity.

Users & permissions

Composable permission groups — the buyer and the approver hold different rights.

Analytics assistant

Ask “what did we buy from Pampore Growers this quarter?” in plain English.

Custom fields

Your own attributes on orders and lines, defined by your admin, no release needed.

Who it's for

Trades where the purchase is the risk

If a single order can tie up a month of working capital, the approval, the landed cost and the receipt deserve better than a chat thread.

Importers & exporters

Foreign-currency orders with rupee clearing charges — kept apart, per currency, per partner.

Wholesale distribution

High-frequency replenishment where an unapproved order is margin quietly leaking.

Dry fruits, nuts & spices

Every consignment has a lot number and a shelf life — captured on the order line, inherited by the stock.

Commodities by weight

Gram-exact quantities and per-kg pricing, so a 12.5 kg part-order totals exactly.

Carpets & textiles

Lines priced by area, with width, height and piece count on the order itself.

Seasonal buyers

Big pre-season commitments that deserve a recorded approval, not a remembered one.

FAQ

Questions buyers actually ask

What kind of business is this purchase order software built for?

Wholesalers, distributors, importers and exporters who buy physical goods in bulk — usually by weight, often across borders — and need each order approved, sent to the supplier and received into stock without re-typing anything. It is not a retail procurement portal.

How does the PO approval workflow work?

A purchase order starts as a draft, is submitted for approval, and sits in Pending approval until someone approves it — the approver’s name and the approval timestamp are recorded on the order. Only an approved order can be received into stock or e-mailed to the supplier, and any open order can still be cancelled.

Can the person who raises an order also approve it?

Submitting and approving are two separate actions, and access is governed by composable permission groups — so you can give buyers the right to raise and submit orders without the right to approve them, putting a second pair of eyes on every commitment if that is how you want to run it.

How are landed costs like freight and customs handled?

Additional costs attach to the order itself: shipping, transport, documentation, insurance, handling, customs or duty — each billed by its own partner (a courier, a clearing agent, a transporter, anyone in your partner book) and each in its own currency. They are shown as a per-currency breakdown next to the order and are never silently folded into the goods total.

What happens when a purchase order is received?

Receiving pushes each line into inventory at that moment: a line either opens a new stock lot carrying the batch identity captured on the line — supplier lot number, manufacturing and expiration dates — or tops up an existing lot, rolling its moving-average cost. The lot that was touched is written back onto the line, so a later correction reconciles the right lot.

Does it support foreign-currency purchasing?

Yes. Every order carries its own currency, and each additional cost carries its own currency too — so an order in dollars with freight in rupees stays exactly that, with money held in minor units so totals reconcile to the paisa or cent.

Can I e-mail the purchase order to my supplier from the app?

Yes. Once an order is approved (or received), a compose window opens pre-addressed to the supplier contact frozen on the order, with the subject, a courteous body and the order value filled in — and the purchase order attached as a PDF.

What about payment and delivery terms?

Payment and delivery terms are managed by your admin as master data, and the label is frozen onto the order the moment it is saved — so renaming “Net 30” next year never rewrites what last year’s orders said.

Book a demo

Walk one order from draft to stock

Thirty minutes, your suppliers, your goods. We will raise a purchase order, route it through approval, attach the freight and clearing costs, and receive it into a stock lot in front of you. We usually reply within one business day.

Already a customer? Log in to your back office.

No spam. We'll only use your details to arrange the demo.