Skip to main content

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
  • Track delivery status through the full lifecycle from draft to closed
  • 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

How to Access

  1. Open your autoGMS dashboard.
  2. Select your garage from the sidebar.
  3. Click Purchase Orders in the navigation menu.

You will land on the Purchase Orders page, which has two tabs: Purchase Orders and Vendors.

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.


The Purchase Orders Page

Tab 1: Purchase Orders

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, Open, Sent, Received, and Closed. Each chip shows a count badge.
  • Date range picker -- Filter orders by creation date range.
  • Sort options -- Sort by PO number, created date, expected delivery date, or total amount.
  • Pagination -- 25 items per page with navigation controls.

Orders are sorted with a smart priority system: drafts appear first, followed by actionable items (sent, awaiting delivery, partially received), then completed orders.

The Purchase Orders Table

Each row in the table displays:

ColumnWhat It Shows
Created ByThe name and role of the user who created the order.
Created DateWhen the order was created.
Expected Delivery DateWhen the items are expected to arrive.
PO NumberThe auto-generated order number (e.g., PO-ATG-2026-0001).
PartsThe first item name and its vendor, plus a count badge if there are additional items.
AllocationWhether items are for general stock or allocated to a specific job (with a link to the booking).
TotalThe order total, with a fee breakdown shown if landed costs have been applied.
StatusA colour-coded badge showing the current status.

Row Actions

Click the actions menu on any row to access:

  • View / Edit -- Opens the PurchaseOrderSheet with full order details.
  • Send -- Opens the send dialog to dispatch the order to vendors.
  • Receive -- Starts the Receiving Wizard (available for sent orders).
  • Resend -- Re-sends a previously sent order to vendors.
  • Delete -- Removes the order. Only available for draft POs.

Tab 2: Vendors

This tab shows your complete vendor directory.

ColumnWhat It Shows
NameThe vendor's business name.
ContactContact person, email address, and phone number.
Payment TermsThe agreed payment terms (e.g., "COD", "Net 30").
POs PlacedHow many purchase orders you have placed with this vendor.
ItemsTotal number of items ordered from this vendor.
Total SpentThe cumulative value of all orders placed with this vendor.
StatusActive or Inactive.

You can search, filter, and sort the vendor list. Click any vendor row to edit their details.


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.

Purchase Order Statuses

StatusMeaning
DraftThe order has been created but not yet sent. You can freely edit all details.
SentThe order has been dispatched to vendors. It is now locked for editing.
Awaiting DeliveryThe order has been sent and you are waiting for goods to arrive.
Partially ReceivedSome line items have been received, but not all.
ReceivedAll items on the order have been received. Ready to finalise.
ClosedThe order is finalised. Inventory has been updated and costs applied. This is the terminal state.

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.

Landed Costs

Landed costs are the additional expenses involved in getting parts to your garage beyond the vendor's price:

TypeExamples
ShippingFreight charges, courier fees, delivery costs
CustomsImport duties, tariffs
ClearingPort clearing charges, broker fees
HandlingLoading/unloading, warehouse handling
InsuranceShipment insurance premiums
OtherAny 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.


Step-by-Step Guide

Creating a Purchase Order

  1. On the Purchase Orders tab, click the Create Purchase Order button.
  2. A new PO is created with an auto-generated number and "Draft" status.
  3. 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

  1. In the PO detail sheet, click Add Line Item.

  2. 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.

    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.

  3. Click Add to save the line item.

  4. 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:

  1. Click the Send button on the PO detail sheet or from the row actions menu.

  2. 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.

  3. The system automatically collects vendor email addresses and phone numbers from all vendors on the order.

  4. 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 from the row menu.

Receiving a Purchase Order

When your order arrives, use the 4-step Receiving Wizard:

  1. Find the PO in your list (it should be in Sent or Awaiting Delivery status).
  2. Click Receive from the row actions menu or PO detail sheet.

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 "Partially Received" and you can receive the rest later.

