Sales Orders and Invoices

Quoting a customer, taking a bulk order, reserving the stock, picking, packing and shipping it, turning it into a real sale, issuing a billing invoice and sending each one — plus an honest account of where Kassly stops.

21 min read · Updated 1 Oct 2026

On this page

Sometimes a customer does not walk up to the counter — they send an order for forty cases, expect a price, and expect to be billed. A Sales Order is that order: it holds the lines and the prices, reserves the stock, and later becomes a real sale. A Sales Invoice is the piece of paper you send them.

Needs the B2B Sales Orders add-on (₱500 per branch each month), or any bundle that includes it. It also switches on Invoices and accounts receivable, because a B2B order is usually billed on terms — see Receivables. Owners and managers only.

Where Kassly stops — read this before you plan around it

Kassly is a point-of-sale system with light business-to-business selling bolted on. It is not a distribution system, and it is not an ERP. What it does:

  • Quote a customer, with a valid-until date and your terms.
  • Take an order, hold negotiated prices on it, and reserve the stock.
  • Turn that order into a real sale, on any tender including credit, in one go or in parts as stock comes in.
  • Keep a backorder list of what is still owed to each customer, and close the rest of an order short when it won't be supplied.
  • Pick, pack and ship it: a pick list, a packing slip, a delivery receipt, and a record of what left, when, with whom. With the Warehouse add-on, ship straight from a warehouse.
  • Produce a numbered customer invoice with a VAT breakdown and a PDF.
  • Send the quote, order or invoice as a PDF, a link, a chat message or an email.
  • Price each line from the customer's price list, with quantity breaks. See Price lists.
  • Track what is owed and collect it.

What it does not do, and will not pretend to:

Not in Kassly What that means in practice
Delivery routes and tracking Kassly records the driver, the plate and who received it, but plans no routes, tracks no vehicles and shows the customer no delivery status
Routes and van sales No route planning, no van stock, no route settlement
Returns processing against an order Goods coming back are handled as a normal sale return. The only link to the order is an optional tick box that puts the returned quantity back on it as still owed
Purchase-order matching No three-way match against the customer's PO

Invoicing in parts is about billing and stock: Kassly records "30 sold now, 10 still owed". Picking, packing and who took it out are recorded on shipments; see Pick, pack and ship below. If your business genuinely needs delivery routes or returns tracked against orders, you need a distribution or ERP system alongside Kassly, not a setting inside it.

The sales order flow

Four statuses, in one direction:

Status Means Stock
Draft Written down. Nothing committed Untouched
Confirmed Stock reserved for this customer. An order being invoiced in parts stays Confirmed, marked Partially invoiced Reserved — available-to-sell drops, on hand does not
Invoiced Nothing left to invoice: everything was sold, or the rest was closed short (marked Closed short) Deducted, once per sale
Cancelled Abandoned. Any reservation released Untouched

Orders are numbered SO-000001 upward.

Creating one

Sales → Sales Orders → New Sales Order:

Field Required
Customer Yes
Branch Yes — the branch that sells it and issues the receipt. Without a warehouse, also the one whose stock is reserved
Ship from No — shown with the Warehouse add-on. Pick a warehouse to ship the order from it (see Pick, pack and ship)
Notes No

Then the lines. Each line takes a product, a quantity, and a price:

Price type Where the price comes from
Retail The product's or variant's selling price
Wholesale The wholesale price, falling back to retail if none is set
Custom Whatever you type — the negotiated figure
Price list name The customer's price list, at the quantity break the line reaches. Chosen for you when the list covers the product

A draft has no effect on anything.

Quotes

A quote is a draft sales order with its own number, QT-000001 upward. It reserves no stock and books nothing.

  • To start one, switch on Save as quote when creating the order. Set Valid until (leave it empty for 30 days from today) and any Terms ("50% down payment", "Delivery within the city").
  • To turn an existing draft into a quote, open it and choose Save as Quote. Edit Quote changes the date or terms later.
  • To accept it, press Convert to Order. That is the same as Confirm: it reserves the stock and the quote becomes an order. It keeps its QT- number ("Converted from quote QT-000003"), and the order carries on with its SO- number.

