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 Adjust stock for corrections, recounts, loss, or damage; review posted adjustments in History.
- 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
Enter the supplier’s business details and the documents required for its actual supply source.
- Open Inventory › Suppliers and choose Add supplier.
- Enter Supplier name, Tax ID, address, and contact details.
- Answer whether you will buy flower from this supplier and choose the source that matches the business.
- Provide the licence and supporting documents required by that source. Direct farm sourcing also asks for GACP details.
- Choose Save draft if information is incomplete, or Add supplier when all required details are ready.
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, then choose Next: Items.
- Add each product once with a quantity and unit cost.
- Choose Review order and check 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.
- 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.
- Choose Next: Destination, confirm the PO destination branch, select Room, and enter the Delivery note.
- Choose Review delivery and check the details and any validation messages before posting.
- 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.
- In Delivery, choose Product and enter Quantity received. Add Unit cost, Expiry date, and Batch or lot when available.
- Choose Next: Destination, then select the branch, active Supplier, and destination Room.
- Add a Delivery note that identifies the source event.
- Choose Review receipt and check the product, quantity, source, and destination.
- Choose Check in stock once the review is correct.
How to move stock between rooms
Move stock transfers an existing batch between rooms in the same branch. Use Transfers for another branch.
- Open Inventory and choose Move stock.
- Choose From room and To room, then select the Batch for the product you are moving.
- Enter the quantity physically moving and review the available quantity.
- Choose Move stock, then check the room balances and History.
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 the branch, then choose Next: Count scope.
- 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 Review count. Confirm the scope and 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, select the branch, and choose Add stock correction, Set counted quantity, or Remove stock.
- Select Product and batch and enter the quantity shown for the chosen reason.
- Choose Next: Details. For a removal, select Removal reason and Outcome, and enter the required Removal note.
- Choose Review adjustment and check the effect on stock before choosing Post adjustment.
- For a removal, complete the manager PIN approval when prompted.
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.
- Choose the source branch and batch and enter the quantity consumed, then choose Next: Finished product.
- Choose Finished product, enter the output quantity in the displayed unit, and choose Finished room.
- Enter Finished batch and Expiry date when applicable.
- Enter waste and a Processing note when used, then choose Review conversion.
- Check source, output, waste, and destination. Complete any approval requested, then 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.