Import a Purchase Order from a CSV file
Import a Purchase Order from a CSV. Purpose. Bulk-create a Purchase Order by uploading a CSV file instead of entering each vendor, item, quantity, and cost manually. Flourish matches vendors and item…
Import a Purchase Order from a CSV
Purpose
Bulk-create a Purchase Order by uploading a CSV file instead of entering each vendor, item, quantity, and cost manually. Flourish matches vendors and items from the file and validates the data before creating the PO.
Prerequisites
- The vendor(s) in your CSV must already exist in Flourish as active vendors. Flourish does not match against inactive vendors.
- The item(s) in your CSV must already exist in Flourish.
- A CSV file with, at minimum, a vendor identifier, an item identifier, a quantity, and cost information (see the column reference below).
Import a Purchase Order
- Go to Inbound > Purchase Orders.
- Click Import Purchase Order, to the right of Create New Purchase Order. The Bulk Import Purchase Order modal opens and lists your active vendors for reference.
- Click Download template to get a blank CSV template, or use your own file formatted to match the column reference below.
- Fill in your CSV. Each row is one order line. Flourish groups rows by the Vendor column and creates one purchase order per distinct vendor in the file.
- Click Select file and choose your completed CSV.
- Click Validate & Import.
- If any rows fail validation, the Errors tab opens automatically. Review the listed errors, correct your CSV, and click Validate & Import again.
- Once validation passes, the Errors tab disappears and a confirmation screen displays, confirming the import succeeded.

CSV column reference
Column | Level | Description | Required |
Vendor | Header | Vendor Name, DBA, or License. Groups rows into purchase orders. Flourish matches against active vendors only; if more than one active vendor matches, the import fails with a "duplicate vendors detected" error. | Yes |
LineItem | Line | Item Name, Retail Display Name, SKU, or Part Number (falls back to the item's internal ID). | Yes |
LineStrain | Line | Strain Name or Abbreviation (falls back to the strain's internal ID). Required if the item requires a strain; if left blank and the item has a strain assigned, Flourish defaults to that strain. | If the item requires it |
LineQty | Line | Quantity. Must be greater than zero — a positive whole number for Each-based item UOMs, or a positive fractional amount for Weight- or Volume-based UOMs. | Yes |
LineUnitCost | Line | Cost per unit. | No |
LineTotalCost | Line | Total line cost. Used to calculate Unit Cost if Unit Cost is blank. | No |
Cost behavior: if you enter $0.00 in either cost column (with the other left blank or also $0.00), Flourish uses $0.00 as the line cost. Flourish only falls back to the item's configured cost when both LineUnitCost and LineTotalCost are left completely blank.
Common issues
- "duplicate vendors detected" — More than one active vendor matches the Name, DBA, or License value in your CSV. Vendor matching only considers active vendors; if you have multiple active vendors that could share a name, disambiguate using License or DBA instead of Name.
- Quantity validation errors — Check that quantities are greater than zero, whole numbers for Each-based items, and fractional amounts only for Weight- or Volume-based items.
- Cost defaults to item-level cost unexpectedly — Expected behavior when both LineUnitCost and LineTotalCost are left blank on a row.
- Errors tab doesn't clear — One or more rows still fail validation. Re-check the file against the column reference above and re-upload.
Related articles
How did we do?
Moisture Tracking