Help Center

Stock levels, adjustments and damaged items

Chris Muench
Chris Muench
  • Updated

Each item's Inventory tab holds its reorder and replenish levels, days to expiration, current quantity, suspended and damaged stock, and an add/subtract adjustment box with a comment. Every change lands in the inventory ledger with quantity, employee, date and remark — this article covers each field, the permissions behind them, and the reports that read them.

Stock numbers you cannot explain are stock numbers you cannot trust. PHP Point Of Sale is built so that every change to on-hand quantity leaves a trace: what moved, how much, who did it, when, and why. This article walks through the item's inventory settings field by field, the ledger that records every movement, and the tools for damage, expiry and multi-location stock.

The items list showing cost, selling price and quantity on hand for each item

The item's Inventory tab

Open Items, edit an item, and click the Inventory tab (service items have no inventory, so the tab is hidden for them). The fields:

  • Reorder Level — when to act: once on-hand quantity falls to this point, the item appears on the Low Inventory report and becomes a candidate for automatic purchase orders. Set Default Reorder Level When Creating Items in Store Config to prefill it on new items.
  • Replenish Level — how far to go: the quantity to bring stock back up to when you reorder. The gap between reorder and replenish levels is your order quantity, so purchasing becomes arithmetic instead of guesswork.
  • Days to expiration — for perishables: how long a received batch lasts, counted from the day it is received. Drives the expiring-stock tools below and the expire date printed on labels. Default days to expire when creating items in Store Config prefills it.
  • Current Quantity — the on-hand count at your current location. Visible and editable only with the right permissions (below); typing a new number here adjusts stock directly.
  • Limited Sales Quantity — caps how many can be sold in one sale.
  • Suspended Inventory — read-only: the quantity of this item sitting on suspended sales (layaways, held orders) at your location, so you know the difference between "in the building" and "available" — see suspended sales, layaways and estimates.
  • Damaged Qty — enter units that broke, spoiled or arrived damaged. As soon as you type a number, a Damaged Reason dropdown appears; the quantity is subtracted from current stock and logged (see the damaged items section below).
  • Inventory to add/subtract — the manual adjustment box: enter a positive number to add stock or a negative one to remove it. Requires the Edit quantity permission.
  • Comments — the note stored with the adjustment in the ledger. Use it to say why: "found a case in the back", "miskeyed receiving", "expected delivery Tuesday — tell customers".

Click Save and the adjustment is applied, logged, and pushed to your connected ecommerce platform if you have one (how ecommerce sync works).

For an item with variations, the Inventory tab shows a table instead, with the same controls per variation: reorder level, replenish level, current quantity, limited sales quantity, damaged qty with reason, add/subtract and comments — each variation tracks its own stock.

If you use Shopify, this tab also carries the Shopify inventory policy for the item: allowed or not allowed to be sold online when out of stock — see connecting Shopify.

Some of these numbers can also be set per location on the item's Locations tab; a location-specific value overrules the general one. And for mass changes, every one of these fields is a column in the Excel import — including per-location quantity, reorder and replenish columns — see importing your data.

The inventory ledger

Every stock movement — a sale, a receiving, a transfer, a count adjustment, a damaged entry, a manual edit — lands in the inventory ledger. The bottom half of the item's Inventory tab shows it: date and time, Employee, Variation, quantity in/out, the resulting quantity in stock, and a remark. Remarks link back to their source — "POS 31" opens that sale's receipt, "RECV 12" opens the receiving — and count adjustments read "Inventory count adjustment". Nothing changes stock silently.

Three quick buttons above the table open the Detailed Inventory Report for this item over the last 7 days, last 30 days or this year, and the table itself can be printed. Employees with the Can Edit Inventory Comment permission can click a remark and reword it after the fact.

For a store-wide view, run the Inventory Audit report under Reports — it plays the ledger back across items, so when a count looks wrong you can trace exactly how it got there: which sale, which receiving, which adjustment. It is the first place to look when a number surprises you.

Make a manual adjustment

  1. Go to Items, find the item, and open its Inventory tab.
  2. Enter the change in Inventory to add/subtract5 adds five, -5 removes five. (Or type the correct total into Current Quantity.)
  3. Write the reason in Comments.
  4. Click Save. The ledger entry records the quantity, your name, the date and your comment.

For correcting many items at once, run a proper count instead — see counting inventory. For stock arriving from a supplier, always use receivings rather than adjustments, so cost tracking stays correct.

Damaged items