Once the valid-until date has passed, a quote still in draft shows Quote expired, and its PDF carries an EXPIRED banner. Nothing is blocked: you can still convert an expired quote. Convert to Order first asks "This quote expired on Sep 15, 2026" and reminds you that its prices and stock may be out of date. Choose Convert anyway to go ahead, or Go back and send the customer an updated quote first.

The quote and sales order PDF

Every sales order has a printable document. A draft quote prints as a QUOTATION; anything else prints as a SALES ORDER (naming the quote it came from). It has:

  • your business name, address, TIN and logo;
  • the customer's business name, TIN, address and contact details;
  • the quote or order number, the date, and a quote's valid-until date;
  • the lines, with unit prices and amounts;
  • the VAT treatment: VATable, VAT-exempt and zero-rated amounts and the VAT, worked out the same way the sale will charge them. If your prices exclude VAT, the VAT is added to the total; a non-VAT business sees no VAT at all;
  • your notes and terms, and a signature line.

Cost prices never appear on it. It is not a BIR document: the footer says "This is a quotation (or sales order), not an official receipt or sales invoice." The tax document is the receipt the sale produces, or the sales invoice.

Confirming — reserving the stock

Confirm on a draft order (Convert to Order on a quote) reserves every stock-tracked line and reports "Order confirmed — stock reserved".

Reserving lowers what the POS can sell without lowering what is on the shelf. The goods are physically still there; they are just spoken for. Non-stock-tracked products and services reserve nothing, because there is nothing to hold back.

If a line cannot be covered, the confirm stops and names the shortfall: "Insufficient stock to reserve 40 of "Cooking Oil 1L" — only 22 available." Nothing is reserved yet. Kassly then offers a choice, listing every short line with what was ordered, what is available and what would be owed:

  • Keep as draft — nothing changes. This is what confirming always did.
  • Confirm with backorder — the order is confirmed, what is in stock now is reserved (22 bottles), and the rest (18) is backordered: owed to the customer, with no stock held for it yet. The order shows a Backordered chip.

Nothing is backordered unless you choose it. See Stock levels.

Recording the sale

Record Sale on a confirmed order is the moment it becomes real. The dialog says so plainly: "Recording this sale will finalise the order, deduct stock and book the revenue. Choose how the customer is paying."

Payment method is Cash, Card, GCash, Maya, Bank Transfer or Credit. Cash asks for Amount tendered and shows change; the digital methods ask for a Reference number; Credit shows the customer's Current balance and Credit limit and refuses the sale if it would push them over ("Exceeds credit limit"). With nobody attached, "No customer linked — credit unavailable."

In one step Kassly releases the reservation, deducts stock for real, books the revenue, records the payment, and generates a receipt — through exactly the same machinery as a counter sale, so the order lands in your sales reports, your readings and your books like any other sale. If the payment does not cover the total, the whole thing is rolled back rather than left half-converted.

Invoicing in parts

Record Sale lists every line still open, with a quantity box each. It starts at what is ready to go: the whole line, or only the reserved part of a backordered line. Change the quantities to sell part of the order now — 30 cases today, 10 next week — and the amount due follows. The button reads Record partial sale.

Each partial sale is a complete, ordinary sale: it takes its stock at that moment, books its revenue, records its payment and prints its own receipt. On Credit, each one raises its own charge on the customer's account. So your sales reports, receivables, ageing, statements and BIR books count every sale exactly once, and never count the order itself.

The order stays Confirmed, marked Partially invoiced, and the lines show what was Invoiced and what is still Open. The page lists every sale recorded from the order. Once nothing is left open the order becomes Invoiced. A quantity can't be larger than what is left on the line, and invoicing more of a backordered line than is reserved takes the stock anyway (the dialog warns you; the branch may go negative, as with any sale).

