PO field mapping basics
A mapping tells ProcuLink which column in your source file corresponds to each canonical purchase-order field. You build one mapping per buyer file shape.
Required fields
Every order must resolve these five canonical fields:
po_number— the unique order identifier from the buyer.line_no— the line index within the order, starting at 1.item_code— the SKU the supplier recognises.quantity— number of units, as an integer or decimal.unit_price— price per unit, before tax.
Optional fields like delivery date and currency are accepted but never required.
Start from a template or a suggestion
You rarely have to build a mapping from a blank form:
- Starter templates — the PO mapping editor has a one-click "Apply starter template" for common ERP exports (Erply and Directo). Apply one, then adjust the column names to match your real export.
- AI suggestions — given a sample file, ProcuLink can propose a full column-to-field mapping for you to review and correct. (Workspaces configured as no-egress skip this and use the manual editor — see how AI mapping suggestions work.)
Manipulators
When a source column doesn't match the canonical shape directly, attach manipulators. All eight:
Trim— drop leading/trailing whitespace introduced by Excel exports.Replace— substitute text, e.g. strip aSUP-prefix from item codes.DateFormat— convert a date between explicit formats, e.g.dd/MM/yyyy→yyyy-MM-dd.Concat— join named source columns with a separator, e.g. builditem_codefromprefix+code.Split— split on a delimiter and keep one piece, e.g. take the part before a/.Fallback— use the first non-empty value among several named columns.Multiply/Divide— scale a numeric value, e.g. convert price-per-100 to unit price.
Manipulators run in order, each transforming the previous result. They're forgiving by design: one that can't apply (a date that doesn't match the input format, a non-numeric value in Multiply) passes the value through unchanged rather than destroying it.
Beyond manipulators: Scriban expressions (advanced)
For logic a manipulator chain can't express — calculated values like {{ line.Quantity * line.UnitPrice }}, or combining order and line fields — the output mapping editor accepts free-form Scriban expressions and even a whole-document template. That's the escape hatch for a supplier's exact required structure; most mappings never need it.
Testing a mapping
After saving, upload a real PO file through /upload. Any line that fails to resolve appears in the Review screen as unresolved, with the source row visible so you can adjust the mapping and retry.
Need help? Email support@proculink.eu or see Troubleshooting common parse errors.