Bulk Purchase Order Generator

A bulk purchase order generator turns one spreadsheet into many finished purchase orders at once: upload an .xlsx, .xls or .csv file and get back a ZIP holding one A4 PDF per PO number, each with its vendor, an optional ship-to address, a delivery date and your terms. Download the template, fill in one row per line item, upload it, and generate the ZIP. No sign-up, nothing uploaded — the file is read right here in your browser.

  1. Get the template

    Download the Excel template, then fill in a row for each line item. Reuse the same PO # on several rows to put multiple items on one purchase order. Add a Ship To address only for orders that go somewhere other than your business address.

  2. Upload your file

    No file chosen

    Accepts .xlsx, .xls or .csv — read in your browser, never uploaded.

  3. Generate

How to generate purchase orders from Excel

Click Download Excel template to get a spreadsheet with the right columns and example rows. Fill in one row per line item — the columns cover your business (the buyer), the vendor, where to deliver, the PO number and dates, the item description, quantity and agreed unit price, plus optional discount, tax and notes. To put several items on one purchase order, give those rows the same PO #. Save the file, upload it here, and click Generate to download a ZIP containing one PDF per purchase order.

Different suppliers, different delivery addresses

Each purchase order carries its own vendor and, optionally, its own Ship To address. Order office supplies to head office, steel to a job site and stock to a warehouse from one spreadsheet: fill in Ship To Name and Ship To Address on the orders that need them and leave them empty on the rest — an empty ship-to is simply left off that PO. The Delivery Date column sets the date each supplier should deliver by.

What the template columns mean

The template has 18 columns, and only four of them are required: Vendor Name, Item Description, Qty and Unit Price. If any of those headers is missing, the upload is rejected with a message naming it. A purchase order is skipped — and listed as skipped in the summary — when it has no vendor name or no valid line items. The optional columns are PO #, Order Date, Delivery Date, Currency, Business Name, Business Details, Vendor Details, Ship To Name, Ship To Address, Discount, Discount Type, Tax Rate, Tax Label and Notes. Values that describe the whole order are taken from its first row. Dates can be written as YYYY-MM-DD or M/D/YYYY. Discount Type accepts % or percent for a percentage and anything else for a flat amount. Currency accepts USD, EUR, GBP, CAD, AUD, NZD, JPY, CNY, CHF, INR, SGD, ZAR, BRL or MXN; a blank or unrecognised code falls back to USD.

Nothing is uploaded

Your spreadsheet is read entirely in your browser — it is never sent to a server. The PDFs are built on your device by a self-hosted PDF engine and zipped locally. There is no row limit, no order limit and no sign-up; you get a single purchase-orders.zip with one A4 PDF per PO, each named after its PO number and vendor. Every purchase order is drawn by the same code as the Purchase Order Generator, so a bulk PO and a single one with the same details are identical.

Frequently Asked Questions

Is this bulk purchase order generator free?
Yes — the LK Forge Bulk Purchase Order Generator is completely free, with no sign-up and no limit on how many purchase orders you create. It runs entirely in your browser, so your spreadsheet and your suppliers' details are never uploaded to a server. The only practical ceiling is your device's memory, because the whole batch is built in the tab.
Can each purchase order ship to a different address?
Yes — fill in Ship To Name and Ship To Address on a PO's first row to deliver that order to a warehouse, job site or another office. Leave both empty and the Ship to block is left off that purchase order. Goods then go to the address in your business details.
Which spreadsheet columns are required?
Four columns are required: Vendor Name, Item Description, Qty and Unit Price. Everything else is optional, including PO #, Order Date, Delivery Date, Currency, Business Name, Business Details, Vendor Details, Ship To Name, Ship To Address, Discount, Discount Type, Tax Rate, Tax Label and Notes. If a required header is missing, the generator names it rather than producing a broken batch. Column order does not matter.
Do bulk purchase orders look the same as single ones?
Bulk purchase orders are drawn by the same renderer as the single Purchase Order Generator, so the layout, the vendor and ship-to blocks, the totals and the delivery date come out identical to a PO made one at a time with the same details. The only real difference is where the data comes from: a single PO is typed into the on-page form, while a batch is read from your spreadsheet's Vendor Name, Ship To and item columns. A logo you add before generating is applied to every purchase order in that batch, exactly as it would be on one PO.