Set Up PO Fields and Line Items for Purchase Orders
Configure purchase order fields in the dashboard — define PO fields, line items, and ship-to addresses for procurement workflows.
Ready to set this up? Sign up for PerfectParser and get 20 free credits — no credit card required.
What this guide helps you do
This guide shows how to configure a purchase order parser in PerfectParser, define order and line-item fields, run a test batch, and export procurement data. Start without an AI prompt when you want maximum field discovery, then add the prompt below only if auto-detect needs help finding PO-specific labels.
Why purchase orders are hard to parse
Purchase orders are frequently confused with invoices during setup — both contain vendor names, dates, and line items, but the PO number, ship-to address, and payment terms carry different meaning. Internal PO templates often split billing and shipping addresses across separate blocks, and some formats embed the PO number in a barcode while printing a different reference in the header. Line item tables may use SKU, part number, and description in three adjacent columns with inconsistent headers. Multi-page POs repeat header metadata while line items continue, which can duplicate totals if the schema captures summary fields from every page. Getting po_number distinct from any invoice reference on the same document is essential for downstream matching workflows.
Recommended Fields
We suggest configuring the following schema fields for your Purchase Order Parser to capture all essential order data.
| Field Name | Type | Description |
|---|---|---|
po_number | Text | The unique purchase order reference number. |
po_date | Text | The date the order was created. |
vendor_name | Text | The company or supplier receiving the order. |
customer_name | Text | The customer company placing the order. |
billing_address | Text | The billing address for the invoice. |
shipping_address | Text | The physical destination address for the delivery. |
payment_terms | Text | The payment terms agreed (e.g., Net 30, COD). |
total_amount | Number | The overall total value of the order. |
line_items | Table | Table containing sku, description, quantity, unit_price, and total for each row. |
AI Prompt (Optional)
Use this only when you want to guide auto-detect toward a specific set of fields.
If you want PerfectParser to discover additional fields on its own, leave the AI Prompt (Optional) box blank for the first pass, review the detected schema, then add a prompt only if you need tighter consistency.
When you do use a prompt, copy and paste the following instructions into the AI Prompt (Optional) field during setup:
Set up this parser in the dashboard
Create a parser
Go to Parsers → New Parser in the dashboard. Give it a name like "Purchase Order Parser" and optionally select the document category.
Upload a sample document
Drag and drop a representative purchase order (PDF, PNG, or JPEG). Use a real PO from your procurement flow — not an invoice — so the AI learns PO-specific field placement.
Detect fields or use standard fields
Paste the AI Prompt from the section above into the AI Prompt (Optional) box if you want tighter field mapping, then click Auto-Detect. To discover more fields automatically, leave the prompt blank and click Auto-Detect. Or skip auto-detect and add fields manually using the Recommended Fields table above.
Review and save your schema
Check that po_number is captured separately from any invoice or quote reference. Confirm billing_address and shipping_address are distinct Text fields. Verify line_items is a Table with SKU stored as Text. Click Save.
Run a test batch
Navigate to Bulk Extraction, choose how your files are organised, upload a small test set of POs, and click Extract All Files. Review the results in Batch History and export to CSV or Excel.
Common mistakes
- Using an invoice as the sample document — PO numbers and ship-to blocks will not match production PO layouts.
- Merging bill-to and ship-to into one address field, which breaks receiving and freight routing downstream.
- Storing SKUs in the line items table as Number instead of Text when part numbers contain letters or leading zeros.
- Capturing
total_amountfrom a page footer on multi-page POs without confirming it is the order total, not a page subtotal.
Next steps
Test your first extraction free — sign up for PerfectParser, no credit card needed.
FAQs
Do I need a sample purchase order to set up this parser?
Yes. Upload a PO that matches the format your vendors or internal team generates — including how line items and addresses are laid out. PO layouts differ from invoices, so use an actual PO, not an invoice, as your sample.
How do I handle ship-to vs bill-to on multi-address POs?
Define separate Text fields for billing_address and shipping_address in your schema. During review, confirm auto-detect did not merge both into one block. Add field descriptions that name the label used on your POs (e.g. 'Deliver To' vs 'Bill To').
How many credits does setup and a test extraction use?
Parser setup is free. Each PO page processed costs 1 credit. Single-page POs use 1 credit; multi-page POs with continued line items use 1 credit per page. New accounts include 20 free credits for testing.
Looking for product features and use cases?