> ## Documentation Index
> Fetch the complete documentation index at: https://docs.now-os.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage stock at the register

> Receive, adjust and count a product's stock directly from the NowOS register, in retail mode.

In retail mode, stock is managed **from the register**, where products come in and go out. You receive deliveries, fix discrepancies (breakage, loss) and do physical counts without going through the backoffice. On-hand stock updates everywhere and stays viewable in the [backoffice Inventory](/en/backoffice/inventory).

<Note>
  Only products with **stock tracking turned on** offer these actions. Tracking is enabled per product in the [backoffice catalog](/en/backoffice/inventory#configure-tracking-for-a-product).
</Note>

## Open the stock actions

<Steps>
  <Step title="Long-press the product">
    Press and hold the product tile in the menu. The tile lifts and a menu appears.
  </Step>

  <Step title="Pick a stock action">
    Under the **STOCK** section, tap **Adjust stock** or **Count stock**.
  </Step>
</Steps>

## Products with versions (variants)

For a product sold in **several versions** (sizes, formats…), stock is counted **per version**: each version has its own stock. Long-pressing the tile then opens the list of versions instead of the direct menu.

<Steps>
  <Step title="Long-press the variant product">
    The **Stock by version** sheet opens: each version shows its stock (in stock, low, out, or unavailable).
  </Step>

  <Step title="Tap a version">
    You reach the actions for that exact version: **Adjust stock**, **Recount**, and **Mark unavailable** (or **Make available**).
  </Step>
</Steps>

Marking a version **unavailable** blocks it from sale: it appears dimmed and non-selectable in the version picker, on every register. A stock-tracked version also turns "out" automatically when its on-hand reaches zero.

## Adjust stock

**Adjust stock** adds or removes units — this is what you use for a delivery **receipt** or to record **breakage**, **loss** or **waste**.

<Steps>
  <Step title="Pick the movement">
    **Add** (e.g. a receipt) or **Remove** (breakage, loss…).
  </Step>

  <Step title="Set the quantity">
    Use the − and + buttons for the number of units.
  </Step>

  <Step title="Pick the reason">
    **Received**, **Damage**, **Loss**, **Waste** or **Correction**. The reason shows up in the product's history.
  </Step>

  <Step title="Save">
    Tap **Save adjustment**. On-hand stock is updated.
  </Step>
</Steps>

## Count stock

**Count stock** is for a **physical count**: you enter the quantity actually on the shelf, and NowOS shows the variance against the expected stock, then sets on-hand to your count.

<Steps>
  <Step title="Enter the counted quantity">
    Type the number of units you actually counted.
  </Step>

  <Step title="Check the variance">
    The sheet shows the **expected** stock and the **variance** against your count.
  </Step>

  <Step title="Save">
    Tap **Save count**. On-hand becomes exactly your count.
  </Step>
</Steps>

## Sales and refunds

Stock updates **automatically** through service: each sale of a tracked product **decrements** its quantity. A [refund](/en/pos/refunds) **credits** it back only when **"Return items to stock"** is enabled (on by default for item or full refunds, never for a free-amount refund) — leave it off when the goods are damaged or kept. These movements appear in the product's history.

## Good to know

* Any team member can adjust or count stock — no manager PIN is required. The name and time are recorded.
* When a product drops to **zero**, by default it can no longer be ordered: it shows **Sold out** until the next receipt — automatically, without the manual [unavailable](/en/pos/sold-out) mark. If **overselling** is allowed (see [setting](/en/backoffice/inventory#overselling-negative-stock)), it stays orderable with an "Out" badge.
* A **scanned** product always sells, even at zero: the item is physically there (on-hand then goes negative, to reconcile later). A manual removal stops at zero, unless overselling is allowed.
* These actions need the **main register**. If it's unreachable, a message tells you — try again once the connection is back.
