Stock Settings
This page explains every section and control on Admin → Settings → Stock. Use it to configure reservations, alerts, cart limits, stock display, when stock is reduced or reserved, custom messages, admin notifications, and migration into the warehouse system.
Where to find it: Log in to the Admin panel, go to Settings, then open Stock. The page is a single form; use Save settings at the bottom to store your changes. Some actions (e.g. "Apply to all products", "Run migration") run immediately and do not require saving the form.
1. Stock Reservations
Purpose: Reserve stock when customers add items to the cart so the same units are not sold twice.
| Control | What it does |
|---|---|
| Enable Stock Reservations | Turn on to reserve stock when an item is added to the cart. The reserved quantity is released when the cart is abandoned (after the timeout below) or when the order is completed/cancelled. Turn off to disable reservations (stock is only deducted when you configure it in "Stock Management" below). |
| Reservation timeout (minutes) | Shown only when reservations are enabled. Time in minutes (1–1440) after which an inactive cart's reservation is released. Example: 30 means reserved stock is freed 30 minutes after the last activity if the customer does not complete the order. |
2. Stock Watchdog
Purpose: Let customers subscribe to be notified when an out-of-stock product is available again.
| Control | What it does |
|---|---|
| Enable Watchdog | Turn on to show the "Notify me when available" (or similar) option on out-of-stock products. Turn off to hide it. |
| Max Watchdog per user | Shown only when Watchdog is enabled. Maximum number of products one customer can subscribe to. Leave empty for no limit. |
3. Global Stock Status
Purpose: See how many products/variants are in each status and optionally set the same status (and backorder flag) for all products and variants, or sync status from actual warehouse stock.
Current Stock Status Overview
The coloured boxes show how many products have each status: In stock, Low stock, Out of stock, On backorder, Preorder. Below, total number of products and variants is shown.
Apply a status to all products
| Control | What it does |
|---|---|
| Stock status | Dropdown: In stock, Low stock, Out of stock, On backorder, Preorder. Choose the status you want to apply. |
| Allow backorder | Toggle. When applied, sets "allow backorder" for all selected products/variants (they can be bought even with 0 stock). |
| Apply to variants | Toggle. If on, the same status and backorder flag are applied to all product variants as well. If off, only simple products (no variants) and product-level status are updated. |
| Apply to all products (button) | Applies the selected status and "allow backorder" to every product (and optionally every variant). Use this to force a single status across the catalog (e.g. everything "In stock"). A success message shows how many products and variants were updated. |
Sync status from stock
This sets each product's (and optionally variant's) stock status from its actual warehouse stock, using the Low stock threshold from settings:
- 0 units → Out of stock
- Above 0 but below low stock threshold → Low stock
- At or above low stock threshold → In stock
| Control | What it does |
|---|---|
| Apply to variants | Same toggle as above. If on, variant status is synced from variant stock; products with variants get a status derived from their variants (e.g. if any variant is in stock, product can show In stock). |
| Sync status from stock (button) | Runs the sync. Products/variants that already have the correct status are not changed. A message shows how many products and variants were updated. |
Use "Apply to all products" when you want one status everywhere. Use "Sync status from stock" when you want status to reflect current warehouse quantities.
4. Cart Limits
Purpose: Limit how many units of a product can be added to the cart (globally and per product).
Global limit
| Control | What it does |
|---|---|
| Default Max Quantity Per Product | Number (1–1000). Default maximum quantity per product in the cart for the whole store. A product can have its own limit (see "Per product limits"); if set, that overrides this default. |
| Apply to all products (button) | Sets the max cart quantity of every product to the value in "Default Max Quantity Per Product" above. Use this to reset all products to the same limit. A success message shows how many products were updated. |
Per product limits
Use this to set or change the cart limit for one product at a time.
| Control | What it does |
|---|---|
| Select product | Search and select a product. |
| Max quantity | Maximum quantity allowed in the cart for that product (1–1000). Leave empty or set to clear the product-specific limit so the global default is used. |
| Save (button) | Saves the max cart quantity for the selected product. A success message confirms; the selector and field can be cleared for the next product. |
The effective limit for a given product is: its own max_cart_quantity if set, otherwise the Default Max Quantity Per Product from settings.
5. Low Stock Alerts
Purpose: Define when stock is considered "low" and optionally trigger admin alerts.
| Control | What it does |
|---|---|
| Enable Low Stock Alerts | Turn on to use the low stock threshold for alerts and for "Sync status from stock" (see section 3). Turn off to disable low-stock-based behaviour. |
| Low stock threshold | Number (≥ 0). Stock is "low" when quantity is above 0 but below this value. Used for low-stock status, sync-from-stock, and (if enabled) admin notifications. |
6. Stock Management
Purpose: Global rules for backorders, how stock is shown on the shop, cross-warehouse fulfillment, and when stock is reduced or reserved on payment.
| Control | What it does |
|---|---|
| Allow Backorder (Global) | Turn on to allow customers to order products that are out of stock (backorders). Turn off to block adding to cart when there is no available stock (unless the product has its own backorder setting). |
| Stock Display Mode (Global) | How stock information is shown on product pages. Options: Always show – show stock level whenever relevant; Show only when low stock – show only when stock is below the low stock threshold; Show only when out of stock – show only when stock is 0; Never show – hide stock on the frontend. Individual products can override this. |
| Allow cross-warehouse fulfillment (Global) | Turn on to allow fulfilling an order from any warehouse that has stock, even if the chosen shipping method's warehouse has none. Turn off to require stock in the shipping method's warehouse. |
| Reduce Stock on Payment | Turn on to reduce warehouse stock when the order is paid (e.g. after successful payment). Reduces stock immediately on payment. |
| Reserve Stock on Payment | Turn on to reserve stock when the order is paid; the reserved quantity is then deducted when the order moves to a completed/processing/paid state, and released if the order is cancelled. |
If both Reduce Stock on Payment and Reserve Stock on Payment are on, the page shows a note: both behaviours can apply (reduce on payment and reserve/deduct on order state). Use one or the other unless you intentionally want both.
7. Custom Stock Messages
Purpose: Define the text customers see for each stock state (high stock, low stock, out of stock, on backorder, preorder), per language.
High / Low stock thresholds (in this section) define the boundaries for the messages:
- High stock threshold – From this quantity upward, the "high stock" message is used (e.g. "In Stock").
- Low stock threshold – Same value as in "Low Stock Alerts". Between low and high (exclusive), the "low stock" message is used; at 0, the "out of stock" message is used.
Behaviour on the shop: When warehouse (available) stock is 0, the shop always shows the out-of-stock message, regardless of the product's stock_status field. For stock > 0, the product's status and these messages determine the label. You can use "Sync status from stock" (section 3) so status and labels stay in line with warehouse stock.
Per locale: Use the tabs (e.g. SK, EN, CS) and fill in, for each language:
| Message | When it is shown |
|---|---|
| High stock message | Stock ≥ high stock threshold. |
| Low stock message | Low stock threshold < stock < high stock threshold. |
| Out of stock message | Stock = 0. |
| On backorder message | Shown when the product is in backorder state (configurable per product). |
| Preorder message | Shown when the product is in preorder state (configurable per product). |
Leave a field empty to use the system default for that locale. These values are stored in Stock settings and used on the frontend; product-level custom messages can override them per product.
8. Admin Notifications
Purpose: Choose when admins are notified by email (or other channels your app uses).
| Control | What it does |
|---|---|
| Notify admin on Watchdog signup | Turn on to notify admins when a customer subscribes to an out-of-stock product (Watchdog). Turn off to disable these notifications. |
| Notify admin on low stock | Turn on to notify admins when a product's stock falls to or below the low stock threshold. Turn off to disable low-stock notifications. |
9. Stock Migration
Purpose: Copy existing product and variant stock quantities into the warehouse stock system (one warehouse). Use this when moving from a single "stock" field per product/variant to the multi-warehouse model.
Migration statistics (refreshed when you open the page or click Refresh stats):
- Products pending migration – Products that still have stock in the old field and no warehouse stock record.
- Variants pending migration – Variants in the same situation.
- Products migrated / Variants migrated – Counts that already have at least one warehouse stock record.
- Target warehouse – The warehouse that will receive the migrated stock (default warehouse, or "ESHOP" if set). If none exists, migration will create one.
Options
| Option | What it does |
|---|---|
| Include products | If on, simple products (no variants) with stock in the old field and no warehouse stock get a warehouse stock row with that quantity. |
| Include variants | If on, variants with stock in the old field and no warehouse stock get a warehouse stock row with that quantity. |
| Clear legacy stock | If on, after creating the warehouse stock row, the original product/variant stock field is set to 0. If off, the old field is left unchanged (you can clear it later yourself). |
Buttons
| Button | What it does |
|---|---|
| Run migration | Runs the migration with the current options. Only products/variants that have no warehouse stock yet are processed. Disabled if nothing is pending or if both "Include products" and "Include variants" are off. Shows how many products and variants were migrated and which warehouse was used. |
| Refresh stats | Reloads the migration statistics (pending/migrated counts and target warehouse) without running migration. |
After migration, those products/variants use warehouse stock as the source of truth; the rest of the app (Stock Management, shop, cart) uses warehouse totals as described in the Stock overview.
10. Save settings
Save settings (bottom of the page) saves all form fields in sections 1–2 and 5–8 (reservations, watchdog, cart default, low stock alerts, stock management toggles and display mode, custom messages, admin notifications). It does not run "Apply to all products", "Sync status from stock", "Apply to all products" (cart limit), per-product Save, or "Run migration"; those actions take effect immediately when you click their buttons.
Quick reference: where settings are used
| Setting | Used for |
|---|---|
| Enable Stock Reservations + timeout | Cart reservations; release after timeout or on order/cancel. |
| Enable Watchdog + max per user | "Notify me when available" on out-of-stock products. |
| Low stock threshold | Low-stock status, "Sync status from stock", low-stock alerts and display. |
| Default max quantity / per product | Max quantity per product in cart. |
| Allow backorder global | Whether customers can add out-of-stock items to cart (unless overridden per product). |
| Stock display mode global | Whether and when stock is shown on product pages. |
| Cross-warehouse fulfillment | Fulfillment from any warehouse vs. only shipping method's warehouse. |
| Reduce / Reserve stock on payment | When stock is deducted or reserved (payment vs. order status). |
| High / Low stock threshold + messages | Customer-facing stock labels (e.g. "In Stock", "Out of Stock"). |
| Admin notifications | Emails when someone signs up for Watchdog or when stock goes low. |
For day-to-day stock changes (add, subtract, transfer, import/export), use Admin → Stock (see Stock overview). For warehouse management (create/edit warehouses, set default), use Admin → Warehouses.