Inventory & purchasing
Follow every product and batch from supplier order to sale, count, transfer, processing, or adjustment.
Understand inventory
How to choose the correct inventory workflow
Inventory separates records by task so each stock change keeps its source, batch, room, employee, and document trail.
- Use Products to find sellable items, on-hand stock, incoming stock, batch sources, checkout visibility, and recent movements.
- Use Rooms to define branch stock locations and start a room count.
- Use Suppliers and Purchase orders for approved purchasing and receiving.
- Use Transfers to move identified batches between branches.
- Use Counts for product, room, or full-shelf physical counts.
- Use Adjustments for posted corrections, recounts, loss, or damage.
- Use History to filter and export the permanent movement ledger.
How to inspect a product and its batches
Open product detail before correcting stock so you can identify the exact batch and recent movement that explains the balance.
- Open Inventory › Products and search by product name, SKU, or batch.
- Choose Open stock detail on the product.
- Review Sellable stock, Incoming, and Checkout visibility.
- Under Source, confirm the supplier and each batch code, expiry date, and quantity.
- Under Movement history, review the most recent posted changes before choosing Receive stock or Adjust stock.
How to control branch price and checkout visibility
A branch override can change the profile, unit price, or checkout visibility without changing the product’s default record.
- Open Inventory › Products and open the product stock detail.
- Choose Edit branch pricing.
- Choose Price profile or leave Product default.
- Enter Unit price (THB) when the branch needs a specific price.
- Set Visible at checkout, then choose Save override.
Suppliers & purchase orders
How to add a supplier
New suppliers begin as drafts because stock cannot be received until required compliance documents are verified.
- Open Inventory › Suppliers and choose Add supplier.
- Enter Supplier name and, when available, Legal company name.
- Choose Product supplied and enter Location, Contact name, and Phone / LINE.
- Set COA requirement to Required per batch, On file for current batches, or Not required.
- Add Internal notes, then choose Save supplier draft.
How to create a purchase order
A purchase order records expected products and costs but does not change stock until a delivery is received.
- Confirm the supplier is Active, then open Inventory › Purchase orders and choose New PO.
- Choose Purchase order supplier and enter Purchase order date.
- Add Expected arrival and Purchase order note when used.
- Add each product once with a quantity and unit cost.
- Review shipping, VAT, subtotal, and total.
- Choose Save draft or Create & send PO.
How to receive a full or partial purchase order
Receive only the physical quantity delivered. Partial quantities leave the purchase order open for later receipts.
- Open Inventory › Purchase orders, choose Open on the PO, then choose Receive delivery.
- Choose Purchase order receipt room and enter the Delivery note.
- For each delivered line, enter Quantity to receive, Batch code, and Expiry date when applicable.
- Confirm the quantity does not exceed the remaining ordered amount.
- Confirm the supplier has a verified COA when its COA rule requires one.
- Choose Check in stock.
Receiving & rooms
How to receive stock without a purchase order
Direct receiving posts one identified branch batch and should be used only when no existing purchase order represents the delivery.
- Open Inventory and choose Receive stock.
- Choose Product, active Supplier, and destination Room.
- Enter Quantity received and Unit cost.
- Enter Expiry date only when the product has one.
- Enter Batch or lot and a Delivery note that identifies the source event.
- Confirm a verified COA is available when required, then choose Check in stock.
How to add or change a stock room
Rooms identify where stock is physically held and whether it can supply checkout.
- Open Inventory › Rooms and choose Add room, or choose Edit on an existing room.
- Enter Room name and Purpose.
- Set Checkout access to Visible stock or Backroom only.
- Set Default count to All stock in room, Flower only, or Oil only.
- Choose Add room or Save room.
Counts, adjustments & processing
How to start the correct stock count
Choose the smallest count scope that matches the physical work being performed.
- Choose Count stock or open Inventory › Counts and choose Start count.
- Choose One product to count every current batch for one product.
- Choose One room to count every batch in one location.
- Choose Full shelf to count all current stock.
- Choose the Product or Room when required, then choose Start count.
How to finish a blind count with no variance
Enter what is physically present without using the expected balance as a target.
- Count each physical batch and enter its Counted stock value.
- Leave the field so PorThorOS saves the line and reveals its expected quantity.
- Continue until every line is counted.
- Choose Review count.
- When everything matched, choose Finish count.
How to resolve and post a count variance
A variance becomes a permanent stock movement only after its reason and required approval are recorded.
- From Review count, inspect each counted and expected quantity.
- Choose the Reason for every mismatched batch.
- Enter Manager PIN when manager approval is requested.
- Choose Post adjustment.
- If saving or posting fails, keep the entered values and choose Retry rather than starting another count.
How to post a manual stock adjustment
Use Adjust stock only after identifying why the current recorded batch quantity is wrong.
- Choose Adjust stock and select Adjustment reason: Add stock correction, Inventory recount, or Loss or damage.
- Choose Adjustment product and batch.
- Enter Quantity to add, Physical quantity counted, or Quantity to remove as shown for the reason.
- For loss or damage, choose Disposal reason and Method, add Witness when used, enter Manager PIN, and enter a Disposal note.
- Choose Post adjustment.
How to process source stock into a finished batch
Process records consumption and finished output together so the new batch stays traceable to its source.
- Choose Process.
- Select Source product and batch and enter Quantity consumed.
- Choose Finished product, enter Quantity created, and choose Finished room.
- Enter Finished batch and Expiry date when applicable.
- Enter Waste from source, Manager PIN, and a Processing note when used.
- Choose Process stock.
Transfers & history
How to transfer stock between branches
A transfer moves selected batches through request, approval, dispatch, and destination receipt.
- Open Inventory › Transfers and choose New transfer.
- Choose the destination and add each source product, batch, and quantity.
- Choose Send for approval.
- Enter Manager PIN and choose Approve transfer.
- Choose Dispatch transfer; the status becomes In transit.
- At the destination, open the transfer and choose Receive all.
How to record a transfer variance
The destination must record the actual quantity before accepting stock when the delivery differs from the dispatch.
- At the destination, open the In transit transfer.
- Enter Received quantity for each line.
- Choose Variance reason and enter Variance note when needed.
- Choose Record variance.
- Review the Variance status, then choose Accept quantities & close.
How to investigate and export inventory history
History is the permanent movement ledger and should be checked before any correcting adjustment.
- Open Inventory › History.
- Use Search inventory history for item, SKU, batch, or document.
- Filter by Reason, Employee, From date, and To date.
- Review Date, Item, Change, Reason, and Document on each result.
- Choose Export CSV to download the current filtered view.