Purchase Orders: Import And Export Got A Real Upgrade
Purchase orders can now make a clean round trip through CSV. Both the import tool and the export tool got a pass so you can pull POs out of Endless, edit them, and feed the file back in without losing fidelity.
On import, the PO Number is now the key. A row whose PO Number doesn't exist creates a new PO; a row whose PO Number matches an active PO updates it; archived POs are rejected so an old one doesn't get quietly revived. Line items inside a PO match on Item SKU: quantity, unit cost, and lead time update on existing lines, new SKUs add a line, and lines you didn't reference are left alone. The header is editable too — supplier (matched against your active suppliers by name), terms, instructions, key dates, financial status, and cost allocation status — and you can submit a header-only row to update or create a PO without listing any items. Imports fail loudly when something doesn't add up (unknown supplier, invalid date, conflicting headers, duplicate SKU in a single import). Columns the importer doesn't recognize are skipped instead of failing the file, listed back to you in the import result.
On export, there's a new Export dialog matching the orders and inventory flow. Exports honor the filters you have set on the Purchase Orders list, so what you see is what you get, and you can pick between an import-ready export — round-trippable through the importer — and a complete export that includes every field on the PO.
Behind these two flows, the PO Number is now a real natural key: a simple format (letters, numbers, _, -, .) and unique within a company across active and archived POs. Duplicates can't be created, imported, or generated.