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.createpermission.
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:
| Status | Meaning |
|---|---|
| Draft | Not sent yet. |
| Sent | Waiting for vendor confirmation. |
| Confirmed | Vendor agreed to the order. |
| In production | (Optional) Vendor is making it. |
| Shipped | On the way. |
| Receiving | At least one line has been partially received. |
| Received | All lines fully received. |
| Closed | Reconciled and finalized. |
| Cancelled | Killed. |
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.