Backorders and Reserve now

Sales Orders → Backorders lists what is still owed with no stock held for it: the order, the customer, the product, how much was ordered and invoiced, how much is backordered, and Available now — what that branch could reserve today. Oldest orders are at the top, so whoever has waited longest is first.

When stock arrives (a purchase order is received, or you record a stock-in), nothing is handed out automatically. You decide which customer gets it: Reserve now on a row (or on the order) holds what is available for that line, up to what it is short. Then record the sale as usual.

Closing short

When the rest of an order is never going to be supplied, Close short on the order cancels whatever is still open and releases its reserved stock. Give a reason if you like; it is added to the order's notes. What was already invoiced stays as it is, and the order becomes Invoiced (marked Closed short). Closing short an order that has had no sale yet is the same as cancelling it.

When a sale from the order is voided or returned

Each sale recorded from an order is an ordinary sale, so it is voided or returned from Transactions like any other. What happens to the order:

  • Voiding the sale puts its whole quantity back on the order as still owed. The lines' Invoiced figures drop, the sale is listed on the order as Voided, and an order that was Invoiced goes back to Confirmed. The void itself cancels the charge on the customer's account, so receivables, ageing and statements are correct without anything else to do. The sale's invoice is dealt with too; see When an invoice's sale is voided below.
  • Returning items does not touch the order unless you ask. A return is usually the customer getting their money (or credit) back, not goods they are still waiting for. If you will send replacements, tick Still owe these on sales order SO-… in the return dialog: the returned quantity goes back on the order as owed, and the order goes back to Confirmed if it was finished. The refund is handled exactly as for any return. Returns requested by a cashier carry the choice through to the manager's approval.

For an order that ships from a warehouse, the goods have already left the warehouse: what the void or return put back at the branch is held there for the order again, and Record Sale can sell it without another shipment.

Otherwise, the stock that came back is not reserved again automatically. The reopened quantity shows on Backorders; use Reserve now when you are ready to hold stock for it, then Record Sale as usual. A sale that has had items returned can no longer be voided, so return the rest instead.

Cancelling

Cancel works on a Draft or Confirmed order, and releases any reservation. Once part of an order has been sold, or anything on it has shipped, use Close short instead. Shipments still being picked or packed are cancelled with the order. An Invoiced order cannot be cancelled — the sale is already booked, and the way to undo a booked sale is to void it. See Returns and refunds.

Pick, pack and ship

Once an order is confirmed, its goods go out on shipments: a pick list for whoever fetches them, a packing slip for the boxes, and a record of what left, when, with whom, and for which customer. Sales → Shipments lists them all; the shipped ones are your dispatch log.

Picking, packing and shipping is its own permission, Pick, Pack & Ship Sales Orders. Owners and managers have it. Give it to warehouse staff with a custom role (the Warehouse Staff template includes it) and they can work shipments without seeing prices or editing and invoicing orders. Shipping from a warehouse also needs the Warehouse & Commissary add-on.

Shipping from a warehouse

Choose a warehouse under Ship from when you create the order. Then:

Step What happens to stock
Confirm The warehouse's stock is held for the order (its Allocated figure goes up). The branch is untouched
Ship The goods leave the warehouse. They are booked into the order's branch and held there for the order, so the POS never offers them
Record Sale Sells what has shipped, from the branch, like any other sale. The branch issues the receipt

Two rules follow from that:

  • Only what has shipped can be invoiced. Record Sale starts at, and stops at, the shipped quantity. An order with nothing shipped yet has no Record Sale button.
  • Backorders count what has yet to ship, and Reserve now holds the warehouse's stock.

An order with no warehouse works as before: its branch's stock is held at confirm and leaves when you record the sale. You can still pick, pack and ship it for the paperwork with Pick & ship on the order; that shipment moves no stock.

