WRAPTORHelp & Docs
The Wraptor handbook

Purchasing — purchase orders and vendors, wired straight into stock and spend

Who it's for

The owner or manager drafts orders, sends them to vendors, and approves the spend. Production staff receive shipments when they arrive — counting boxes is a stock job, not a money job, so receiving doesn't need billing access. Anyone with the Billing permission sees what each order booked, in Money → Expenses.

Where it fits

Purchasing sits on the supply side of production: material runs low → you order it → it arrives → stock goes up and the cost lands in your Expenses ledger, all in one motion. See workflow-map.md.

Overview

Two connected pieces:

  • Vendors — a proper record for each supplier (contact, phone, email, website, account number, address, notes). Purchase orders are addressed to them, and the vendor fields on expense forms autocomplete from this list.
  • Purchase orders — a numbered document (PO-0007) with lines, costs, shipping and tax. It moves Draft → Ordered → (Partially received) → Received, or Cancelled if nothing ever arrived. Lines usually link an inventory item, but ad-hoc lines (description + qty + cost) are fine for one-off buys.

The receiving step is the payoff: recording what arrived bumps the linked items' shelf quantities, can update their unit cost to what you actually paid, and books one Material expense for the value received — shipping and tax ride along with the first receipt. Ledger and shelf can never quietly disagree.

Screens & navigation

Shop → Purchasing (/shop?tab=purchasing)

  • Purchase orders — the 200 most recent orders with PO number, vendor, status chip, ETA, received progress (3/5 lines) and total. Filter chips: Open (default — Draft, Ordered and Partially received), Draft, Ordered, Partial, Received, All. Cancelled orders show only under All. Buttons: New order and Reorder low stock, the second with an amber badge counting the items at or under their minimum.
  • Vendors — the supplier list with contact, email, phone and open-PO counts, plus Add vendor and a pencil to edit. Inactive vendors stay listed (dimmed, marked inactive) for history but disappear from pickers.

PO detail (/purchasing/[id]) Vendor card, timeline (Created / Ordered / Expected / Received plus the note to vendor), the Lines table (item links, supplier SKUs, ordered vs received, unit cost, line total), and a Goods / Shipping / Tax / Total summary. The action bar changes with status:

  • Draft — Edit, PDF (carries a DRAFT watermark), Send to Vendor, Mark Ordered, Cancel order.
  • Ordered / Partially received — Receive Items, PDF, Resend to Vendor (Ordered only), and Cancel order while nothing has been received, or Close short once something has.
  • Received / Cancelled — read-only, PDF only.

Send to Vendor and Mark Ordered only appear for people with the Billing permission. Edit, Receive Items, Cancel order and Close short are Inventory work, checked when you press them. PDF is open to anyone who can open the page.

Capabilities

  • Draft an order — New order opens New Purchase Order: pick a vendor, add lines from inventory (description, unit and cost pre-fill from the item and stay editable) or leave a line on Ad-hoc (no inventory link) and type it yourself, then set an expected delivery date, shipping, tax, and a Note to vendor that prints on the PDF. Create Draft saves it and opens the order.
  • Reorder low stock — builds draft POs from everything at or under its minimum stock, grouped by each item's Preferred Vendor, with suggested quantities that restock to twice the minimum. Items with no preferred vendor (or whose preferred vendor is inactive) land in a No preferred vendor group; pick a vendor for it or uncheck those rows before Create Draft Order (the button reads Create N Draft Orders when more than one vendor is involved). A single draft opens straight away; several stay on the list, and the toast names each one and its vendor.
  • Send to vendor — emails a shop-branded PDF of the PO to the vendor's email address, subject "Purchase order PO-0007 from {your shop}", with an optional message, and marks a draft Ordered in the same step. Mark Ordered does the same without the email, for phone and portal orders. Resend to Vendor sends the same PDF again on an already-ordered PO without changing its status.
  • Receive items — per-line quantities with a Fill remaining button. Partial receipts are normal; the order flips to Partially received and the rest stays open. Before you confirm, the dialog states exactly what the event will book — "Books $X to Expenses (Material)", plus a line saying when shipping and tax ride along. There is a Note (optional) field for the packing-slip number, and — whenever a received line links an inventory item with a cost — a checkbox, on by default, that updates each received item's unit cost to this order's price, which feeds quoting.
  • Close short — the vendor shorted you and nothing more is coming: marks the order Received keeping only what actually arrived.
  • Cancel order — only while nothing has been received. The order keeps its number, shows a Cancelled chip, and stays visible under the All filter.
  • Vendor management — Add vendor and the pencil to edit. There is no delete button: untick Active on a vendor you no longer buy from and it drops out of new-order pickers while POs and expenses keep its name. Duplicate names are rejected ("You already have a vendor named …").
  • Inventory tie-ins — items carry a Preferred Vendor ("Groups this item under that vendor when reordering low stock") and a Supplier SKU (their part number, printed on the PO). The vendor field on both expense forms — Money → Expenses and the purchase logged with a stock adjustment — autocompletes from the vendor list and links the record when the typed name matches a vendor's name (capitalization doesn't matter).
  • Roll pieces — receiving a film line (vinyl, laminate, specialty, PPF or tint) that has a roll width on its inventory item (and a roll length, when the line is ordered by the roll) also records the individual pieces that arrived, not just a bigger number on the shelf. Pieces are recorded on every plan; the piece-level views that read them come with Wraptor Shop and Wraptor Fleet. See Inventory.
  • API & webhooks — read GET /api/v1/purchase-orders (and /{id}); events purchase_order.ordered (marked ordered or emailed) and purchase_order.received (fully received, or closed short — never on a partial receipt). API access comes with a paid Wraptor Shop or Wraptor Fleet plan (not during the trial). See api-webhooks.md.

