Customer purchase order PDF to sales order

Read customer POs from email, match each line to your item, unit, and price, and stage the sales order. An order entry rep approves exceptions. Price or quantity conflicts never post alone.

PO-417 to sales order (sample)
2 to review
PO lines to order lines
Customer partOur itemCheck
TP-3SAMPLE-100Ready
TP-7No matchRep matches
TP-9SAMPLE-300Unit converted
TP-12SAMPLE-400Price 5.10 vs 4.85

Lines 2 and 4 wait for a rep. Sample data.

sortoi-po-417.xml (one line, abbreviated)
<SalesOrders>
<Orders>
<OrderHeader>
<CustomerPoNumber>PO-417</CustomerPoNumber>
<Customer>000417</Customer>
</OrderHeader>
<OrderDetails>
<StockLine>
<CustomerPoLine>1</CustomerPoLine>
<LineActionType>A</LineActionType>
<StockCode>SAMPLE-100</StockCode>
<OrderQty>24</OrderQty>
<OrderUom>EA</OrderUom>
<Price>4.20</Price>
</StockLine>

One route shown: SYSPRO SORTOI, abbreviated.

Sample data. Every name and number here is made up.

How it runs.

Customers send PDFs, not EDI. Reps rekey part numbers, convert units, and catch price mismatches by eye while the queue grows.

  1. PO email

    PDF purchase orders from your order inbox.

    Your data
  2. Match the lines

    Customer parts, ship-to, units, and contract prices checked against your ERP.

    Automated
  3. Rep approves exceptions

    Anything unmatched or conflicting waits for a person.

    A person
  4. Stage in ERP

    Clean orders staged through your ERP's import route.

    Automated

Prophet 21 / SYSPRO SORTOI / Oracle Order Import / Business Central API / Email

The rules and limits.

Line mapping
Each PO line, customer part, quantity, unit, and price maps to one order line. Customer parts need your cross-reference.
SYSPRO SORTOI
Takes CustomerPoNumber, CustomerPoLine, StockCode, OrderQty, OrderUom, and Price. Process can validate only. Any error rejects the whole document.
Oracle Order Import
Loads OE_HEADERS_IFACE_ALL and OE_LINES_IFACE_ALL. Validate mode checks without posting. Orders with errors stay in the interface tables.
Business Central
The salesOrder resource carries externalDocumentNumber and status. salesOrderLine carries lineObjectNumber, quantity, unitOfMeasureCode, and unitPrice.
Prophet 21
Optimizely's connector guide names an Order Submit API and the Scheduled Import Service Manager. Epicor's own reference needs a customer login, so we confirm the route first.

What a person does.

  • A rep approves every price, quantity, or part conflict.
  • A rep matches any customer part with no cross-reference.
  • Your team decides which clean orders may post without review.

Where we stand: we have not shipped this for a distributor. It uses the same pattern as our document extraction and review-queue work.

Common questions.

Does this work with Prophet 21?+

We have not built it. Public material names the Scheduled Import Service Manager and APIs. Epicor's reference needs a customer login, so we confirm the route and your license first.

Will wrong orders post on their own?+

Price, quantity, and part conflicts wait for a rep. Where the ERP offers a validate step, as SYSPRO and Oracle do, it runs before import.

What if our ERP is not listed?+

The PO reading and line matching stay the same. Only the last step changes to your ERP's import route. We check its documentation and your license before committing.

Sources

General information, not legal, tax, or compliance advice. Rules change; confirm against the current source and your own advisers.

Bring us your version of this.

Intro calls are 30 minutes, free, and useful even if we never work together. We'll be honest about whether this is the right fit for your operations team.