Sage 300 Sales Order Import with Order Entry Import Templates from Customer PO PDFs

Sage 300 O/E Order Entry imports orders from a two-part file, Orders and Order_Details, joined by ORDUNIQ.

PDF, JPG, PNG, BMP, HEIC, TIFF

Submit your purchase orders

PDF, scan, or email attachment
Every order line captured
Header and detail rows kept together
Plans from $49 a month

Overview

Sage 300 O/E Order Entry imports orders from a two-part file, Orders and Order_Details, joined by ORDUNIQ. Upload the purchase order your customer emailed and get the customer PO number, dates and every line with item, unit and quantity as rows you drop into that template.

Why customer orders still get retyped into Sage 300

The Order Entry import is fast once the file is right. Building that file from a buyer PDF is the slow part, and it lands on the order desk every morning.

The import reads files, not documents

O/E Order Entry accepts Excel or CSV laid out as Orders and Order_Details. A purchase order printed by a buyer ERP has to become those rows first, and today someone types them.

One order lives in two places

Header fields go on the Orders sheet and lines on Order_Details, tied together by ORDUNIQ. Get the link wrong on one row and a line lands on the wrong customer order.

A re-import adds, it never fixes

The standard import on a transaction screen only inserts. Correct a typo and import the file again, and Sage 300 creates a second order instead of updating the first.

Buyer part numbers are not yours

Customers order by their own codes and their own units. Each line needs your item number and an order unit Sage 300 recognizes, and a 60-line release is 60 chances to key one wrong.

From customer PO to order entry import rows

Upload the purchase order your customer sent. The AI reads the header and every line and returns a spreadsheet with one row per line and the header values beside each, which you split into the Orders and Order_Details layout your import template expects.

Reads any PO layout

No per-customer template. Digital PDFs, scans and photographed pages from any buyer system come back in the same column layout.

Every line in order

A 60-line order returns 60 rows in document order, so numbering LINENUM 1 to 60 under one ORDUNIQ takes a fill-down, not retyping.

Customer PO number kept

The buyer PO number lands in its own column, ready for the PO number field on the order header and for finding the order when the buyer calls.

Dates and units separated

Order date, requested ship date and the unit of measure on each line come back as separate values, ready for ORDDATE, EXPDATE and ORDUNIT.

How sales orders get into Sage 300 without typing

Sage 300 has one native bulk route for customer orders, and it sits on the Order Entry screen in O/E Transactions. The standard import there reads Excel, CSV and other structured files, maps each column to a field and writes the order through the same logic a person uses at the keyboard. Sage installs ready-made layouts in the ImportTemplates folder under the Sage 300 program directory, and the quickest way to build your own is to export a single order with only the fields you need, then reuse that file as the template. What the import cannot do is read the document your customer sent. A purchase order emailed as a PDF has to become rows before Sage 300 can see it, and today that is the part the order desk types.

Orders and Order_Details, joined by ORDUNIQ

A Sage 300 order is a header in the OE0520 view and lines in OE0500. In an Excel import those are two sheets, Orders and Order_Details. On the Sage community, the minimum layout that works is ORDUNIQ, CUSTOMER and LOCATION on Orders, and ORDUNIQ, LINENUM, ITEM, ORDUNIT and QTYORDERED on Order_Details. ORDUNIQ is not the order number. It is a key that exists only to tie lines to their header inside the file: start at 1, add 1 for each order, and give every detail line the ORDUNIQ of the order it belongs to. Sage 300 assigns the real order number when the import posts. Number LINENUM in sequence inside each order and do not be surprised when the import rewrites the values to multiples of 32, which is how Sage spaces lines so new ones can be inserted between them later.

One CSV file or two

CSV has no sheets, so you have two choices. Build separate files for Orders and Order_Details, or put both in one file with a RECTYPE column: both header rows at the top, then data rows marked 1 for an order and 2 for a detail line. The extractor returns one row per line with the PO header repeated beside it, which is the easiest shape to split either way. Filter the first row of each PO to build the Orders block, keep every row for Order_Details, and copy the same ORDUNIQ down each group.

Why a corrected file creates a duplicate order

The standard import on a transaction table only adds records. Master files such as customers and items can be updated by import, but orders cannot, so a file you fix and import again lands as a second order. Delete or correct the bad order on screen first, then import only the orders that failed. Connector tools can insert, update and delete orders through the same views, but the import built into Order Entry does not. TYPE decides what kind of document arrives: 1 is an active order and 4 a quote, so a missing or wrong TYPE value can quietly put customer orders on the quote list.

Customer part numbers, units and prices

