Purchase orders

A purchase order (PO) is a formal order from you to a vendor for stock. Hilal’s PO module tracks the whole lifecycle — drafted, sent, confirmed by the vendor, shipped, received, and closed — and ties received stock back into your warehouse counts.

In this guide:

  • Create a PO
  • Send it to your vendor
  • Track status updates
  • Receive stock against a PO
  • Close and reconcile

Prerequisites

  • At least one vendor configured. See Vendor management.
  • At least one warehouse to receive into.
  • purchasing.create permission.

Step 1: Create a PO

Go to Inventory → Purchase Orders and click New PO.

Fill in:

  • Vendor — picked from your vendor list.
  • Receiving warehouse — where stock will land.
  • Expected ship date / Expected delivery date — used by forecasting and dashboard rollups.
  • Lines — SKU + quantity + unit cost. The unit cost defaults to the SKU’s standard cost; override per line if pricing differs.
  • Currency — defaults to the vendor’s currency.
  • Notes — appears on the PDF sent to the vendor.

Hilal calculates totals (subtotal, tax if applicable, shipping, grand total).

Step 2: Send it to your vendor

Click Send to vendor. Hilal generates a PDF and (optionally) emails it to the vendor’s contact email. Status flips to Sent.

If you prefer to handle vendor comms outside Hilal, click Mark as sent instead — it just flips the status without emailing.

Step 3: Track status updates

A PO moves through these states:

StatusMeaning
DraftNot sent yet.
SentWaiting for vendor confirmation.
ConfirmedVendor agreed to the order.
In production(Optional) Vendor is making it.
ShippedOn the way.
ReceivingAt least one line has been partially received.
ReceivedAll lines fully received.
ClosedReconciled and finalized.
CancelledKilled.

Update status manually or — if you’re using the vendor portal feature — let the vendor update directly.

Step 4: Receive stock against a PO

When stock arrives at your warehouse, click the PO → Receive stock. Enter actual quantities per line.

Hilal:

  • Adds the received quantities to the destination warehouse.
  • Logs lead time (days from PO sent to PO received) on the vendor.
  • Updates PO status (Receiving if partial, Received if all lines complete).

Step 5: Close and reconcile

Once everything is received, click Close PO. Hilal:

  • Locks the PO (no more edits).
  • Posts the final cost to the SKUs you received (used for COGS).
  • Updates the vendor’s measured lead time.

If there were shortages or damaged goods, the Reconcile option lets you write off the difference or open a vendor dispute.

Troubleshooting

  • PDF email didn’t reach the vendor. Check spam, then resend from the PO detail page. If the vendor’s domain blocks Hilal, mark as sent and email the PDF manually.
  • Stock didn’t update after receiving. Make sure the Receive-stock step was completed (status moved to Receiving or Received), not just status flipped manually.
  • Vendor’s lead time chart is empty. Lead times only populate from POs that went all the way to Received. Drafts and cancelled POs don’t count.

Related articles