Purchase Orders (PO)
A purchase order (pesanan pembelian, PO) is the list of goods you order from one supplier for one branch. On the same PO you record the goods as they arrive (in one go or in parts): stock goes up at the destination branch, the cost price (HPP) updates automatically, and you can track how much you still owe the supplier.
Open it from Inventory → Purchase orders in the web Dashboard or the Dashboard mobile app.
Purchase orders launch with this release. The page may look slightly different from the description below, but it works the same way.
Who can use it
- Plan: creating and editing POs is available on the Pro and Enterprise plans. See Billing & Plans.
- Role: Owners and Admins can use every PO feature. Cashiers can't open this page, because POs show purchase prices. See Staff roles.
- Shop type: a PO adds stock, so it's only for shops that track stock. Booking, Rental, and Digital shops without unit stock can't create POs.
If your plan drops below Pro, you can still view past POs. Goods on POs that were already ordered can still be received, POs can be closed, and payments can still be recorded, so goods in transit aren't stuck. Creating a new PO, editing a PO, and marking a PO as ordered need the Pro plan again.
PO statuses
| Status | Meaning |
|---|---|
| Draft | The PO is still being prepared. Every field and item can be changed |
| Ordered | The PO has been sent to the supplier. The item list is locked while you wait for the goods |
| Partially received | Some goods have arrived, the rest is still expected |
| Received | All goods have arrived |
| Closed | Some goods arrived and the rest won't be delivered. The PO was ended early |
| Canceled | The PO was canceled before any goods arrived |
The buttons on a PO's detail page follow its status, so you only see the actions you can actually take.
1. Set up the supplier
Every PO goes to one supplier. Make sure the supplier is on the Suppliers page, with contact details and payment terms. The payment terms are copied onto the PO and used to work out the due date.
2. Create a PO
Tap New PO, then fill in:
- Supplier (required). You can add a new supplier straight from this form.
- The destination branch, where the goods will be received, if your shop has several branches.
- Order date (today by default) and expected date (not before the order date).
- Notes for the supplier, for example "Please deliver in the morning".
- Items: search for a product or scan its barcode, pick the variant if there is one, then enter the quantity and unit purchase price. The purchase price is prefilled from the item's current cost price and you can change it. Each product or variant can appear only once. A PO holds at most 200 lines.
- Discount, tax, and shipping for the whole PO. Tax can be a percentage (for example 11% VAT/PPN) or an amount.
Etalasse calculates the total: subtotal, minus discount, plus tax and shipping. After you save, Etalasse's numbers apply.
Every PO gets an automatic number such as PO-2026-0007. Numbers run per shop and per year, and are never reused, even when a draft is deleted.
Fill from reorder suggestions
The Add from reorder suggestions button lists the items whose stock is at or below their reorder point (see Low-Stock Alerts), for the branch and supplier you picked. For each item you see:
- the current stock and its reorder point;
- the quantity on order on other POs that haven't arrived yet;
- the suggested quantity: enough to bring stock back to twice the reorder point, minus what's on order;
- the last supplier and purchase price.
Tick the items to order, change the quantities if needed, then add them to the PO.
3. Send it to the supplier
When the PO is ready, tap Mark as ordered. This means you've sent the PO to the supplier, for example over WhatsApp or as a printed order document (Surat Pesanan) from the Print button.
Once it's marked as ordered:
- the items, prices, discount, tax, and shipping are locked;
- only the expected date and notes can still change;
- the PO needs at least one item, and its supplier must still exist.
If something is wrong before the goods arrive, cancel the PO and create a new one.
4. Receive goods
When the goods arrive, open the PO and tap Receive goods. One receipt records one delivery:
- Each item still expected is listed with the quantity received (default: what's still outstanding) and the unit purchase price (default: the PO price). Change the quantity if only part arrived, and the price if the invoice price is different.
- Enter the date and time the goods arrived (now by default) and a note, for example the delivery note number.
- Save. Before you save, Etalasse shows how much stock will be added and at which branch.
When the receipt is saved, in one step:
- stock goes up at the PO's destination branch;
- the items' cost price is updated by the cost policy;
- the PO becomes Partially received or Received.
If one line fails, for example because the item was deleted, nothing is saved at all. Fix that line and save again. A saved receipt can't be undone. If something was recorded wrong, fix the stock with a stock adjustment with the Correction reason.
Things to know:
- Receiving in parts. A PO can be received many times. Goods that haven't arrived stay expected until they're received or the PO is closed.
- More than ordered. By default, the quantity received can't be more than what's outstanding. If the supplier really did send more, turn on Allow receiving more in the advanced section. The PO total follows.
- Per-branch stock. Items whose stock is kept per branch can only be received on a PO that has a destination branch.
- Unit stock. If your shop uses unit stock, every unit received becomes a new available unit at the destination branch.
- Stock history. Every receipt line is recorded in Stock Adjustments with the Purchase receipt reason, with the stock before and after. This reason can't be picked by hand.
- Saving twice. If the connection drops while saving and you try again, the same receipt is not recorded twice.
Automatic cost price
Every receipt updates the cost price (HPP) of the items received. The cost price is used in the Profit & Loss Report to work out the cost of goods sold. Pick the shop's cost policy from the Purchase orders page menu:
| Policy | New cost price |
|---|---|
| Weighted average (default) | The average of the old stock at the old cost and the new goods at their purchase price |
| Latest purchase price | The purchase price on this receipt |
| Keep cost price | Unchanged. If the item had no cost price yet, it's filled with this receipt's purchase price |
Weighted average example: you have 10 bottles with a cost price of Rp17,000, then 20 bottles arrive at a purchase price of Rp18,000.
New cost price = (10 × 17,000 + 20 × 18,000) ÷ (10 + 20) = 530,000 ÷ 30 = Rp17,667
Weighted average is the default because it's the usual method in Indonesian small-business bookkeeping (HPP rata-rata). Margins in the profit and loss report don't jump every time a purchase price moves.
Things to know:
- The old stock is the whole shop's stock (all branches) before the goods arrive, because the cost price applies to the whole shop.
- For items with variants, the cost price of that variant is updated.
- You can change the policy for a single receipt in the advanced section of the Receive goods dialog.
- A receipt's details show the cost price before and after for each line.
Close or cancel a PO
- Cancel when no goods have arrived yet (Draft or Ordered). No stock changes. You can add a reason.
- Close when some goods have arrived but the rest won't be delivered. The outstanding quantity is removed from the PO, and the totals and payment status are recalculated on what was actually received. A PO that has received goods can't be canceled, only closed.
Paying the supplier
Every PO has a payment status:
| Status | Meaning |
|---|---|
| Unpaid | Nothing paid yet |
| Partial | Part paid, for example a down payment (DP) |
| Paid | The amount paid is equal to or more than the PO total |
Tap Record payment to enter the amount paid so far (the running total, not an increment), the payment date, the due date, and a note such as "Paid in full by BCA transfer". Payments can be recorded from the moment the PO is ordered, so a down payment before delivery can be recorded too.
The due date is filled in automatically as the date of the first receipt plus the supplier's payment terms, for example 30 days. You can still change it.
To see everything you owe suppliers, use the Payables filter on the PO list. It shows the POs that aren't fully paid, soonest due date first.
PO payments aren't recorded as expenses. The profit and loss report already counts the goods you bought as cost of goods sold when they sell. Recording the purchase as an expense too would count the same money twice.
Delete a PO
A PO can only be deleted while it's a Draft or after it's Canceled. A PO that has received goods stays as history.
Ingredients
Ingredients can be added to a PO like products. Order and receive in the ingredient's base unit (g, ml, or pcs): 5 kg of coffee at Rp120 per gram is quantity 5000 at unit cost 120. The ingredient's average cost updates, and recipe cost follows.