Rundocs › Vendors & Purchasing

Purchase orders

Last updated 2026-08-17

A purchase order is how you restock from a vendor. Draft it, send it, receive it when the truck shows up.

In the POS mode, open the Orders left tab (that's where every PO lives).

The Orders list

The top-tab strip on Orders is the PO lifecycle, left to right. Each tab is a stage a PO moves through.

Rundoo Orders page showing the PO lifecycle tabs and a list of purchase orders with their status and amounts
  • New (the empty builder); start a fresh PO here.

  • Drafts (in-progress POs saved but not yet submitted to the vendor).

  • Ordered, sent to the vendor, waiting on the truck.

  • Received (stock is in); invoice details still to record.

  • Vouchered (invoice recorded; ready to be paid). Kicks the PO over to your accounting side. See Vendor invoices for what the invoice form is doing.

  • Paid (marked paid).

  • Voided (canceled before completion).

  • Buyers list. Products on an in-flight PO that were triggered by a Special order on a sale. See Special orders.

Each tab shows a live count of POs in that state.

Step 1: Start a new order

Open the New top tab (or click Orders in the left sidebar, it lands you here by default). You'll see the PO transaction-builder: Order from on the left, product search in the middle, totals on the right, and the action cluster at the bottom.

Orders page showing the New tab with vendor selection, shipping details, product search, and order totals

The Order from dropdown is the only required field to get started. Pick a vendor and the builder unlocks. Side-panel fields appear, product search becomes active, and the Order button on the bottom right lights up once the cart has a line.

⚠️

Rundoo doesn't flag missing fields when you click Order or Save draft on an empty PO. The button just does nothing. If nothing happens when you click, double-check you've picked a vendor and added at least one product.

Step 2: Pick a vendor

Click Select vendor and type to search. The dropdown matches on vendor name. Don't see the vendor you want? They probably haven't been added yet. See Vendors to create one.

Orders page showing the "Order from" dropdown with a vendor selected

Once selected, the side panel fills in:

  • Order method (how this PO will actually get to the vendor (email, print, etc.)). Defaults to the vendor's configured method. See Step 4.

  • Ship to, the location the stock is coming to. Defaults to your current location; switch if you're ordering for another store.

  • Requested delivery date, a target date for the vendor. Defaults to ASAP.

  • Generate order, a Dooey button that proposes an order for you. Click it and a modal opens where you pick one of three algorithms (Replenishment, Min & Max, or Predictive), then review and narrow the proposed products before they land on the cart. See Generate order: Replenishment, Min & Max, and Predictive below.

  • Select shipment (for split shipments across vendor warehouses). Most POs only have one shipment; leave it alone unless you need to split.

💡

If your vendor is one of Rundoo's Vendor Catalogs (Benjamin Moore, Do It Best, True Value, Orgill) the builder reads live cost and availability straight from the catalog feed. Benjamin Moore specifically has its own order flow that pulls live availability from BM's ordering system and handles their SKU structure natively. See Benjamin Moore orders.

Step 3: Add products

Click Search for a product and start typing. Match on SKU, name, or vendor SKU. Use the quantity stepper to the right of the search box to set how many before clicking Add, or just type the number into the line's QUANTITY cell after it's on the cart. The product-search box also accepts barcode scans. If you've got the catalog in front of you and a scanner at the counter, scanning a UPC drops the matching product onto the cart without typing.

Rundoo Orders page showing a new order form with customer details and a product list containing one item

Each line fills the table with PRODUCT, COST, QUANTITY, and SUBTOTAL columns.

  • COST is the unit cost Rundoo will bill the vendor at. Defaults to the product's vendor cost. Click edit under the cost to override for this PO (contract pricing, one-off spiff).

  • QUANTITY is how many units you're ordering. The stepper increments by one; click in and type for larger numbers.

  • SUBTOTAL updates live as you change cost or quantity.

  • add note lets you attach a line-level note for the vendor (e.g. "substitute OK" or a customer name for a special order). Notes appear on the emailed/printed PO.

Generate order: Replenishment, Min & Max, and Predictive

The Generate order Dooey button opens a modal with three algorithms to choose from. Pick one at the top, set its options, then click Review products.

Generate order modal with the Replenishment, Min & Max, and Predictive algorithm tabs, a Weeks selector, and the Review products button
  • Replenishment reorders exactly what you sold. Set Weeks (call it N) and Rundoo proposes, per product, the quantity you sold over the last N weeks. Simple and fast, with no growth or seasonal math.

  • Min & Max tops your shelf back up. Every product at or below its per-location Min threshold (set on the product's Inventory tab) is included and ordered up to its Max, in multiples of its Case Quantity. Faster to set up, but ignores velocity: a fast mover and a slow mover with the same Min/Max get the same suggestion. There's no Weeks input for this one.

  • Predictive is a year-over-year forecast that blends growth and seasonality. You set Weeks on the modal (call it N), the number of weeks of cover you want. For each product, Rundoo first measures your recent growth: units sold in the last N weeks this year divided by units sold in those same N weeks one year ago. It then applies that growth factor to what you sold in the next N weeks last year, the same calendar window you're about to order for, so the season is already baked in. The suggested quantity is (units sold in the next N weeks last year) x (units sold in the last N weeks this year / units sold in those same N weeks last year), rounded up to the product's Case Quantity so you don't order partial cases. Because every term needs a full year of history, Predictive only suggests a quantity for products that sold in all three windows. Newer products are skipped, and Min & Max is the better fit for them.

Every algorithm also carries an Include products where this vendor is an additional vendor checkbox, on by default, so products where this vendor is a backup (not the primary) supplier are considered too.

Replenishment is quickest when you just want to rebuy what moved. Predictive suits paint and hardware where velocity matters. Min & Max fits slow-moving SKUs where you want a fixed shelf level. You choose per order in the modal, the default selection is Replenishment. The Generate orders when below min stock toggle in Product settings controls the exact point at which Min & Max flags a product (at its min vs strictly below its min).

Narrow the order before it's created

Whichever algorithm you pick, Review products doesn't drop the proposal straight onto the cart. It opens a product grid so you can review and trim the suggestion first, then click Generate order to push what's left onto the PO.

Generate order review grid listing the proposed products with Sort, Show/hide, and Filter controls above the table

Use Sort to reorder the list, Show/hide to change which columns show, and Filter to cut the proposal down. Filter is the one that matters for large orders: filter the proposed products by Department, Class, Fineline, or Product tag so you can generate an order for just one part of your catalog at a time instead of the whole thing at once. Only the products still showing when you click Generate order land on the PO.

Step 4: Choose how to send the order

The Order method dropdown on the left panel decides how the PO reaches the vendor when you click Order:

  • EDI, only appears for vendors with an active EDI integration paired (Orgill, Benjamin Moore via the BM order flow, True Value, Do It Best). Sends the PO directly through the vendor's electronic-ordering pipe, which is faster and more reliable than email for vendors that support it.

  • Email. Rundoo emails the PO PDF to the vendor's configured Orders email address (shown under the vendor dropdown, e.g. orders@gurney.com).

  • Mark ordered (doesn't send anything externally); the PO moves into Ordered state on your side so you can track it, but you're responsible for getting the order to the vendor yourself (a phone call, a print + fax, etc.).

⚠️

No Orders email set on the vendor + no EDI = no Email option. When the vendor has neither an EDI integration nor an Orders email configured, the Order button shows a yellow banner reading "This vendor has no Orders email set up. Add one in Vendors > {Vendor} > Settings, or use Mark ordered instead." Only Mark ordered and Receive work in that case. Add the vendor's orders email at Vendors → the vendor's Settings tab to unlock Email.

The exact list depends on what the vendor has configured. Change the default order method at the vendor level in Vendors.

Step 5: Place the order

The action cluster at the bottom right has four terminal verbs for a PO:

Order form's bottom section with order notes, total summary, and action buttons: Void, Save draft, Receive, Order
  • Void (cancel the PO). Available on drafts and Ordered POs. Once a PO is Received, Vouchered, or Paid, the button is gone. See "Voiding, canceling, or undoing an order" below for how to back out a received PO.

  • Save draft . Stash the PO in the Drafts tab without sending anything. Safe to come back to later.

  • Receive (skip the "send to vendor" step and mark the stock as received immediately). Useful when the truck showed up without a PO on the books and you're backfilling.

  • Order, the primary action. Sends the PO to the vendor per the Order method above and moves the PO into the Ordered tab.

Click Order when the cart is right. Rundoo fires the email or print job, drops a green confirmation banner at the bottom of the screen, and moves the PO into Ordered.

Receiving a PO

When the truck arrives, open the PO from the Ordered tab and click Receive to log what actually showed up. You have two paths, depending on whether the shipment was complete.

Orders page, Received tab, showing a purchase order with product details and invoice information fields
  • Receive and close. Every line got what you ordered (or you're done ordering the shortage elsewhere). The PO moves to Received, stock counts update, and the QUANTITY column shows each line as "N of N" received.

  • Receive and backorder. Part of the shipment came in; you want Rundoo to keep the rest on the PO. Edit each line's received quantity to what actually arrived; Rundoo keeps the remaining units as backordered on a new shipment so you can receive them when they land.

The Received detail view is also where you log the vendor invoice (Invoice date, Due date, Invoice Number, and the Pay to vendor). Once the invoice details are complete, Voucher at the bottom right moves the PO into the Vouchered tab, which is where your accounting side picks it up. If the invoice doesn't match what you received (wrong cost, missing discount, credit owed) see Order receipts for how to record the adjustment.

💡

Receiving also updates on-hand inventory. If you receive 24 units of a product, your count for that location jumps by 24 the moment you click Voucher (or Save on the received PO).

⚙️

Default the receive form to zero (Admin setting). By default, opening an Ordered PO to receive pre-fills each line with the ordered quantity, so cashiers confirm what came in. Some stores prefer the inverse, start every line at 0 and have staff type in what actually arrived. Toggle Start all Ordered Orders at zero quantity to receive in Admin > Product under the Order product settings section. With it on, the receive view opens with every QUANTITY cell at 0 until staff fills it in.

Freight charges and PO-level discounts

Freight, surcharges, and invoice-level discounts are recorded against the PO itself, not pushed into each line's unit cost. On a received PO, use Add fee or discount in the Order details panel to layer the charge onto the PO total. The amount flows through to your accounting side as part of the PO's COGS when you voucher, it doesn't pro-rate across the line items to change what each product's unit cost becomes.

If you want the freight or discount reflected in the per-unit landed cost on a specific line, edit that line's COST cell on the receive view directly. See Order receipts for the full receive-time cost adjustment flow, and Cost method for how unit cost is tracked on each product.

Drop-shipping to a customer

Some vendors will ship directly to your customer's job site instead of to your store. That's a drop-shipment, and you set it up on the PO by changing the Ship to field.

Click the Ship to dropdown on the left side-panel and pick Use custom address, then fill in the address Rundoo should send the vendor. The Name line is a good place to put the customer or job name, or the customer's PO number, whatever helps the vendor's receiving team identify the shipment. Everything else on the PO works the same way: pick products, send the order, receive when the stock lands at the destination.

⚠️

Sign in under the location where the original sale was rung. When a drop-shipment is tied to a customer sale (a Special order, for example), the PO's owning location should match the sale's location. That's how Rundoo keeps the customer's history, cost, and invoicing aligned. If you're ordering from a different store than the sale was rung at, sign out and sign back in at the right location first.

One drop-shipment per PO. If a single customer has stock coming from two vendors, that's two separate POs, each with its own custom Ship to address.

Voiding, canceling, or undoing an order

To undo a purchase order (void it, cancel it, or back out an order you've already received), the path depends on what state the PO is in. Click Void on a draft or Ordered PO to cancel it. The PO moves to the Voided tab and no stock is affected (an Ordered PO hasn't taken in any stock yet, so voiding it just cancels the order). Once a PO is Received, Vouchered, or Paid, the Void button is gone, because stock or accounting has already moved. After that you undo it by backing it out (below), not by voiding.

💡

A one-click way to void a received order is a popular feature request. Want this? Vote for it on the Idea board at rundoo.nolt.io/265.

Backing out an Ordered-state PO (the order was sent to the vendor but no truck has arrived yet): the simplest path is to click Void on the PO. It moves to the Voided tab and no on-hand stock is affected. If you'd rather keep the PO on the books as a zero receipt instead of voiding it, receive it with Set quantities to 0 at the top of the line list, then click Receive and close. Rundoo treats every line as zero-received and closes the PO out without affecting on-hand stock. Either way, call or email the vendor separately to cancel, Rundoo doesn't notify them.

Backing out (undoing) a Received-state PO (stock already landed and on-hand is updated): to undo a received order, say you received it against the wrong vendor or received it by mistake, create an offsetting receipt with negative quantities for the lines coming back out of inventory, or duplicate the PO with the negative quantities on each line and receive that. The original PO stays where it is; the offsetting one cancels its inventory effect. See Order receipts for the receive-time mechanics.

💡

Ordered and Received POs are editable. Open the PO and click edit to correct a line's quantity or cost, fix the vendor invoice details, or add a fee or discount, then click Save. Use this to fix a mistake on the order itself. Voiding (drafts and Ordered POs) and the offsetting-receipt path above are for canceling or reversing an order, not for a small correction.


On mobile

The Rundoo POS mobile app's Orders bottom-tab shows the same POs that live on the web's Orders surface, scoped to the signed-in staff's location. It's read-focused, drafting a new PO and emailing/EDI-sending it still happens on the web.

Rundoo mobile app Orders page displaying order statuses with counts and a New order button

The Orders tab lists every status row in the PO pipeline (Drafts, Ordered, Received, Vouchered, Paid, Voided) each with a live count. Tapping a row drills into POs in that status. The blue New order button at the bottom starts a new PO directly from mobile, no need to go back to the web.

💡 Receiving a PO on mobile is the killer feature here. Stand next to the truck, scan products in, increment received quantities without going back to the desk. That subset of actions is enabled even on read-focused tabs.