Buyers order by their own part numbers and their own units. Keep one mapping sheet per account from the buyer code to your item number and order unit, because the same customer sends the same codes every month, and the sheet turns into the cheapest piece of automation on the order desk. ORDUNIT has to be a unit already set up for the item in Inventory Control, or the line stops. If you want the price the buyer printed instead of your price list, community answers point to carrying it in the PRIUNITPRC column on the detail line, then checking the first imported order on screen. If the order desk also handles purchasing, the buying side runs through the same tool on our Sage 300 purchase order import page, and if you are still pricing the system itself, our Sage 300 pricing breakdown covers licensing, modules and implementation.

Where PurchaseOrders fits, and where it stops

PurchaseOrders reads the customer PO, a digital PDF, a scan or a photographed page, and returns the header and every line as Excel, CSV or JSON. You rename the columns once to the field names in your import template, save that header row, and every later batch drops straight in. It does not install inside Sage 300, does not run the Order Entry import and does not create the order. For volume, bulk purchase order upload takes up to 50 files at a time, and the purchase order API returns the same fields as JSON for an integrator posting orders through code. Running Sage 100 at another site? The same workflow is on Sage 100 sales order import, and the full intake process across systems is on sales order entry automation.

Customer PO field to Sage 300 order entry field

What comes off the customer document and which Order Entry import field it usually fills. Confirm field names against an export from your own Sage 300 version.

Sage 300 field Sheet Where it comes from Notes
ORDUNIQ Orders and Order_Details Not on the document. Number each order 1, 2, 3 in the file. Links lines to their header
CUSTOMER Orders The buying company, matched to your customer number. Customer must exist
TYPE Orders Not on the document. 1 for an active order. 4 creates a quote
PONUMBER Orders The purchase order number the customer printed. Search key when the buyer calls
ORDDATE Orders The PO date on the document. One value per order
EXPDATE Orders The ship or delivery date the buyer asked for. Lines carry their own EXPDATE too
LOCATION Orders Your warehouse, not on the document. Required on the header
LINENUM Order_Details Line order on the document, 1 to n. Rewritten to multiples of 32
ITEM Order_Details The customer part number, mapped to your item. Description will not match
ORDUNIT Order_Details The unit of measure printed on each line. Must exist for the item
QTYORDERED Order_Details Ordered quantity on each line. One row per line

How the import runs

Four steps from the customer attachment to orders in Sage 300 O/E.

1

Upload the customer PO

Drop in the PDF, the scan or the email attachment. Up to 50 files per bulk upload, with no per-customer setup.

Tip: Portal downloads and forwarded attachments work the same way.

2

Review and Map

Check the header and lines on screen, then map the buyer to your customer number and each buyer part code to your item and order unit.

Tip: Keep the mapping sheet per account; it barely changes month to month.

3

Split into orders and order_details

Download Excel, take the first row of each PO for Orders, keep every row for Order_Details, and fill ORDUNIQ down each group.

Tip: Or add a RECTYPE column and import one CSV.

4

Test one order, then load

Import a single two-line PO, open it in Order Entry, then load the full batch.

Tip: Check TYPE, the PO number and both lines before the big run.

Why order desks use this in front of Sage 300

1
Row per line item
3
Export formats, Excel, CSV and JSON
50
POs per bulk upload

Security and privacy

  • Bank-grade TLS encryption in transit
  • Your PO data is never sold or shared
  • US-based cloud infrastructure

Sage 300 sales order import questions, answered

Open Order Entry in O/E Transactions and use the import on that screen. The file has two parts, Orders for the header and Order_Details for the lines, linked by ORDUNIQ. At minimum carry ORDUNIQ, CUSTOMER and LOCATION on Orders, and ORDUNIQ, LINENUM, ITEM, ORDUNIT and QTYORDERED on Order_Details.

ORDUNIQ is a link key used inside the import file, not the order number. Number each order 1, 2, 3 on the Orders sheet and give every detail line the ORDUNIQ of its order. Sage 300 assigns the real order number when the import posts.

Not with the standard Order Entry import. Imports into transaction tables only add records, so a corrected file creates a second order. Master files such as customers and items can be updated by import. Delete or fix the bad order on screen, then import only the orders that failed.

Sage installs sample layouts in the ImportTemplates folder under the Sage 300 program directory, including Order Entry. You can also export one existing order from the Order Entry screen with only the fields you need and reuse that file as your template.

Order Entry spaces detail lines in multiples of 32 so new lines can be inserted between them later. Number LINENUM 1, 2, 3 inside each order in your file and let the import rewrite them. The order of lines on the document is kept.

Yes. Put both header rows at the top of the file and add a RECTYPE column, with 1 on rows that are orders and 2 on rows that are order detail lines. The alternative is two separate CSV files, one for Orders and one for Order_Details.

Not through the Order Entry import, which reads structured files such as Excel and CSV. A customer purchase order that arrives as a PDF has to become rows first, typed by hand or extracted, before Sage 300 can create the order.

No. PurchaseOrders reads the customer purchase order and returns structured data as Excel, CSV or JSON. It does not install in Sage 300 and does not run the import or create orders. You load the rows through your Order Entry import, the API or your own integration.