Purchase Orders

Raising an order to a supplier, paying on delivery or on credit, the statuses it moves through, who signs it off, and sending the PO to the supplier as a PDF, link or email.

21 min read · Updated 28 Oct 2026

Order before you run out · 0:39 · Watch on YouTube
On this page

A purchase order records what you asked a supplier for, at what price, where it should be delivered, and when you will pay for it. Until something physically arrives it is a commitment and nothing more — no stock, no expense, no money owed — unless you pay the supplier a deposit ahead.

Purchase orders need the Inventory Pro add-on (₱500 per branch each month), or any bundle that includes it. Delivering a PO into a warehouse instead of a branch additionally needs Warehouse & Commissary (₱500 per branch each month).

Who can do what

Action Who
See the list and open a PO Owner, Manager, or a custom role with Receive stock
Create, edit, delete and submit a PO Owner, Manager
Amend a submitted or partly received PO Owner, Manager
Approve an amendment Owner (a manager's amendment always goes to the Owner)
Change when the supplier is paid, while the PO is open Owner, Manager
Record a deposit, issue a cheque, pay a bill Owner, Manager
See a PO's revision history Everyone who can open the PO
Receive items Owner, Manager, or a custom role with Receive stock
Close Short Owner, Manager
Cancel Owner, Manager
Download the PO PDF, copy or share its link Owner, Manager, or a custom role with Receive stock
Email the PO from Kassly, and have a share recorded as sent Owner, Manager

The split exists so a stockroom or dock person can work a delivery without also being able to commit your money. See Custom roles.

On the phone, receiving sits under the Oversight tab, and that tab needs View approvals queue. A custom role that receives on the phone needs both Receive stock and View approvals queue; on the web, Receive stock is enough.

Raising a purchase order

Open Purchasing → Purchase Orders and click New PO.

Field Required Notes
Branch Yes The branch the goods belong to. Also the branch the expense is booked against.
Supplier Yes From your supplier list. See Suppliers.
Deliver To No Branch (default), or a warehouse under the Warehouses heading.
Expected Date No Must be today or later.
Payment Terms No What you agreed on paying, such as Net 30 or 50% down, balance on delivery. Up to 500 characters. Starts with your business default (below). Printed on the PO. Kassly doesn't read what you type, but clicking a quick pick below it (COD, Net 7, Net 15, Net 30, Net 60) also sets When do you pay the supplier?.
Estimated Freight No What you expect the delivery to cost, and whether it would be spread by value or by quantity. An estimate for planning only (see below).
When do you pay the supplier? No Pay on delivery, On credit (pay later) or Some items on credit, with the days you have to pay. Starts on On credit with the supplier's credit days if they have some, otherwise on Pay on delivery. Decides whether finalising the order records it as paid or opens a bill (see below).
Notes No Up to 2,000 characters.

Default payment terms. Set the terms most of your suppliers work on once, under Settings → Inventory Settings → Purchasing, and every new PO starts with them. You can change or clear them on any PO. POs raised from the desktop app take the default too.

Paying on delivery or on credit. On Pay on delivery, the order is recorded as paid the day it is fully received or closed short. On On credit (pay later) a supplier bill opens instead, due the number of days you set, and you pay it later from Purchasing → Payables. Some items on credit puts an On credit tick on each line for the items you pay later. A supplier with Credit days on their record starts every new order on credit (see Suppliers), and clicking Net 30 or COD under Payment terms sets this too. All of it, with deposits and post-dated cheques, is in Supplier bills and payables.

Estimated freight is never posted. It does not change the PO total, the payable, your product costs or your books. It is there so you can see the likely landed cost while you order. When the trucker's bill arrives, record the real charge as a landed-cost voucher: the voucher starts from your estimate, and the PO shows the estimate next to what was actually charged. See Landed costs.

Then add Line Items. Each line needs a product, a quantity and a unit cost:

  • Quantity and unit cost must both be greater than zero. A line at ₱0 is rejected, so a freebie has to go in as a stock adjustment rather than a PO line.
  • Both accept decimals, so 2.5 kg is a valid quantity. Unit cost takes up to four decimal places (₱0.0125 per gram is a real price).
  • Unit Cost pre-fills with what you last paid. When you pick the product (and its variant), Kassly looks up the last delivery of that exact item: first from the supplier on this PO, then from any supplier, and only then the product's cost price (or the variant's own cost, for a variant; a variant with no cost of its own uses the product's). It is a suggestion: type over it with what the supplier is actually charging this time.
  • If you can see cost prices, each line shows Catalog ₱X under its unit cost, and the change as a percentage when what you typed differs. When the price came from a past delivery, a second line reads Last paid ₱X · PO-000123, naming the supplier when it was a different one.
  • Changing the supplier re-prices the lines you haven't touched. A unit cost you typed yourself, or a saved one on a draft you are editing, is never replaced.
  • The last-paid lookup needs See Cost Prices. Without it the unit cost pre-fills from the catalog as before.
  • Line Total is quantity × unit cost, and the totals update as you type.

A PO must have at least one line. Click Create Purchase Order and Kassly opens the new PO, in Draft. Check it over, then click Submit on it when it is ready to go (see Submitting and sign-off).

Ordering by the box, case or sack

If your supplier sells in packs but you sell in pieces, grams or millilitres, order in the supplier's unit. First give the product a unit conversion (for example 1 box = 24 pc, or 1 sack = 25,000 g) on the product form. The line then shows a unit picker next to the quantity:

  • Pick box and type the quantity and price per box: 5 box at ₱480. Switching units converts what you typed, so 120 pc at ₱20 becomes 5 box at ₱480. Under the quantity the line shows what that is in your unit (= 120 pc), and under the price the cost per piece.
  • Stock, receiving and your costs stay in the product's own unit. The 5 boxes arrive as 120 pieces, and the cost per piece is ₱480 ÷ 24.
  • The total and what you owe the supplier are worked out from the box price, so a ₱1,299 sack of 25,000 g is exactly ₱1,299, never a rounded price per gram times 25,000.
  • The PDF and link you send the supplier read 5 box at the box price, with the pieces underneath for whoever receives it.
  • The Catalog and Last paid hints are shown per box too.

A line keeps the unit it was ordered in, even if you later change the product's conversion. Reorder suggestions start in your own unit; switch the line to a box if that's how you buy it.

Starting from reorder suggestions

Inventory → Reorder has a Create PO button on every supplier group. It opens this same form with the order filled in for you:

  • the Supplier of the group, or blank for the No Supplier group;
  • the Branch the items are low at — a group that is low at more than one branch asks which branch first, because a purchase order is for one branch;
  • one line per item, with the variant where the stock is per variant, the suggested quantity, and the last price you paid for it (from this supplier first, the same way as picking a product by hand).

A low item at a warehouse (with the Warehouse Management add-on and View Warehouses) gets its own Create PO choice: the form opens with Deliver To set to that warehouse. The purchase order still belongs to a branch, so pick the branch there.

The quantity is the item's reorder quantity at that branch (or warehouse), or — when none is set — enough to climb back to the reorder point, less what is already On order there. Everything stays editable before you save. Items that no longer exist are left out, and the form tells you how many. See Stock levels for setting the reorder point and quantity.

What counts as on order. The Reorder page has an On order column: what Submitted and Partial POs still have to deliver to that branch or warehouse (ordered less received, in the item's own unit, so a box of 24 counts as 24 pieces). It comes off the suggested quantity, and an item whose open POs cover the whole suggestion drops off the page until they arrive or are closed. A PO that delivers into a warehouse counts for the warehouse, not its branch.

  • Drafts don't count. Nothing has been asked of the supplier yet, and an order started from Create PO is a draft until you submit it, so the item stays suggested until then.
  • Cancelled, Received and Closed POs don't count. A short-closed PO stops expecting the rest, so the item comes back if it is still low.

Kassly numbers it for you as PO-000001, counting up per business.

Editing or deleting a draft

A PO can be changed freely while it is still a Draft. Open it and click Edit, or use the pencil on its row in the list. The same form opens with the saved order: you can change the supplier, branch, delivery location, expected date, payment terms, when you pay the supplier, estimated freight and notes, and add, change or remove lines. The same rules as a new PO apply, with one exception: an Expected Date that has already passed can stay as it is. Only a date you change has to be today or later.

Delete (on the PO, or the bin on its row) removes a draft once you confirm it. The PO number is not reused; the next PO still counts up from the highest number issued. A draft you have paid a deposit on can't be deleted: cancel it instead, so the deposit becomes supplier credit.

Only drafts can be edited or deleted. A submitted PO is changed by amending it instead (next section), and it can't be deleted: cancel it. Someone who can only receive stock sees none of these buttons.

Amending a submitted PO

Suppliers change their minds after you have ordered: a price goes up, an item runs out, the delivery slips a week. Open the PO and click Amend. The same form opens with the order as it stands.

What you can change depends on how far the PO has got:

PO status You can change You can't change
Submitted (nothing received yet) Quantities and unit costs, up or down; add or remove lines; expected date, payment terms, estimated freight, notes, branch and delivery location The supplier. Cancel the PO and raise a new one for a different supplier.
Partial (some goods arrived) Lower a quantity that is still to arrive (not below what arrived), remove a line nothing has arrived on, expected date, payment terms, estimated freight and notes Prices, new lines, products, the delivery location. Close Short and raise a new PO for a new price or extra items.
Received, Closed, Cancelled Nothing. The PO is final.

Lowering every line of a partial PO to what has arrived closes the PO at the received value, exactly like Close Short.

When you pay the supplier is not part of an amendment. While the PO is open, change it with Change on the PO's Payment card instead: it applies at once, with no approval.

Each amendment is saved as a numbered revision with a Reason you can type in. Open the PO to see its Revision History: who changed what, when, the total before and after, and (click the line count) every line that changed.

When an amendment needs approval

A manager's amendment waits for the Owner's approval when it:

  • raises any unit cost on a line, even by one centavo, or
  • raises the order total by more than 10% (adding a line counts toward this).

Those are the defaults. The Owner can change both limits under Settings → Inventory Settings → Purchase order changes; see Inventory settings.

The form warns you with This change needs approval before you save, and then asks for a reason. Lowering quantities or prices never needs approval, and the Owner's own amendments always apply straight away. Changing only the payment terms or the estimated freight never needs approval either: neither changes what the order costs. Both still show in the revision history, like any other change.

While it waits, the PO does not change. The PO shows Amendment #N is awaiting approval with the new total and the changes, and the amendment sits in Approvals as a PO Amendment. When the Owner approves it, the change is applied; rejecting it leaves the PO as it was. Managers can't approve their own amendment, or another manager's.

A few things to know:

  • Only one amendment waits at a time. Proposing another one replaces it (the old one shows as Superseded). Cancelling the PO, or the PO going back to Draft, retires it as well.
  • Receiving still works while an amendment waits. If you receive before it is approved, the approval checks the change again against what arrived: a price rise can't be applied once goods have started arriving, and nothing can be applied once everything has. The approval then says why, and the Owner rejects it.
  • Right after you submit, while the PO's own sign-off is still open in the queue, amendments apply straight away: the approver sees the PO as it is now.

Delivering into a warehouse

If you have the Warehouse & Commissary add-on, Deliver To offers your warehouses as well as the branch. Choosing a warehouse changes what happens when the goods arrive: stock lands at warehouse level and Kassly writes a Goods Receipt (GRN) instead of a branch stock movement. That is covered in Receiving purchase orders and Warehouses.

Without the add-on, saving a PO with a warehouse selected is refused with Warehouse delivery requires the Warehouse Management add-on. Branch-destined POs keep working normally.

The statuses

Status What it means
Draft Being written. Nothing has been committed.
Submitted Sent for sign-off and open to receive against.
Partial Some of what you ordered has arrived; the rest is still expected.
Received Everything ordered has arrived. Terminal.
Closed Finalised at the quantity actually received, via Close Short. Terminal.
Cancelled Abandoned before anything arrived. Terminal.

The badge on the PO shows the status word itself — a partially received order reads Partial.

The status filter on the list has no Closed option. It offers All Statuses, Draft, Submitted, Partial, Received and Cancelled. To find a short-closed PO, leave the filter on All Statuses and search by PO number.

Submitting and sign-off

Open a Draft PO and click Submit. Two things happen:

  1. The PO moves to Submitted, which is the state it can be received against.
  2. A purchase order item appears in the approvals queue for a manager, carrying the PO number and the order total.

The sign-off is a record, not a gate. A submitted PO is immediately receivable whether or not anyone has approved it yet — approving simply affirms it and leaves the decision on the audit trail.

Rejecting it, or asking for changes, sends the PO back to Draft so the buyer can revise and submit again. The reason is captured on the approval. See Approvals and promotions.

Submitting does not create an expense or a payable. Earlier versions of Kassly booked the full order value the moment you submitted. It no longer does: what you owe is recognised only when goods arrive. If you are used to seeing a pending Procurement expense appear at submit time, that is why it no longer does.

Sending it to the supplier

Submit is an internal state change: it does not tell the supplier anything. To get the order to them, open the PO and click Send to Supplier. The menu has:

  • Download PDF: an A4 purchase order with your business name, address, TIN and logo; the supplier's details; the PO number, order date and deliver-by date; where to deliver (the branch, or the warehouse if the PO goes to one); and one line per item with the supplier's item code, the variant, quantity, unit cost and amount, then the total, your payment terms and your notes. An estimated freight prints under the total, marked Estimate only, not part of the total. Print it or attach it yourself.
  • Copy link: a link to the same PDF that opens without logging in, so the supplier can view it on their phone. It works for 7 days, then stops. Anyone holding the link can open it until then, so send it only to the supplier.
  • WhatsApp, Viber, Messenger: opens the app with a short message and the link ready to send. WhatsApp goes straight to the supplier's chat when their phone on the supplier record is a PH mobile number (09…, +63 9…); otherwise you pick the chat. Messenger only opens in the Messenger phone app.
  • Open in mail app: starts an email in your own mail program, addressed to the supplier, with the link in the body.
  • Email PDF from Kassly… (Owners and Managers): Kassly emails the PDF as an attachment plus the link. The To address comes from the supplier record and can be changed; you can add up to five Cc addresses and a message. Replies go to your business email, not to Kassly. The email is sent in the background, so you can carry on working (see Emails sent from Kassly below).
  • Turn off shared links… (Owners and Managers): stops every link you have shared for this PO so far (see below).

The supplier's item code on the PDF is the Supplier code you set on each product. Lines without one show a dash.

Turning links off. Sent a link to the wrong chat, or changed supplier? Turn off shared links… stops every link shared for this PO at once, on any phone it was forwarded to. Anyone who opens one sees This link has been turned off instead of the PO. Links you share afterwards work normally. An expired or edited link shows a similar page, never an error code.

Emails sent from Kassly. Kassly hands the email to its mail service and tells you Sending … to …. The PO shows Sent · Email once the mail has actually gone. If it can't be sent (a mistyped address, a mailbox that refuses it), Kassly tries again a couple of times over the next few minutes, then the PO shows Email failed with the reason. Use Retry to fix the address and send it again, or share the link instead.

Recording that it went out. When an Owner or Manager emails the PO, copies its link or picks a chat app, the PO shows Sent with the date and how it was sent. Kassly cannot see whether you actually pressed send in WhatsApp or Viber, so treat the badge as "shared". A resend moves the date on. Sending does not change the PO's status. A cancelled PO cannot be sent.

Cost prices. Someone without See Cost Prices can still download and share the PO, but their PDF and link leave out the unit costs and totals.

The Delivery Receipt button on a PO is not the order document. It generates a numbered, printable two-copy proof-of-delivery PDF for goods that have physically moved, which you would use when you are handing goods over. It needs the Generate delivery receipts capability, held by Owners and Managers by default.

Cancelling

Cancel is available on a Draft or Submitted PO and moves it to Cancelled.

Once anything has been received the PO cannot be cancelled. Kassly refuses with This PO already has received stock. Short-close it to finalise at the received quantity instead of cancelling. The received goods are real, they are on your shelves, and they carry a payable — so the way out is Close Short, described in Receiving purchase orders.

A fully received or closed PO cannot be cancelled at all.

Cancelling also settles the money side. A deposit you paid ahead on the order becomes a supplier credit the supplier owes you, and a post-dated cheque issued for it is voided if nothing has been recorded for it yet. See Supplier bills and payables.

Reading the PO

Open any PO and the four cards across the top read:

Card What it shows
Order Total The full ordered value. Once anything is received, the received value appears underneath it.
Expected Your expected delivery date, or -.
Received The date the PO was finalised, or -.
Created By Who raised it.

Below that, the Items table gives each line's product, quantity ordered, quantity received so far, unit cost and line total. On an order with some items on credit, those lines carry an On credit badge. The payment terms and any estimated freight show with the PO's details.

The Payment card says when the supplier gets paid. While the order is open it has Change, Record deposit, the deposits paid ahead, and on an order on credit the cheques issued for it. Once an order on credit is finalised, the card becomes its Supplier bill. A finalised order paid on delivery shows the payment recorded, with Move to Payables for one that wasn't actually paid. See Supplier bills and payables.

Cost prices on the PO. The catalog cost of each item (the Catalog ₱X comparison) is only shown to people with See Cost Prices. Anyone who can open the PO still sees what was agreed with the supplier: the unit costs and totals on the PO itself.

Exporting purchase orders

Export on the Purchase Orders list downloads the POs as CSV or Excel, one row per line: PO number, status, supplier, branch, delivery warehouse, dates and who raised it, then the product, quantity ordered, received and still outstanding. It follows the list's search and status filter.

Anyone who can see the list can export it. The unit cost, line total, PO total and received amount columns are only in the file for people with See Cost Prices (Owners and Managers by default), so a receiving role gets the quantities only.

What purchase orders will not do

  • No supplier portal or confirmation. The supplier gets a PDF and a link; they cannot accept, reject or reply through Kassly.
  • The payment terms text isn't read. What you type there is printed for the supplier. The due date of a bill comes from the days under When do you pay the supplier?, and the PDF doesn't show those.
  • The estimate is not a charge. Estimated freight never reaches cost or the books; only a posted landed-cost voucher does.
  • Receiving does not update a product's cost price on manual costing (the default). The unit cost you paid is stamped on the stock movement and drives the payable. Use Update catalog costs on the received PO, or switch to automatic costing. See Receiving purchase orders and Inventory settings.
  • No changing a received or closed PO. Amendments stop once everything has arrived or the PO is closed. Goods sent back and price corrections after delivery are separate documents: see Supplier returns and Landed costs.
  • No amending from the phone or desktop app. Amendments are web-only for now. Both apps still show amendment approvals in their queue.
  • No blanket or recurring orders, and no ordering against a supplier contract or price list.
  • No PO on the mobile app. The phone app can receive against a PO, but raising one is web-only. See Receiving purchase orders.

Where to go next