327 lines
15 KiB
Markdown
327 lines
15 KiB
Markdown
---
|
||
title: "Stock Adjustment"
|
||
type: concept
|
||
sources:
|
||
- areas/inventory_management/stock_adjustment/stock_adjustment.md
|
||
- areas/inventory_management/stock_adjustment/quantity_adjust.md
|
||
- areas/inventory_management/stock_adjustment/udm_adjust.md
|
||
- areas/inventory_management/stock_adjustment/al_adjust.md
|
||
- areas/inventory_management/stock_adjustment/reasons.md
|
||
- areas/inventory_management/stock_adjustment/stock_adjustment_RF.md
|
||
- areas/inventory_management/stock_adjustment/stock_adjustment_SmartUI.md
|
||
- areas/inventory_management/stock_adjustment/stock_adjustment_Workstation.md
|
||
- areas/inventory_management/stock_adjustment/stock_adjustment_entity.md
|
||
- areas/inventory_management/stock_adjustment/stock_adjustment_in_RFCount.md
|
||
- areas/inventory_management/stock_adjustment/stock_adjustment_in_WorkStationCount.md
|
||
- areas/inventory_management/stock_adjustment.md
|
||
- areas/inventory_management/double_validation/activate.md
|
||
- areas/inventory_management/double_validation/adjust_register.md
|
||
- areas/inventory_management/double_validation/pending_adjust_actions.md
|
||
- areas/inventory_management/double_validation.md
|
||
- sources/archives/21_Validation_ajustements_stock.md
|
||
related:
|
||
- concepts/stock.md
|
||
- concepts/count.md
|
||
- concepts/location.md
|
||
- concepts/container.md
|
||
- concepts/product-item.md
|
||
- concepts/quality-control.md
|
||
last_compiled: "2026-04-17"
|
||
---
|
||
|
||
# Stock Adjustment
|
||
|
||
## Overview
|
||
|
||
A **stock adjustment** is any manual modification to a stock record's quantity, unit of measure (UoM), or logistic attributes that corrects a discrepancy between the physical reality and the WMS records. Every adjustment requires a **reason** for traceability.
|
||
|
||
Adjustments can be made from three interfaces:
|
||
- **RF terminal (RFT)** — field operators correcting detected errors
|
||
- **SmartUI (PC web)** — manager-level adjustments from the web interface
|
||
- **Workstation / picking conveyor** — adjustments at an automatic warehouse PK station
|
||
|
||
EasyWMS always notifies the ERP of stock changes via **STV** (stock variation) messages, unless the stock originates from a still-open reception (in which case the change is reflected in the interface but no STV is sent until reception closes).
|
||
|
||
A **Double Validation** option can hold adjustments in a **Pending** state, requiring a supervisor to approve or cancel them before any transaction or ERP message is generated.
|
||
|
||
---
|
||
|
||
## Types of Adjustment
|
||
|
||
### 1. Quantity Increase (`+`)
|
||
Increases the quantity of a stock line in a container or location.
|
||
|
||
**Restrictions:**
|
||
- Not allowed on ASN (pre-notified, not yet received) containers
|
||
- Not allowed on client stock containers
|
||
- Cannot exceed the "complete quantity" defined for the presentation
|
||
|
||
**Side effects on tasks:**
|
||
- Putaway tasks for the stock → canceled (location search re-runs with new weight)
|
||
- Picking/shipping tasks not in execution → canceled, stock unassigned, line re-released
|
||
- Shipping tasks in execution → quantities adjusted in-flight
|
||
- Replenishment assignments → checked and adjusted
|
||
|
||
### 2. Quantity Decrease (`−`)
|
||
Decreases the quantity of a stock line in a container or location.
|
||
|
||
**Restrictions:**
|
||
- Not allowed on ASN containers
|
||
- Not allowed on client containers
|
||
- When decreasing to 0: container removed or left empty depending on location config
|
||
|
||
**Side effects on tasks and assignments:**
|
||
- Picking assignments (not in execution): canceled newest-first, lines re-released
|
||
- Shipping assignments: canceled, line re-released
|
||
- Replenishment source assignments: adjusted, tasks decremented/canceled
|
||
- Stock reserves: priority given to highest-priority orders placed earliest
|
||
|
||
**Multi-reception stock:** When adjusted stock originates from multiple receptions, the operator must select which reception the adjustment applies to.
|
||
|
||
### 3. Location / Full Adjustment (Quantity + UoM + Logistic Attributes + Status)
|
||
The most comprehensive adjustment type. Allows changing any field on a stock line:
|
||
- Quantity (up or down)
|
||
- Unit of measure
|
||
- User status (assign, change, remove)
|
||
- Logistic attributes (lot, expiry, serial, etc.)
|
||
|
||
Can also:
|
||
- **Create** new stock lines
|
||
- **Delete** existing stock lines
|
||
|
||
When deleting all stock from a container, the container is removed or left empty depending on location configuration.
|
||
|
||
Available from: RFT (`Utilities > Location adjustment`), SmartUI, Workstation.
|
||
|
||
### 4. Unit of Measure Adjustment (UoM)
|
||
Changes the unit of measure of a stock line. EasyWMS treats this as a delete + recreate.
|
||
|
||
**Side effects:**
|
||
- Shipping assignments requiring the old UoM → EasyWMS searches for substitute stock
|
||
- Client stock with new UoM incompatible with order line → stock unassigned
|
||
- Replenishment assignments requiring the old UoM → substitute stock searched
|
||
|
||
**Communications:** STV sent to ERP.
|
||
|
||
### 5. Logistic Attributes Adjustment (AL)
|
||
Changes one or more logistic attributes of a stock line (lot, expiry date, serial number, etc.).
|
||
|
||
EasyWMS deletes the old stock record and recreates it with new attributes.
|
||
|
||
**Side effects:**
|
||
- Shipping assignments requiring old attributes → substitute stock searched
|
||
- Replenishment assignments requiring old attributes → substitute stock searched
|
||
- Client stock with new attributes incompatible with order line → stock unassigned
|
||
|
||
**Communications:** STV sent to ERP.
|
||
|
||
---
|
||
|
||
## Adjustment Reasons
|
||
|
||
Every adjustment requires a **reason code** selected from the master. Reasons are configured in `Masters > Adjustment reasons`.
|
||
|
||
| Field | Description |
|
||
|---|---|
|
||
| Description | Human-readable label |
|
||
| Sequence | Priority; some processes (PTL picking) auto-select the lowest-sequence reason |
|
||
| Requires comment | Whether a free-text comment is mandatory |
|
||
| ERP code | Code used by ERP-initiated adjustments |
|
||
| Capture process | Which processes may use this reason |
|
||
|
||
**Capture processes** (only one reason allowed per order for Count and Presentation Breakage):
|
||
|
||
| Process | Description |
|
||
|---|---|
|
||
| Adjustment | Manual adjustments from any interface |
|
||
| Count | Adjustments generated by counting processes |
|
||
| Picking | Adjustments made during picking |
|
||
| Scrap | Adjustments during scrap process |
|
||
| Presentation breakage | When opening a presentation to pick a smaller UoM |
|
||
|
||
---
|
||
|
||
## Interface-Specific Details
|
||
|
||
### RF Terminal Adjustments
|
||
|
||
Available options from `RFT > Utilities`:
|
||
- **Increase item** — quantity increase
|
||
- **Decrease item** — quantity decrease
|
||
- **Location adjustment** — full adjustment (qty + UoM + AL + status)
|
||
- **Manual Movement** — move stock/container (see [manual-movements](../concepts/manual-movements.md))
|
||
|
||
RFT also supports:
|
||
- **Adjust in picking location with partitions** — reading a partition label sets both location and item
|
||
- **Adjustment during count** (in-count adjustments reported separately)
|
||
|
||
### SmartUI (Web) Adjustments
|
||
|
||
From `Warehouse > Stock` view, managers can:
|
||
- Apply logistic attribute adjustments to multiple stock lines
|
||
- Apply status changes (also covered under quality control)
|
||
- View the adjustment history
|
||
|
||
### Workstation (Picking Conveyor) Adjustments
|
||
|
||
At the PK station (`Workstations > Picking > Others > Stock Adjustment`), operators can adjust containers currently at the conveyor. Supports full adjustment (qty + UoM + status + AL) and line create/delete.
|
||
|
||
Useful for correcting discrepancies discovered during picking or consolidation.
|
||
|
||
---
|
||
|
||
## Double Validation (Pending Adjustments)
|
||
|
||
When **double validation** is enabled for an item (via item's count profile), adjustments on that item's stock are placed in **Pending** status instead of being applied immediately.
|
||
|
||
In Pending status:
|
||
- The stock change **is applied** to the warehouse inventory
|
||
- The `STK.ADJ` transaction is **not** generated
|
||
- The STV message to ERP is **not** sent
|
||
|
||
A manager must then approve or cancel via `Warehouse > Stock adjustments`:
|
||
|
||
### Validating a Pending Adjustment
|
||
- Marks the change as confirmed
|
||
- Generates `STK.ADJ` transaction
|
||
- Sends STV to ERP
|
||
- Status → **Confirmed**
|
||
|
||
### Canceling a Pending Adjustment
|
||
- **Reverses** the stock change (re-generates deleted stock or removes created stock)
|
||
- No transaction generated, no STV sent
|
||
- Status → **Canceled**
|
||
- If reversal requires moving stock to a different location → `STK.MOVE` transaction generated
|
||
|
||
> **Important:** Canceling an adjustment reverses the delta, not the exact original state. If other processes moved the stock between adjustment and cancellation, a wizard prompts for compatible stock selection.
|
||
|
||
---
|
||
|
||
## Transactions
|
||
|
||
| Transaction | Trigger |
|
||
|---|---|
|
||
| `STK.ADJ` | Stock quantity, UoM, or AL adjustment confirmed |
|
||
| `STK.MOVE` | Generated when canceling a pending adjustment that restores stock to a different location |
|
||
|
||
---
|
||
|
||
## ERP Integration
|
||
|
||
**On adjustment (immediate):**
|
||
- EasyWMS sends **STV** (stock variation) to ERP for each affected stock line
|
||
|
||
**Exception — open reception:**
|
||
- If adjusted stock belongs to a still-open reception, changes are reflected in the WMS interface but **no STV is sent** until reception closes
|
||
|
||
**Double validation:**
|
||
- STV is only sent when the pending adjustment is **validated** by a manager
|
||
|
||
---
|
||
|
||
## Business Rules
|
||
|
||
- Every adjustment (except physical count auto-adjustments) **requires a reason**.
|
||
- Adjusting stock with active tasks triggers automatic task cancellation or decrement, then re-release of affected order lines.
|
||
- Adjustment at quantity = 0 in a container: the container is **removed** or **left empty** depending on the location's "remove empty container" configuration.
|
||
- ASN containers (pre-notified, not yet received) cannot be adjusted.
|
||
- Client stock (already prepared/loaded for a shipping order) has special handling — it can be adjusted but incompatibility with the order line triggers unassignment.
|
||
- For multi-reception stock, the operator selects which specific reception's stock is being adjusted.
|
||
- Cutting stock (non-consolidating UoM) can only be adjusted in whole stretch quantities; partial cutting requires the cutting process.
|
||
|
||
---
|
||
|
||
## Configuration
|
||
|
||
| Parameter | Description |
|
||
|---|---|
|
||
| `MAX_NUM_LABELS_TO_READ` | Enable multi-GS1-128 label reading in adjustment flow (also governs receipts, counts) |
|
||
| `UNLOAD_CREATE_PRODUCT_LOCATION` | Auto-create/update PDL when adjusting in partitioned picking location |
|
||
| `REPLENISH_LEVEL_PERCENT_PRODUCT_LOCATION` | Replenishment level % for auto-created PDL |
|
||
|
||
Double validation is activated per item via its **count profile** (field: double validation flag in `inventory_management/double_validation/items/count_profile.md`).
|
||
|
||
### Count Profile — validation modes (WMS ≥ 2023-02-22)
|
||
|
||
A **Count Profile** (`Configuration → Count Profiles`) decides whether stock adjustments for an item go straight through or wait for supervisor approval.
|
||
|
||
| Mode | Effect |
|
||
|---|---|
|
||
| **Never** | No validation required — STV is sent immediately |
|
||
| **Always** | Every adjustment is held as `Pending` |
|
||
| **According to tolerance** | Held as `Pending` **only if** the adjustment exceeds the configured tolerance |
|
||
|
||
**Tolerance parameters:**
|
||
|
||
| Parameter | Description |
|
||
|---|---|
|
||
| Maximum positive percentage variance | % increase allowed without validation |
|
||
| Maximum negative percentage variance | % decrease allowed without validation |
|
||
| Maximum positive adjust | Absolute increase allowed without validation (base UoM) |
|
||
| Maximum negative adjust | Absolute decrease allowed without validation (base UoM) |
|
||
|
||
> ℹ️ Count Profiles cannot yet be created via ITM — master data only in SmartUI.
|
||
|
||
Attach the profile to an item by editing the item and selecting its Count Profile.
|
||
|
||
### Validation in the stock-adjustments view
|
||
|
||
`Warehouse → Stock adjustments` → select a `Pending` line → **Validate** or **Cancel**.
|
||
|
||
- **Rights:** group `SuperAdmin` or `Administrateur` (Manager/Operator not allowed by default).
|
||
- **Group rights do not disable validation.** Even a SuperAdmin creating the adjustment from RFT still triggers the SmartUI validation step if the item has a Count Profile requiring it.
|
||
- Default view shows only `Pending` — enable the history filter to see validated/rejected past adjustments.
|
||
- Row colours : **green** = validated / no profile / profile "Never" / below tolerance; **red** = rejected.
|
||
|
||
**Cancel behaviour:**
|
||
- Negative variance → WMS proposes to restore the removed stock to its origin (or a chosen location)
|
||
- Positive variance → WMS asks from which location to remove the surplus
|
||
|
||
### French UI labels reminder
|
||
|
||
- **Pending** — no transaction, no ERP communication (stock change *is already applied* in the WMS, only ERP sync is held)
|
||
- **Validé** — STV sent to ERP
|
||
- **Annulé** — stock delta reverted in WMS; no transaction, no ERP message
|
||
|
||
> ⚠️ Validation only gates the **ERP communication**. The physical stock delta is already reflected in the warehouse whatever the validation outcome.
|
||
|
||
---
|
||
|
||
## Interface
|
||
|
||
| Path | Equipment |
|
||
|---|---|
|
||
| `RFT > Utilities > Increase item` | RFT |
|
||
| `RFT > Utilities > Decrease item` | RFT |
|
||
| `RFT > Utilities > Location adjustment` | RFT |
|
||
| `Workstations > Picking > Others > Stock Adjustment` | PC |
|
||
| `Warehouse > Stock` (SmartUI — logistic attributes) | PC |
|
||
| `Warehouse > Stock adjustments` (double validation review) | PC |
|
||
| `Masters > Adjustment reasons` | PC |
|
||
|
||
---
|
||
|
||
## Common Errors
|
||
|
||
| Symptom | Cause | Solution |
|
||
|---|---|---|
|
||
| No adjustment reasons visible on RFT | No adjustment reasons configured for the "Adjustment" capture process | Add reasons in `Masters > Adjustment reasons` |
|
||
| STV not sent to ERP after adjustment | Stock belongs to an open reception | Close the reception; STV will be sent at that point |
|
||
| Adjustment applies but no `STK.ADJ` transaction | Double validation active for item; adjustment is Pending | Manager must validate in `Warehouse > Stock adjustments` |
|
||
| Cannot adjust ASN container | Container is pre-notified, not yet received | Complete or cancel the reception first |
|
||
| Cannot decrease below zero | System prevents negative stock | Verify if stock is in the expected location; run a count |
|
||
| Pending adjustment cancel wizard shows no compatible stock | Stock has already been shipped or moved elsewhere | Manually create a compensating stock entry in a suitable location |
|
||
|
||
---
|
||
|
||
## Related
|
||
|
||
- [[stock]] — Adjustment modifies stock records; STV and STK.ADJ are core stock transactions
|
||
- [[count]] — Counts generate adjustments; double validation applies to count-triggered adjustments too
|
||
- [[quality-control]] — Quality locks affect picking/replenishment eligibility; separate from adjustments but share CST.STK vs STK.ADJ transactions
|
||
- [[location]] — Adjustment behavior (empty container removed vs. kept) depends on location config
|
||
- [[product-item]] — Count profile on item controls double validation activation
|
||
- [[container]] — Adjustments to container stock trigger task/assignment re-evaluation
|
||
- [[cutting-stock]] — Cutting stock adjustments follow indivisibility rules; label printing from location adjustment (source label only)
|
||
- [[labels]] — Labels can be printed for cutting stock during location adjustment process
|