--- 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