The steps

  1. Start picking, from Sales → Shipments → Ready to ship or the order's Shipments card. A shipment is numbered SHP-000001 upward and starts with everything ready to go (for a warehouse order, what is held for it there). Change the quantities to send part of it.
  2. Print pick list. It is sorted by bin, so the picker walks the aisles once, with a box to tick and a space for the quantity actually picked.
  3. Record pick. Enter what was picked. A short pick stays on the order for a later shipment.
  4. Pack. Box count, weight and a note. Print packing slip for the boxes: the customer, the items, the boxes and signature lines.
  5. Ship. Carrier, driver, plate and tracking number, all optional. This is when the goods leave. A shipped shipment can also get a numbered Delivery Receipt for the customer to sign.
  6. Mark delivered (optional): who received it.

Steps can be skipped. Packing a shipment with no pick recorded takes everything as picked in full, and Ship does the same, so a one-person shop can go straight from the pick list to Ship.

Bringing goods back

Cancel on a shipment still being picked or packed just drops it; nothing has moved. A shipment that has shipped can be undone with Bring back while none of it is invoiced: the goods return to the warehouse and are held for the order again. Once part of it is invoiced, void or return that sale first. A Delivered shipment stays.

Goods that have left stay on the order: an order with anything shipped can't be cancelled, and Close short leaves alone whatever has shipped or is on a shipment being picked or packed.

Sales invoices

Sales → Invoices is a separate list of billing documents, numbered INV-000001 upward.

Status Means
Draft Being prepared. Editable and deletable
Sent Issued to the customer. Due date fixed
Partially Paid Some of it has been recorded as paid
Paid Fully paid
Void Cancelled

Overdue is not a status — it is a red flag Kassly works out from the due date, and it can sit on a Sent or Partially Paid invoice.

Where invoices come from

Two ways:

  • Automatically. When you Record Sale on a sales order, Kassly creates a draft invoice for it. An order sold in parts gets one invoice per sale, holding just that sale's lines. Cash actually collected at that moment is mirrored onto the document, so a cash-settled order does not sit there looking unpaid. A credit-invoiced order stays outstanding, which is correct — the money really is still owed.
  • By hand. New Invoice builds one from nothing, with or without a customer attached.

The invoice itself

The Bill To block is where a business customer's billing identity is captured — name ("Customer or business name"), TIN, billing address and email. It lives on the invoice, not on the customer record, so each invoice can carry whatever the buyer's accountant needs.

Lines take a Description, quantity, unit price, discount, and a VAT treatment: Vatable, VAT-Exempt or Zero-Rated. Prices are treated as VAT-inclusive per Philippine practice, and the invoice carries the split — VATable sales, VAT-exempt sales, zero-rated sales — so it can be handed to an accountant as-is. See Tax configuration.

Payment terms (days) and Due date both appear. Enter terms and the due date is worked out from the issue date; enter a date and it is used as typed. If neither is given, the invoice has no due date and can never be flagged overdue.

Working an invoice

Action When What it does
Issue Draft only Moves it to Sent, stamps the date, and guarantees a due date exists
Edit Draft only Once issued, an invoice is fixed
Record payment Not void Shows Balance due, then takes an Amount, Payment method, Reference and Paid on
Send to Customer Any Download the PDF; once issued, also share or email it (below)
Delete Draft only
Void Not already void "Voiding cancels this invoice. This action cannot be undone." A voided invoice takes no further payments

The invoice PDF prints SALES INVOICE. Until your store is BIR-accredited it says at the bottom that it is for billing reference and not a BIR-accredited official receipt, and a draft says DRAFT: this invoice has not been issued. This is not an official receipt or sales invoice. A BIR sales-invoice number you record on it is shown as BIR SI No.

Recording a payment on an invoice does not collect the money

This is the trap, and it is worth being blunt about:

An invoice is a document, not a ledger. Record payment advances the invoice's own paid amount and its status, and that is all it does. It does not reduce the customer's receivable balance, does not put cash in a shift, and does not post anything to your books.

If a sales order was invoiced on Credit, the money is collected on the Receivables page — Collect Payment on the customer's ledger. That is the action that actually reduces what they owe and reconciles the drawer. See Receivables.