When product breaks, spills or dies on the shelf, log it as damaged rather than quietly adjusting the count:

  • One item at a time — enter the number in Damaged Qty on the Inventory tab and pick a Damaged Reason. The quantity is subtracted from stock, the reason goes into the ledger, and the damage is recorded for reporting.
  • In bulk — in Items, open the more menu () and choose Count Damage Inventory. Download the Excel template — columns Item Id/UPC/Product ID, Damaged Qty, Damaged Reason — fill it in and upload. Each row subtracts the damaged quantity at your current location and writes a ledger entry with the reason as its remark.

The reason list is yours to define: set Damaged Reasons in Store Config (a comma-separated list — breakage, spoilage, theft, whatever fits your store). The Damaged Items Report under Reports then totals your shrink by item and reason — the difference between "we lose some stock" and knowing that spoilage in the dairy case is the actual problem.

Expiring items

For perishables, set Days to expiration on the item. Each receiving then stamps its batch with an expire date, and three things start working:

  • The dashboard shows an expiring-items panel.
  • The Expiring Items Report and Expired Inventory Report list everything approaching or past its date, with the quantity expiring — so you can discount stock while it can still be sold instead of discovering it in the damaged log.
  • Labels printed from a receiving carry the expire date (unless Hide Expire Date on Barcodes is set) — see barcodes and labels.

Reorder levels and restocking reports

Reorder and replenish levels feed the purchasing loop: the Low Inventory report lists everything at or below its reorder level, and purchase orders can be generated from it. Two more reports help you read stock over time: Inventory Summary at Past Date reconstructs what you held on any prior day, and Inventory Aging shows how long stock has been sitting — the slow movers tying up your cash. The Inventory Summary report values everything on hand by cost and by selling price. See inventory and purchasing reports.

Multiple locations

With more than one location, each location holds its own quantity for every item:

  • The item's Locations tab sets per-location quantity, reorder level, replenish level and prices; location values override the item-wide ones.
  • Adjustments, damage entries and counts always apply to the location you are signed into, and the ledger records the location on every entry.
  • The See Item Quantity permission controls whether an employee sees quantities at all; employees restricted to certain locations only see and adjust stock there. The Items-module View Inventory at ALL locations permission lifts that restriction in one place: the item-details popup (opened by clicking an item's name on a sale, receiving or count line) and its sales-velocity view then list stock at every location, not just the employee's assigned ones.
  • A Do Not Sell At This Location flag blocks an item from selling at locations that should not carry it.
  • Stock moves between locations through transfers, which write to both locations' ledgers.

Permissions

All on the Items module — assign them in permissions and templates:

Permission What it allows
See Item Quantity See current quantities on items and lists
Edit quantity Use add/subtract and Current Quantity, and close counts with inventory update
Count inventory Run inventory counts and the damaged-inventory import
See inventory count when counting inventory See expected quantities during a count (remove for blind counts)
Can Edit Inventory Comment Reword ledger remarks after the fact
View Inventory at ALL locations See stock at every location in the item-details popup, regardless of the employee's assigned locations — distinct from the reports permission View Inventory Reports at ALL locations, which does the same for inventory reports

Common questions

An item's quantity is wrong — how do I find out why? Open the item's Inventory tab and read the ledger at the bottom: every sale, receiving, transfer, count adjustment and manual edit is listed with employee, date and remark. For a store-wide view run the Inventory Audit report.

How do I fix a wrong quantity? Enter the difference in Inventory to add/subtract (negative to remove) with a comment explaining why, then save. If many items are wrong, run an inventory count instead.

What is the difference between reorder level and replenish level? Reorder level is the trigger — at or below it the item shows on the Low Inventory report. Replenish level is the target — the quantity a purchase order tops you back up to. Order quantity = replenish level − current quantity.

Why can't my employee change quantities? They are missing the Edit quantity permission on the Items module. Without See Item Quantity they cannot even see the numbers.

Does damaged stock come out of my inventory? Yes — entering a Damaged Qty (or importing damaged rows) subtracts that quantity from current stock immediately and writes a ledger entry with the reason. The Damaged Items Report totals it by reason.

Can negative quantities happen? Yes — selling stock the system did not know you had drives the count negative rather than blocking the sale. The Inventory Summary report can filter to negative inventory only; fix the causes with a count or receiving.

Do adjustments update my online store? Yes. Manual adjustments, damage entries and count closes push the new quantity to your connected ecommerce platform — see how ecommerce sync works.

Where do I set what "damaged reasons" are available? Store Config → Damaged Reasons — a list you define yourself; the dropdowns on the item form and variation table use it.

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request

Comments

0 comments

Please sign in to leave a comment.