Purchase Orders & Vendor Management
Overview
The Purchase Orders system gives you full control over parts procurement. You can create professional purchase orders, send them to vendors through multiple channels, track deliveries, calculate true landed costs, and update your inventory automatically -- all from within your autoGMS dashboard.
This guide covers everything from creating your first order to receiving stock with accurate cost data.
What you can do:
- Create purchase orders with line items from your existing inventory or brand-new parts
- Manage a complete vendor directory with contact details, payment terms, and performance statistics
- Send orders via email, WhatsApp, or your default mail client with pre-filled professional templates
- Request quotes from vendors (zero-price POs are automatically treated as quote requests)
- Track delivery status through the full lifecycle from draft to completed
- Record landed costs (shipping, customs, handling, insurance) to calculate the true cost of every part
- Receive stock with a guided 4-step wizard covering document uploads, quantity verification, cost allocation, and inventory details
- Update inventory automatically when you finalise a purchase order
- Allocate items to specific jobs so parts costs flow directly into job costing
- Handle multi-currency orders with exchange rate conversion at receiving time
- Apply vendor credits to reduce outstanding balances on purchase orders
- Auto-create continuation POs for items not received in full (backorders)
- Bulk export selected POs as PDF or Excel
- Import vendor price lists to keep cost data current
How to Access
- Open your autoGMS dashboard.
- Select your garage from the sidebar.
- Click Purchase Orders in the navigation menu.
You will land on the Purchase Orders page, which has three tabs: Purchase Orders, Vendors, and Price Updates.
Good to know: Purchase Orders is a feature-gated module. It is available to users with the following roles: organisation owner, garage owner, and manager. If you do not see it in your sidebar, contact your organisation owner to enable the feature.
Page Layout: Three Tabs
| Tab | What It Shows |
|---|---|
| Purchase Orders | Your main view for managing all purchase orders: search, filter, create, send, receive, and complete orders. |
| Vendors | Your vendor directory and vendor credits. Has two sub-views: Directory (vendor list) and Credits (vendor credit notes). |
| Price Updates | Vendor price imports -- bulk-upload vendor price lists to keep your cost data current. |
The Purchase Orders Tab
This is your main view for managing all purchase orders.
Filters and Controls
At the top of the page you will find:
- Search bar -- Search by PO number, item name, or notes.
- Status filter chips -- Quick filters for All, Draft, Delivery in progress, and Completed. Each chip shows a count of matching orders.
- Vendor filter -- A dropdown to show only orders from a specific vendor.
- Date range picker -- Filter orders by creation date range.
- Sorting -- Click the PO Number, Total, or Expected Delivery column headers to sort.
- Reset button -- Clear all filters and sorting with one click.
Orders are sorted with a smart priority system: drafts appear first, followed by actionable items (sent, awaiting delivery, partially received), then completed orders. Within the same status, actionable orders show oldest first (most urgent), while completed orders show newest first.
The Purchase Orders Table
Each row in the table displays:
| Column | What It Shows |
|---|---|
| PO Number | The auto-generated order number (e.g., PO-ATG-2026-0001), split into prefix and sequence number for readability. |
| Status | A colour-coded label showing the current stage: Draft, Sent to supplier, Delivery in progress, or Completed. |
| Vendor | The primary vendor name, plus a count if the order involves additional vendors. |
| Parts | The first item name, plus a count if there are additional items. |
| For | Whether items are for general stock or allocated to a specific job (with a link to the booking). |
| Credit note | Whether the vendor has available credit notes that could be applied to this order. Shows "Available" with a pulsing indicator, or "None". |
| Total | The order total. If vendor credits have been applied, shows the credit amount and remaining balance. If landed costs exist, shows a subtotal/fees breakdown. |
| Expected Delivery | When the items are expected to arrive. |
Row Actions
Each row has contextual action buttons that change based on the order's status:
| Order Status | Available Actions |
|---|---|
| Draft (has items) | Open -- View/edit the order. Send to supplier -- Opens the send dialog. |
| Sent | Open -- View the order. Start receiving -- Opens the Receiving Wizard. |
| Awaiting delivery / Partially received | Open -- View the order. Update receiving -- Opens the Receiving Wizard to record more received items. |
| Received (all items received) | Open -- View the order. Complete order -- Finalise the order. |
| Received (some items not received in full) | Open -- View the order. Complete and reorder missing items -- Closes this PO and auto-creates a continuation PO for outstanding quantities. |
| Completed | Open -- View the read-only detail page. |
On smaller screens, these actions collapse into a dropdown menu.
Bulk Selection and Export
You can select multiple POs using the checkboxes on each row. When POs are selected, bulk action buttons appear:
- Export PDF -- Download all selected orders as individual PDF files.
- Export Excel -- Download all selected orders as individual Excel files.
Mobile View
On mobile devices, the table switches to a card layout. Each card shows the PO number, status, allocation (stock or job), part name, vendor, credit note status, expected delivery date, total amount, and action buttons.
Purchase Order Detail Page
Clicking Open on any purchase order (or clicking the row) navigates to a dedicated read-only detail page. This page provides a comprehensive view of the order:
Order Pipeline
A horizontal stepper at the top shows the order's progress through four stages:
- Draft -- Order created, not yet sent.
- Sent -- Dispatched to vendor.
- Receiving -- Goods arriving (covers awaiting delivery, partially received, and received states).
- Completed -- Order finalised and closed.
Completed stages are highlighted in green, the current stage in dark, and future stages in grey.
Stats Strip
Four key metrics displayed below the pipeline:
- Line items -- Number of items on the order.
- Received -- Receiving progress as a percentage, with a progress bar.
- Order total -- The full order cost including landed costs.
- Amount due -- Net payable after vendor credits (highlighted in green when fully credited).
Line Items Table
A detailed table of all items on the order, showing:
- Item name and SKU
- Vendor name
- Quantity ordered
- Quantity received (colour-coded: green when fully received, amber for partial, grey for none)
- Unit price
- Line total
Cost Summary
A breakdown of all costs:
- Items subtotal
- Each landed cost entry (shipping, customs, clearing, handling, insurance, other) with description
- Grand total
Finance Card
Appears when there are vendor credits applied or foreign exchange variance:
- Final order cost
- Vendor credits applied (shown as a deduction)
- FX variance (if the PO currency differs from the garage currency)
- Net amount due
- A list of all applied credit notes with vendor name, note, amount, and date
Order Details
Shows currency, expected delivery date, sent date, and a list of all vendors on the order with their contact details.
Notes and Documents
If notes were added to the order, they appear in their own card. Uploaded documents (invoices, packing slips, delivery notes, photos) are displayed in a gallery grid with thumbnails for images and file icons for other document types.
Download PDF
Click the Download PDF button in the page header to generate and download a PDF of the purchase order.
Key Concepts
PO Number Format
Every purchase order receives an auto-generated number in the format:
{PREFIX}-{YEAR} / {SEQUENCE}
For example: PO-ATG-2026-0001, PO-ATG-2026-0002, and so on. The prefix is based on your organisation code, and the sequence increments automatically within each year.
Customer-Facing Statuses
The system uses simplified status labels to keep things clear:
| Status Label | Underlying States | Meaning |
|---|---|---|
| Draft | Open (not sent) | The order has been created but not sent. You can freely edit all details. |
| Sent to supplier | Sent | The order has been dispatched to vendors. It is now locked for editing. |
| Delivery in progress | Sent, Awaiting Delivery, Partially Received, Received | Goods are in transit or partially arrived. |
| Completed | Closed | The order is finalised. Inventory has been updated and costs applied. |
Stock vs. Job Allocation
Every line item has an allocation type:
- For Stock (default) -- Items go into your general inventory when received. They are available for any future job.
- For Job -- Items are reserved for a specific booking. When the order is finalised, parts are added to that job's parts list with the correct landed cost. You can search confirmed, in-service, or on-hold bookings when selecting a job.
Landed Costs
Landed costs are the additional expenses involved in getting parts to your garage beyond the vendor's price:
| Type | Examples |
|---|---|
| Shipping | Freight charges, courier fees, delivery costs |
| Customs | Import duties, tariffs |
| Clearing | Port clearing charges, broker fees |
| Handling | Loading/unloading, warehouse handling |
| Insurance | Shipment insurance premiums |
| Other | Any costs not covered above |
When you finalise a purchase order, landed costs are distributed proportionally across all received items based on their value. This gives you the true unit cost of each part.
Example: You order 100 oil filters at 10 AED each (1,000 AED subtotal). Shipping costs 50 AED and customs 30 AED, totalling 80 AED in landed costs. The final unit cost becomes 10 + (80 / 100) = 10.80 AED per filter.
Multi-Currency Support
Purchase orders support AED, USD, EUR, GBP, and SAR. If the PO currency differs from your garage's currency, you will enter the exchange rate during the receiving step. The rate and timestamp are stored for audit purposes. Any FX variance is displayed in the Finance card on the detail page.
Quote Requests
When a purchase order has a total of zero (no prices entered), autoGMS automatically treats it as a quote request. The email and WhatsApp templates are adjusted accordingly, asking vendors for pricing rather than confirming an order. This lets you use the PO workflow to request quotes before committing to a purchase.
Step-by-Step Guide
Creating a Purchase Order
- On the Purchase Orders tab, click the New Purchase Order button.
- A new PO is created with an auto-generated number and "Draft" status.
- The PurchaseOrderSheet opens on the right side of the screen.
In the header area, set:
- Expected Delivery Date -- When you expect the items to arrive.
- Currency -- Select from AED, USD, EUR, GBP, or SAR (defaults to your garage's currency).
- Payment Terms -- Your agreed terms with the vendor.
- Notes -- General notes about the order (up to 2,000 characters).
Adding Line Items
-
In the PO detail sheet, click Add Line Item.
-
Fill in the following fields:
Item Search -- Start typing to search your existing inventory. Select a match to auto-fill item details and last known pricing. If the item is new, type the name and it will be created during finalisation.
Vendor -- Select from the dropdown or type a new vendor name to create one inline. The system checks for duplicates (case-insensitive) to prevent creating the same vendor twice.
Quantity and Unit Type -- Enter the quantity (minimum 1) and select the unit: pieces, litres, metres, rolls, kilograms, gallons, sets, bottles, tubes, or other.
Unit Price -- The cost per unit from the vendor. The line total (quantity multiplied by unit price) is calculated automatically. Leave as zero to send as a quote request.
Allocation -- Choose For Stock to add items to general inventory, or For Job to allocate to a specific booking. Selecting "For Job" opens a booking picker where you can search confirmed, in-service, or on-hold bookings.
Notes (optional) -- Specific notes for this line item (e.g., "Must be OEM part").
Emergency Flag (optional) -- Toggle on for urgent purchases that may carry different pricing.
-
Click Add to save the line item.
-
Repeat for each item you need to order. The running total updates in real time.
Good to know: A single purchase order can contain items from multiple vendors. Each line item is associated with its own vendor. When you send the PO, autoGMS collects all unique vendor contact details and sends to each one.
Sending a Purchase Order to Vendors
When your PO is ready:
-
Click the Send to supplier button on the PO row or from the PO detail sheet.
-
The Send dialog opens with multiple delivery channels:
Gmail Web Compose -- Opens Gmail in your browser with a pre-filled professional email containing your garage details, vendor information, line items, and totals.
Outlook Web Compose -- Opens Outlook on the web with the same pre-filled template.
Default Mail Client -- Opens your system's default email application via mailto link.
WhatsApp -- Opens WhatsApp with a formatted message. Phone numbers are validated before sending. If the vendor has no phone number on file, you are prompted to add one.
-
The system automatically collects vendor email addresses and phone numbers from all vendors on the order.
-
After sending, the PO status changes to Sent and the send timestamp is recorded. The order is now locked -- you cannot add, edit, or remove items.
Good to know: autoGMS records who sent the PO, when it was sent, and via which channel. This creates a complete audit trail. If you need to send the order again, use the Resend action.
Receiving a Purchase Order
When your order arrives, use the 4-step Receiving Wizard:
- Find the PO in your list (it should be in Sent or Delivery in progress status).
- Click Start receiving or Update receiving from the row action buttons.
Step 1: Upload Documents
Upload documents that came with the delivery:
- Invoice -- The vendor's invoice
- Packing Slip -- The itemised packing list
- Delivery Note -- Delivery confirmation paperwork
- Photos -- Photos of the received goods
Click Upload for each document type and select the file. Multiple documents can be uploaded per type.
Step 2: Verify Quantities
For each line item, enter the quantity you actually received:
- The form pre-fills with the ordered quantity as a default.
- Adjust downward if you received less than ordered.
- Each line shows a progress indicator comparing received vs. ordered.
- Set quantity to 0 for items not received at all.
Good to know: You do not need to receive everything at once. If a partial shipment arrives, enter only what you received. The PO status will change to "Delivery in progress" and you can receive the rest later.
Step 3: Add Landed Costs
Record the additional costs of getting these parts to your garage:
- Click Add Cost and select the type (Shipping, Customs, Clearing, Handling, Insurance, or Other).
- Enter the amount and optionally add a description and receipt.
- Repeat for each additional cost.
If the PO currency differs from your garage's currency, an exchange rate field appears. Enter the current conversion rate (e.g., 1 USD = 3.67 AED). The rate is stored with a timestamp for your records.
Step 4: Review and Inventory Details
For each received item (quantity greater than 0), fill in the inventory details:
| Field | Description |
|---|---|
| Category | Parts, Fluids, Consumables, Tools, etc. |
| Brand | The manufacturer or brand name. |
| Description | A description of the item. |
| Selling Price | The price you charge customers (retail/job price). |
| Minimum Threshold | The stock level at which you want a reorder alert. |
| Unit Type | Pieces, litres, kilograms, etc. |
Each item has an Update Inventory checkbox (enabled by default). When checked, the item will be added to or updated in your inventory stock when finalised.
Review all details, then click Complete Receiving.
Good to know: If a line item matches an existing inventory item, many fields are pre-filled from the existing record. You only need to update what has changed.
Completing a Purchase Order
Once all items have been received:
-
The PO should show the Complete order action button.
-
Click Complete order to finalise.
-
autoGMS processes the order:
- Final unit costs are calculated -- Each item's vendor price plus its proportional share of landed costs.
- Inventory is updated -- Received quantities are added to stock levels and costs are updated.
- Vendor records are updated -- Statistics (total orders, total spent, average lead time) are recalculated.
- Job items are allocated -- For "For Job" items, parts are added to the linked booking's parts list with the final cost.
- The PO is closed -- Status changes to "Completed" and the order becomes read-only.
Handling Partially Received Orders
If some items were not received in full, the action button changes to Complete and reorder missing items. Clicking this:
- Closes the current PO with the items that were received.
- Automatically creates a new continuation PO containing only the outstanding items (the difference between ordered and received quantities).
- Shows a confirmation with the new PO number.
This saves you from manually recreating orders for missing items.
Good to know: There is also a Close without inventory update option if you have already managed inventory separately and just want to close the PO for record-keeping.
Managing Vendors
The Vendor Directory
Switch to the Vendors tab, then select the Directory sub-view. This shows your complete vendor list in a searchable, filterable table.
| Column | What It Shows |
|---|---|
| Vendor Name | The vendor's business name, with code underneath if set. |
| Contact | Contact person, email address, and phone number. |
| Payment Terms | The agreed payment terms (e.g., "COD", "Net 30"). |
| POs | How many purchase orders you have placed with this vendor. |
| Items | Total number of items ordered from this vendor. |
| Spent | The cumulative value of all orders placed with this vendor. |
| Status | Active or Inactive. |
You can search by vendor name and filter by status (All, Active, Inactive).
Adding a Vendor
- On the Vendors tab (Directory sub-view), use the Add Vendor button.
- Fill in the vendor details:
| Field | Required | Description |
|---|---|---|
| Name | Yes | The vendor's business name. Must be unique within your garage. |
| Code | No | A short reference code (auto-generated if left blank). |
| Contact Person | No | Your primary contact at the vendor. |
| No | Used when sending POs by email. | |
| Phone | No | Used when sending POs via WhatsApp. |
| Address | No | Full address: street, city, state, postal code, and country. |
| Payment Terms | No | Agreed terms (e.g., "COD", "Net 30", "2/10 Net 30"). |
| Currency | No | The vendor's preferred currency. |
| Tax ID | No | The vendor's tax or VAT identification number. |
- Click Save.
Good to know: You can also create vendors on the fly while adding line items to a purchase order. Type a new vendor name in the vendor dropdown and it will be created automatically.
Editing a Vendor
- Find the vendor in the Directory.
- Click the Edit button on their row.
- Update any fields and save.
Deactivating a Vendor
If you no longer order from a vendor but want to keep their history:
- Find the vendor in the list.
- Click the Deactivate button on their row.
- Confirm the deactivation.
- Inactive vendors will not appear in the vendor dropdown when creating new POs, but all historical data is preserved.
Good to know: Active vendors show a "Deactivate" button. Inactive vendors that have no orders show a "Delete" button for permanent removal.
Vendor Statistics
Each vendor's record automatically tracks:
- Total Orders -- How many POs you have placed
- Total Items -- How many individual items you have ordered
- Total Spent -- The cumulative value of all orders
These statistics update automatically as you create and finalise purchase orders.
Vendor Credits
Switch to the Vendors tab, then select the Credits sub-view. Vendor credits let you record credit notes from vendors (e.g., for returned items, overcharges, or agreed discounts) and apply them to purchase orders to reduce the amount due.
How Vendor Credits Work
- Create a credit note in the Credits sub-view, specifying the vendor, amount, currency, and reason.
- When viewing a purchase order from that vendor, you can apply available credits to reduce the balance.
- Applied credits are shown in the PO's finance breakdown (on the detail page) and in the table's Total column.
- The detail page shows a complete list of applied credits with vendor name, amount, and date.
You can navigate to the credits page directly from a PO context, with vendor and PO details pre-filled for convenience.
Vendor Price Imports
Switch to the Price Updates tab. Vendor Price Imports let you bulk-upload vendor price lists to keep your cost data current. Instead of manually updating prices item by item, you can import a spreadsheet from your vendor and autoGMS will match items and update costs automatically.
Importing a Price List
- Click Upload Price List in the page header.
- Download the template CSV if you need it.
- Upload the vendor's price list as a CSV file.
- The system parses the file and attempts to match each row to an existing inventory item by SKU or name.
- Review the matches: the system shows which items matched, which are new, and which could not be matched.
- Confirm the import to apply the price updates.
What Gets Updated
- Cost Price -- The vendor's unit price is updated on the matched inventory item.
- Primary Vendor -- If specified, the vendor association is updated.
- Price History -- A record of the previous price is kept for audit purposes.
Good to know: Vendor Price Imports do not change your selling prices. Only cost prices are updated. Review your margins after an import and adjust selling prices as needed.
Tips & Best Practices
Creating Orders
- Search your inventory first. When adding line items, always search for existing items before typing a new name. This prevents duplicates and keeps your inventory clean.
- Use job allocation for known repairs. If you are ordering parts for a specific job, set the allocation to "For Job" and link the booking so costs flow directly into job costing.
- Add notes for clarity. Use line item notes to specify part numbers, fitment requirements, or quality standards.
- Set expected delivery dates. This helps track vendor lead times and alerts you to overdue orders.
- Use quote requests for pricing. Leave unit prices at zero to send the PO as a quote request. The email and WhatsApp templates will automatically ask the vendor for pricing.
Vendor Management
- Keep contact details current. Accurate email addresses and phone numbers are essential for the multi-channel sending feature.
- Review vendor statistics periodically. If a vendor is underperforming, the PO and spending data helps you make informed decisions.
- Use consistent naming. The system prevents duplicates with case-insensitive matching, but consistent naming makes your directory easier to browse.
- Record vendor credits promptly. When a vendor issues a credit note, record it in the Credits sub-view so it can be applied to future orders.
Receiving and Costs
- Receive promptly. Log received items as soon as they arrive to keep inventory levels accurate.
- Record all landed costs. Shipping, customs, and handling fees affect your margins. Including them gives you the true cost picture.
- Upload delivery documents. Vendor invoices, packing slips, and photos create a complete paper trail linked to the PO and any related jobs.
- Check quantities carefully. If you received less than ordered, enter the actual quantity. Use the "Complete and reorder missing items" action to auto-create a continuation PO for outstanding items.
- Set selling prices based on landed costs. Your customer price should account for the final unit cost, not just the vendor's price.
Frequently Asked Questions
Can a single purchase order include items from multiple vendors?
Yes. Each line item is associated with its own vendor. When you send the PO, autoGMS collects all unique vendor contact details and sends the relevant information to each one.
Can I edit a purchase order after sending it?
No. Once a PO is sent, it is locked to preserve what was communicated to the vendor. If you need changes, create a new PO or contact the vendor directly.
Can I receive items in multiple batches?
Yes. During the receiving wizard, enter only the quantities you actually received. The PO status changes to "Delivery in progress" and you can run the wizard again when the remaining items arrive.
What happens to my inventory when I complete a purchase order?
For each line item with "Update Inventory" enabled: if the item exists, the received quantity is added to your stock and the cost is updated; if it is a new item, a new inventory record is created with the details you entered during receiving.
How are landed costs distributed across items?
Proportionally by value. An item representing 50% of the PO's subtotal absorbs 50% of the landed costs.
What is the difference between completing and closing?
Complete order runs the full workflow: calculates final costs, updates inventory, updates vendor statistics, and closes the PO. Close without inventory update simply marks the PO as closed without touching inventory -- use this if you have already handled stock updates manually.
What happens when I complete an order with missing items?
If some line items were not received in full, the action changes to Complete and reorder missing items. This closes the current PO and automatically creates a new PO containing only the outstanding quantities. You will see a confirmation with the new PO number.
Can I delete a purchase order?
Only draft POs can be deleted. Once a PO has been sent, it cannot be deleted to preserve your ordering history and audit trail.
How does job allocation work?
When a line item is set to "For Job" and linked to a booking, completing the PO adds the item to the job's parts list with the final unit cost (including landed costs). Receiving documents are also linked to the job.
What currencies are supported?
AED, USD, EUR, GBP, and SAR. If the PO currency differs from your garage's currency, you enter the exchange rate during the receiving step. Any FX variance is displayed on the detail page.
Who can access purchase orders?
Users with the organisation owner, garage owner, or manager role. Technicians do not have access to the Purchase Orders page, but they can see job-allocated parts from their job detail view.
How is the PO number generated?
PO numbers follow the format PO-{ORG}-{YEAR}-{SEQUENCE}. The sequence increments automatically and resets each year.
What are vendor credits?
Vendor credits are credit notes issued by your vendors (for returns, overcharges, or agreed discounts). You record them in the Vendors > Credits sub-view and can apply them to POs to reduce the amount due. Applied credits show up in the PO's finance breakdown.
How do quote requests work?
When a PO has no prices (total is zero), autoGMS treats it as a quote request. The email and WhatsApp templates are adjusted to ask vendors for pricing rather than confirming an order. Once you receive quotes and enter prices, you can send the PO as a regular purchase order.
Can I download a purchase order as PDF?
Yes. On the PO detail page, click Download PDF in the header. You can also bulk-export selected POs as PDF or Excel from the main table using the checkboxes and export buttons.
Quick Reference
| What you want to do | Where to go |
|---|---|
| Create a new purchase order | Purchase Orders tab > New Purchase Order |
| Add items to an order | Open the PO > Add Line Item |
| Send an order to vendors | Row actions > Send to supplier |
| Request a quote from vendors | Create PO with zero prices > Send to supplier |
| Receive a delivery | Row actions > Start receiving (or Update receiving) |
| Add shipping/customs costs | Receiving Wizard > Step 3: Landed Costs |
| Complete and update inventory | Row actions > Complete order |
| Handle missing items | Row actions > Complete and reorder missing items |
| Close without updating inventory | PO detail sheet > Close |
| View order details, pipeline, and finance | Row actions > Open (navigates to detail page) |
| Download order as PDF | Detail page > Download PDF |
| Bulk export POs | Select POs with checkboxes > Export PDF / Export Excel |
| Add a new vendor | Vendors tab > Directory > Add Vendor |
| Manage vendor credits | Vendors tab > Credits sub-view |
| Check vendor performance | Vendors tab > Directory > view vendor stats |
| Import vendor prices | Price Updates tab > Upload Price List |
| Search for a specific order | Search bar (by PO number, item name, or notes) |
| Filter by status | Status chips: All, Draft, Delivery in progress, Completed |
| Filter by vendor | Vendor dropdown filter |
| Delete a draft order | Row actions (draft POs only) |