# Inventory

> Ingredients, warehouses, stock levels, movements and low-stock alerts.

Source: https://sofra.tablixai.com/docs/inventory

Section: Back office

Inventory tracks the **ingredients** you buy and use, **where** they are stored, **how much** you have and **every movement** in or out. Combined with [recipes](https://sofra.tablixai.com/docs/recipes), it deducts stock automatically when dishes sell.

> **Available on Basic and above:** Inventory is available from Basic.

_Screenshot: Inventory overview: total items, low stock, and shortcuts._

## Set up in this order

1. **Create warehouses.** Storage locations in a branch, such as Main Kitchen Store, Cold Room or Bar. Each has a type: main, cold, dry, bar or other.
2. **Create ingredients.** The master list: flour, mozzarella, tomatoes. Each has a name, category, **unit** and description.
3. **Record opening stock.** Add a movement of type *Receive* (or set the level directly) for each ingredient in each warehouse.
4. **Set reorder levels.** On each stock item set the **reorder level** (the low-stock trigger), **max level** and **cost per unit**.
5. **Link recipes.** Connect menu items to ingredients so sales deduct stock. See [Recipes](https://sofra.tablixai.com/docs/recipes).

## Warehouses

Go to **Inventory → Warehouses** and add one with a name and type. Warehouses belong to a branch. When a sale deducts stock, Sofra uses the branch’s **main**-type warehouse, or the first active warehouse if none is marked main.

_Screenshot: Warehouses for a branch._

## Ingredients

Go to **Inventory → Ingredients** and choose **Add Ingredient**. Units available: kg, g, L, ml, pcs, dozen, box and bag. Ingredients are shared by the whole restaurant; only their quantities are per warehouse.

_Screenshot: The ingredient catalog._

## Stock levels

**Inventory → Stock Levels** shows the current quantity of each ingredient in each warehouse, with its unit, reorder level, max level and cost per unit. Items at or below their reorder level are flagged. You can **adjust** a stock item directly (for example after a count), which sets the figures without recording a movement.

_Screenshot: Stock levels with low-stock flags._

## Stock movements

**Inventory → Movements** is the full history of stock going in and out. Choose **Record Movement** to add one: pick the warehouse, ingredient, type, quantity, unit, cost per unit (optional) and notes.

| Type | Effect on stock |
|---|---|
| Receive | Adds stock (goods received). |
| Transfer in | Adds stock (from another warehouse). |
| Adjustment | Adds stock (a correction upwards). |
| Count | Adds stock (a counted figure). |
| Consume | Removes stock. Created automatically by sales. |
| Transfer out | Removes stock (to another warehouse). |
| Waste | Removes stock (spoiled or discarded). |

Each movement records who made it, when, and a reference (for sales, the order number). Recording a movement updates the stock level at the same time.

> **Stock can go below zero:** Automatic deductions are not blocked when stock runs out. A negative level is a signal that a delivery was not recorded. Fix it by recording a Receive movement.

## Low-stock alerts

A stock item with a reorder level above zero is a **low-stock alert** when its quantity is at or below that level. Alerts appear on the Inventory overview (Low Stock and Out of Stock counts) and on the dashboard’s inventory alert panel, and can be filtered to a branch.

## Permissions

`inventory:read` to view; `inventory:write` to create ingredients, warehouses, movements and recipes and to adjust stock. Cashiers and waiters do not have it by default.