Step-by-step tasks

  1. Restock everything that's running low

    1. Shop → Purchasing → Reorder low stock.
    2. Uncheck anything you don't want; adjust quantities.
    3. Create Draft Order (or Create N Draft Orders) — one draft PO per vendor. Open a draft, review, Send to Vendor → Send Email.
  2. Receive a shipment (even a partial one)

    1. Open the PO (it's under the Open filter) → Receive Items.
    2. Enter what arrived per line, or Fill remaining if it all came.
    3. Read the preview line — "Books $X to Expenses (Material)" — then Receive Items to confirm.
    4. Stock is on the shelf, the spend is in Money → Expenses, and the order shows Partially received until the rest arrives.
  3. Order something you don't stock

    1. New order → pick the vendor → leave the line's picker on Ad-hoc (no inventory link) and type a description, quantity and cost.
    2. Ad-hoc lines book their cost when received but never touch inventory.
  4. Retire a supplier you stopped buying from

    1. Shop → Purchasing → Vendors → pencil on the row.
    2. Untick Active → Save Vendor. Their old POs and expenses keep the name; new orders can't be addressed to them.

Settings & permissions

  • Inventory permission — the Purchasing tab itself, plus vendors, drafting and editing, cancelling, closing short, and receiving (production can sign for a delivery).
  • Billing permission — Mark Ordered and Send to Vendor: committing money is the gated moment, matching how logging a purchase on a stock adjustment works. Receiving books its expense without a billing check because the spend was approved at order time.
  • Reading a purchase order takes either permission, so a billing-only bookkeeper can open a PO's page from a link even though the Purchasing tab doesn't appear in their Shop hub.
  • Settings → Team notifications → What your team gets lists Purchase order sent — "When you email a purchase order to a supplier." It carries an Always chip, because the email is part of Send to Vendor and not a switch you can turn off. Each send is logged in Settings → Customer messages → Activity; switch that list to the All audience to see it, tagged "to shop".
  • No plan gate. Purchasing is open on every plan and during the 7-day free trial, with no cap on orders or vendors. Only the read-only API (a paid Wraptor Shop or Wraptor Fleet plan, not the trial) and the piece-level roll views (Wraptor Shop and Wraptor Fleet) are tiered.

Tips & common pitfalls

  • Expenses booked by a PO can't be deleted from Money → Expenses — the delete is refused ("Couldn't delete expense") because the PO owns the row. This is deliberate: a receive event moves stock across several items at once, and deleting the ledger row couldn't take the stock back. Correct it from the purchase order instead.
  • An item needs a minimum stock above zero to be suggested. Reorder low stock reads active items whose minimum is set and whose on-hand is at or under it; leave the minimum at 0 and the item never appears, however empty the shelf is.
  • Set Preferred Vendor and Supplier SKU on your regulars. Reorder low stock then groups correctly on its own, vendors see their own part numbers on your POs, and a later supplier price sheet imported in Inventory matches those items instead of duplicating them.
  • A draft PDF carries a DRAFT watermark so a vendor can't mistake it for a commitment — send or mark ordered first if you mean it.
  • The vendor needs an email on file before Send to Vendor works; the button is greyed out and says so on hover.
  • You can't receive more than a line still has outstanding — the dialog says "A quantity is higher than what's still outstanding on that line." Order the extra on a new PO rather than over-receiving this one.
  • If two people receive the same order at once, one of them is turned away ("This order was just received against by someone else — refresh and try again."). Refresh the page and enter only what is still missing; nothing was double-counted.
  • Zero-cost receipts (free samples) move stock but book no expense — a $0 ledger row is noise.
  • Editing is a draft-only privilege. Once an order is Ordered, its lines, vendor and totals are fixed; short-close or cancel it and draft a new one if the order really changed.
  • Inventory — the shelf side: minimum stock levels and unit costs drive reorder suggestions; receiving updates both.
  • Invoicing & billing — the Money hub, where the booked expenses appear under Expenses.
  • API & Webhooks — purchase-order reads and events.
  • Plans — what each tier includes.