Step 3: Add Landed Costs

Record the additional costs of getting these parts to your garage:

  1. Click Add Cost and select the type (Shipping, Customs, Clearing, Handling, Insurance, or Other).
  2. Enter the amount and optionally add a description and receipt.
  3. 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:

FieldDescription
CategoryParts, Fluids, Consumables, Tools, etc.
BrandThe manufacturer or brand name.
DescriptionA description of the item.
Selling PriceThe price you charge customers (retail/job price).
Minimum ThresholdThe stock level at which you want a reorder alert.
Unit TypePieces, 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.

Finalising a Purchase Order

Once all items have been received:

  1. The PO should be in "Received" status.

  2. Click Finalise from the PO detail sheet.

  3. 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 "Closed" and the order becomes read-only.

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

Adding a Vendor

  1. Go to the Vendors tab on the Purchase Orders page.
  2. Click Add Vendor.
  3. Fill in the vendor details:
FieldRequiredDescription
NameYesThe vendor's business name. Must be unique within your garage.
CodeNoA short reference code (auto-generated if left blank).
Contact PersonNoYour primary contact at the vendor.
EmailNoUsed when sending POs by email.
PhoneNoUsed when sending POs via WhatsApp.
AddressNoFull address: street, city, state, postal code, and country.
Payment TermsNoAgreed terms (e.g., "COD", "Net 30", "2/10 Net 30").
CurrencyNoThe vendor's preferred currency.
Tax IDNoThe vendor's tax or VAT identification number.
  1. 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

  1. Find the vendor in the Vendors tab.
  2. Click their row or the edit action.
  3. Update any fields and save.

Deactivating a Vendor

If you no longer order from a vendor but want to keep their history:

  1. Find the vendor in the list.
  2. Toggle their status to Inactive.
  3. Inactive vendors will not appear in the vendor dropdown when creating new POs, but all historical data is preserved.

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
  • Average Lead Time -- Average days from order to delivery

These statistics update automatically as you create and finalise purchase orders.


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.

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's average lead time is increasing, consider alternative suppliers.
  • Use consistent naming. The system prevents duplicates with case-insensitive matching, but consistent naming makes your directory easier to browse.

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. The PO will move to "Partially Received" and you can receive the rest later.
  • 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 "Partially Received" and you can run the wizard again when the remaining items arrive.

What happens to my inventory when I finalise 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 finalising and closing?

Finalise runs the full workflow: calculates final costs, updates inventory, updates vendor statistics, and closes the PO. Close simply marks the PO as closed without touching inventory -- use this if you have already handled stock updates manually.

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, finalisation 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.

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.


Vendor Price Imports

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.

How to Access

  1. Go to the Purchase Orders page.
  2. Click the Vendor Price Imports tab.

Importing a Price List

  1. Click Import Vendor Prices.
  2. Download the template CSV if you need it.
  3. Upload the vendor's price list as a CSV file.
  4. The system parses the file and attempts to match each row to an existing inventory item by SKU or name.
  5. Review the matches: the system shows which items matched, which are new, and which could not be matched.
  6. 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.


Quick Reference

What you want to doWhere to go
Create a new purchase orderPurchase Orders tab > Create Purchase Order
Add items to an orderOpen the PO > Add Line Item
Send an order to vendorsPO detail sheet or row actions > Send
Resend a previously sent orderRow actions > Resend
Receive a deliveryRow actions > Receive (opens the 4-step wizard)
Add shipping/customs costsReceiving Wizard > Step 3: Landed Costs
Finalise and update inventoryPO detail sheet > Finalise
Close without updating inventoryPO detail sheet > Close
Add a new vendorVendors tab > Add Vendor
Check vendor performanceVendors tab > click vendor to see statistics
Search for a specific orderSearch bar (by PO number, item name, or notes)
Filter by statusStatus chips: All, Open, Sent, Received, Closed
Delete a draft orderRow actions > Delete (draft POs only)