Marking the document paid is for your own tracking of which bills the customer has settled. Do both, or you will either think you are owed money you have collected, or the reverse.

When an invoice's sale is voided

Voiding a sale also voids the invoice that bills it, whether the sale came from a sales order or was made at the counter. The invoice's void reason says which receipt was voided and when. This follows the normal Void rule: a draft or an issued invoice can be voided, even with a BIR SI number recorded on it (the number stays on record).

Money that was collected with the sale and copied onto the invoice automatically (a cash-settled sales order, for example) doesn't stop this: the void already gave that money back, so the invoice is voided like an unpaid one.

The exception is an invoice with a payment you recorded on it yourself (Record payment). Kassly leaves it as it is and shows a red warning on the invoice page: "The sale this invoice bills was voided". That payment needs you to decide what happens to it. Refund or move it, then press Void on the invoice yourself.

Invoices settled before this change carry no record of which payments were copied from the sale, so if one of those has any payment on it, it is always treated this way, even if it was simply cash-settled.

Bill first, sell later — the banner to watch for

Some merchants issue the invoice before the goods move. Kassly allows it, and then warns you, because a confirmed order with an invoice on it but no sale recorded is stock sitting reserved and revenue not booked:

"Invoice INV-000004 exists, but this sale hasn't been recorded" — "Stock is still reserved and no revenue is booked. Once payment is collected, use Record Sale to finalise this order."

Take that banner seriously. Until Record Sale runs, the order has not happened as far as your stock, your reports and your books are concerned.

A bill-first invoice covers the whole order. If you then sell only part of it, Kassly reshapes that invoice to the first sale while it is still an unpaid draft. Once it has been issued (or has a payment recorded), a partial sale is refused: record the whole order in one sale, or void that invoice first.

Partial sales on the PDFs

The invoice for one of several sales carries a Sales order table: for each line, what was ordered, what earlier invoices covered, what this invoice covers, and what is To follow, with a note saying whether the balance will follow or this invoice completes the order. The sales order PDF adds Invoiced and Remaining columns while an order is part-sold or was closed short. An order sold in one go prints exactly as before.

Sending a quote, order or invoice

Send to Customer on a sales order or an invoice opens the same menu:

Action What happens
Download PDF Saves the document
Copy link A link that opens the PDF without logging in, for 7 days
WhatsApp / Viber / Messenger Opens the app with a short message and the link. WhatsApp goes straight to the customer's PH mobile number when it is on file. Messenger opens on a phone only
Open in mail app Starts an email in your own mail app, to the customer's email
Email PDF from Kassly… Kassly emails the PDF attached plus the link. To defaults to the customer's email (on an invoice, the Bill To email first); add Cc and a message. Replies go to your business email. It is sent in the background
Turn off shared links… Stops every link shared for this document so far. Anyone opening one sees This link has been turned off. New links work

The page shows when it was last sent and how ("Sent Oct 2 · WhatsApp"). A chat share is recorded when you pick the app; Kassly can't see whether you actually pressed send. Email is recorded only once the mail has gone out: until then the page shows Email sending…. If the mail can't be delivered, Kassly retries a couple of times and then shows Email failed with the reason and a Retry.

A few rules:

  • Who can send. Anyone who can see sales orders (View Sales Orders) can download and share a quote or order. Recording it as sent and emailing it from Kassly need Create / Confirm / Invoice / Cancel Sales Orders. Invoices need Manage Sales Invoices, as the rest of the invoice page does.
  • Cancelled orders can be downloaded but not sent.
  • Invoices can be shared once issued. A draft can be downloaded to check it, but not shared; a void invoice can't be sent.
  • The link can't be edited to show anything else, and stops working after 7 days. Send a fresh one if the customer needs it later. To stop links early (sent to the wrong person, or the quote changed), use Turn off shared links…; it needs the same access as recording a send.

For the customer's statement of account, see Receivables.