---
title: "ERP Interface"
type: concept
sources:
- areas/ERP.md
- areas/ERP/masters/itm.md
- areas/ERP/masters/itc.md
- areas/ERP/masters/kit.md
- areas/ERP/masters/sup.md
- areas/ERP/masters/acc.md
- areas/ERP/masters/own.md
- areas/ERP/masters/car.md
- areas/ERP/masters/lck.md
- areas/ERP/receipts/ror.md
- areas/ERP/receipts/asn.md
- areas/ERP/receipts/aso.md
- areas/ERP/receipts/ask.md
- areas/ERP/receipts/roc.md
- areas/ERP/receipts/rof.md
- areas/ERP/receipts/ref.md
- areas/ERP/requests/str.md
- areas/ERP/requests/scr.md
- areas/ERP/requests/cmc.md
- areas/ERP/shipping/sor.md
- areas/ERP/shipping/soc.md
- areas/ERP/shipping/sof.md
- areas/ERP/shipping/lof.md
- areas/ERP/shipping/wor.md
- areas/ERP/shipping/wof.md
- areas/ERP/shipping/rut.md
- areas/ERP/counts/cor.md
- areas/ERP/counts/cof.md
- areas/ERP/replenishment/srn.md
- areas/ERP/replenishment/sro.md
- areas/ERP/replenishment/srk.md
- areas/ERP/notifications/stv.md
- areas/ERP/notifications/stc.md
- areas/ERP/notifications/wsc.md
- areas/ERP/notifications/kst.md
- areas/ERP/notifications/unk.md
- areas/ERP/notifications/cos.md
- areas/ERP/notifications/coc.md
- sources/archives/08_Ajouter_image_fiche_article_ITM01.md
- sources/archives/18_ASN_DirectTransfer.md
- sources/archives/19_ASN_Transfer.md
- sources/archives/32_Fusion_commandes_Merge.md
related:
- concepts/order-inbound.md
- concepts/order-outbound.md
- concepts/stock.md
- concepts/product-item.md
- concepts/count.md
- concepts/quality-control.md
- concepts/transactions.md
- architecture/entities-map.md
last_compiled: "2026-04-17"
---
# ERP Interface
## Overview
The ERP Interface is the integration layer between Easy WMS and the customer's ERP system (SAP, Oracle, Microsoft Dynamics, or any custom ERP). Communication is asynchronous, message-based, using a structured 3-letter code naming convention. Messages flow in both directions:
- **ERP → WMS**: Master data synchronization, order creation, requests
- **WMS → ERP**: Status notifications, order finalizations, stock events
All messages have a **version** suffix when multiple variants exist (e.g., ROR01, SOR01, SOR02). The **Operation** field in each message specifies the action: `C` (Create), `U` (Update), `S` (Upsert), `D` (Delete).
## Complete Message Catalog
### Master Data Messages (ERP → WMS)
| Code | Name | Direction | Description |
|------|------|-----------|-------------|
| ITM | Item | ERP → WMS | Create/update/delete items (SKU master) |
| ITC | Item Classification | ERP → WMS | Min/max stock levels per sub-warehouse |
| OWN | Owner | ERP → WMS | Create/update owners (3PL tenants) |
| CAR | Carrier | ERP → WMS | Create/update carriers |
| ACC | Account | ERP → WMS | Create/update customer accounts |
| SUP | Supplier | ERP → WMS | Create/update suppliers |
| KIT | Kit | ERP → WMS | Create/update kit definitions |
| LCK | Lock Type | ERP → WMS | Lock type master data |
#### ITM - Image fields
The `ITM01` message can optionally convey the article's picture. Two modes:
| Mode | Field | Behaviour |
|---|---|---|
| **Local file** | `nom-fichier.jpg` | File resolved against the folder pointed to by `UserImagesURI` in the WMS `appsettings.json`. Typical value : `C:/MLX/Data/Pictures/`. |
| **URL** | `https://…/photo.jpg` | Fetched by the WMS when the client uses the display; `ItmPicture` takes precedence if both are present. |
> Requires read access on the `UserImagesURI` share from the WMS service account. The image is not uploaded via the ITM file - only the filename / URL is stamped on the item record.
---
### Inbound / Receipt Messages
#### ROR - Receipt Order (ERP → WMS)
The primary message for creating inbound orders.
**Versions:**
- `ROR01` (default): Supplier receipt orders, return orders, transfer orders
**Key fields:**
| Field | Description |
|-------|-------------|
| Operation | C/S/U/D |
| Site | Warehouse code |
| RorCode | Receipt order code (unique) |
| RorType | Supplier / Return / Transfer |
| SupplierCode | Supplier (Supplier type only) |
| Document | Delivery note number (optional) |
| Lines[].LneNumber | Line number |
| Lines[].LneItemCode | Item to receive |
| Lines[].LneQtyExpected | Expected quantity |
| Lines[].LneQtyFree | Free-of-charge quantity |
| Lines[].LneQtyUoMCode | Unit of measure |
| Lines[].transactional | If true: fail entire order if one line fails |
**Notes:**
- Order code must be unique for new orders
- Lines support optional `transactional` group to control failure behavior
- Can create/modify/cancel lines individually after creation
- Triggers [ROC](#roc---receipt-order-status-change-wms--erp) status change notifications
---
#### ASN - Advanced Shipping Notice (ERP → WMS)
Pre-notifies WMS of containers en route to the warehouse.
**Versions:**
- `ASN01`: Basic container pre-notification
- `ASN02–ASN08`: Extended variants for cutting stock, quality status, loose stock, etc.
**Key fields:**
| Field | Description |
|-------|-------------|
| Operation | C/D |
| Site | Warehouse code |
| ContainerCode | Container LPN |
| ContainerTypeCode | Container type |
| ReceiptOrderCode | Associated receipt order (optional) |
| Lines[].ItemCode | Item in container |
| Lines[].Quantity | Quantity |
| Lines[].UoMCode | Unit of measure |
| Lines[].LogisticAttributes | Lot, expiry, serial, etc. |
**Notes:**
- Creates pending stock at ASN virtual location
- If container is received: triggers [ASO](#aso---advanced-shipping-notice-ok-wms--erp) response
- If container is rejected or deleted: triggers [ASK](#ask---advanced-shipping-notice-ko-wms--erp) response
---
#### SRN - Stock Replenish Notice (ERP → WMS)
Pre-notifies WMS of loose stock for automatic warehouse replenishment.
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| Operation | Operation code |
| ItemCode | Item to replenish |
| OwnerCode | Owner |
| Quantity | Quantity |
| UoMCode | Unit of measure |
| Status | Stock status group |
| Attributes | Logistic attributes |
| RepQuePickingStationCode | Target picking conveyor (optional, triggers auto replenishment order) |
| RepQuePriority | Priority (Urgent/High/Normal/Low/VeryLow) |
| RepQueReplenishMode | Replenishment mode |
| RepQueEfficiencyMode | Efficiency mode |
---
#### ROC - Receipt Order Status Change (WMS → ERP)
Notifies ERP of receipt order status transitions.
**Statuses reported:** Waiting, Pending, Receiving, PartiallyReceived, Received, Closed, Canceled
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| RorCode | Receipt order code |
| Status | New status |
**Triggered by:** `INO.CST` transaction
---
#### ROF - Receipt Order Finalization (WMS → ERP)
Notifies ERP that a receipt order has been closed or canceled, with received quantities.
**Versions:**
- `ROF01`: Standard finalization
- `ROF02`: Extended with detailed line-level quantities - **the version generated when closing an inbound order sourced from a `Transfer` shipping order** (two-warehouse flow). For standard supplier receipts, ROF01 is emitted.
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| RorCode | Receipt order code |
| Status | Closed / Canceled |
| Lines[].LneNumber | Line number |
| Lines[].LneItemCode | Item |
| Lines[].LneQtyExpected | Expected quantity |
| Lines[].LneQtyReceived | Received quantity |
| Lines[].LneQtyUoMCode | Unit of measure |
**Triggered by:** `INO.CLS` / `INO.CNL` transactions
---
#### REF - Receipt Finalization (WMS → ERP)
Notifies ERP that a **receipt** (physical receiving event) has been closed.
**Notes:**
- Sent only when a receipt with actual received stock is closed
- Sent for blind receipts (no associated receipt order)
- Includes detailed line-level stock received data
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| ReceiptCode | Receipt code |
| Status | Closed |
| RecDatContainers | Number of containers received |
| RecDatDate | Arrival/closure date |
| Lines[].LneItemCode | Item received |
| Lines[].LneQtyReceived | Received quantity |
| Lines[].LneStockItemCode | Actual received item (may differ from ordered) |
| Lines[].LneStockQty | Stock quantity |
| Lines[].LneStockWeight | Weight |
| Lines[].LneStockRecDate | Receipt timestamp |
**Triggered by:** `REC.CLS` transaction
---
#### ASO - Advanced Shipping Notice OK (WMS → ERP)
Confirms that a pre-notified container has been successfully received.
**Triggered by:** `CON.ASN.001` transaction (ASN container received) or `CON.PIE` (container entered via PIE)
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| ContainerCode | Received container |
| ReceiptOrderCode | Associated receipt order |
| ReceiptCode | Receipt document |
| ReceivedDate | Reception timestamp |
> **DirectTransfer trigger** - when the expedition of a `` shipping order is closed at the origin warehouse, EasyWMS automatically generates an `ASO01` message targeting the destination warehouse, creating the incoming ASN container(s). The ASO carries the container and its stock but **no reference to the originating `SorCode` / DirectTransfer header**. See [concepts/order-outbound.md](order-outbound.md#asn---directtransfer-flow).
---
#### ASK - Advanced Shipping Notice KO (WMS → ERP)
Notifies ERP that a pre-notified container has been rejected or deleted.
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| ContainerCode | Rejected container |
| ReceiptOrderCode | Receipt order (optional) |
| CancelDate | Rejection timestamp |
**Triggered by:** `CON.CNL.ASN` transaction
> **DirectTransfer trigger** - deleting an ASN container of a DirectTransfer flow from SmartUI (`Entrepôt → Conteneurs ASN → Supprimer`) generates an `ASK01` to the ERP. As with the ASO, the message contains no reference to the upstream shipping order.
---
#### SRO - Stock Replenish OK (WMS → ERP)
Confirms that pre-notified loose stock has been used for automatic warehouse replenishment.
**Triggered by:** `STK.REP.001` transaction
---
#### SRK - Stock Replenish KO (WMS → ERP)
Notifies that pre-notified loose stock has been canceled (not used for replenishment).
**Triggered by:** `STK.REP.CNL` transaction
---
### Outbound / Shipping Messages
#### SOR - Shipping Order (ERP → WMS)
The primary message for creating outbound orders.
**Versions:**
- `SOR01`: Standard shipping order (items/containers)
- `SOR02`: Prepackaging (specifies package count/type per line; VAS integration)
**Key fields:**
| Field | Description |
|-------|-------------|
| Operation | S (new/upsert) / U (update) / D (cancel) |
| Site | Warehouse code |
| SorCode | Shipping order code (unique) |
| SorType | Customer / Return / Transfer / DirectTransfer |
| Priority | Urgent/High/Normal/Low/VeryLow |
| EnableReplenishment | Enable auto replenishment for this order |
| PrpPackingLocation | Consolidation location code |
| PlnAssignedDock | Pre-assigned dock |
| Lines[].LneNumber | Line number |
| Lines[].LneItemCode | Item (or alias) |
| Lines[].LneContCode | Container (optional) |
| Lines[].LneQtyOrder | Ordered quantity |
| Lines[].LneQtyUoMCode | Presentation |
| Lines[].LneAttributes | Logistic attribute filters (lot, expiry, etc.) |
| Lines[].LneTrmCritical | Critical line flag (all or nothing) |
| Lines[].LneTrmRequired | Required line flag (conditional preparation) |
| Lines[].LneMaxLots | Maximum number of lots |
| Lines[].LneQtyAllowExcess | Allow over-allocation |
| Lines[].LneTrmAlternative | Use configured substitutes |
| Lines[].LneAltItmCode | Explicit substitute item |
| Lines[].LneTrmStaReq | Required stock status |
| Lines[].LneTrmStaRejC | Rejected stock status |
| Lines[].LneTrmStaPref | Preferred stock status |
| Lines[].LneQtyReserve | Stock reserve quantity |
| Lines[].ShipExpiredStock | Ship only expired stock |
| SOR02: PrpContTypeRequired | Required client container type |
| SOR02: VASCode | VAS template |
**`SorType = DirectTransfer`** - inter-warehouse transfer; closing the expedition at origin emits an automatic `ASO01` on destination, pre-creating the ASN container (see [ASO](#aso---advanced-shipping-notice-ok-wms--erp) and [concepts/order-outbound.md](order-outbound.md#asn---directtransfer-flow)).
**`SorType = Transfer`** - inter-warehouse transfer variant where destination generates **a full inbound order** on expedition close (as opposed to DirectTransfer which only pre-notifies via ASN). The destination ROR carries the source SOR reference ; on close, destination emits a `ROF02` carrying the line-level quantities, which the origin warehouse uses to reconcile. See [concepts/order-outbound.md](order-outbound.md#transfer---two-warehouse-flow-inbound-order-created).
---
#### SOC - Shipping Order Status Change (WMS → ERP)
Notifies ERP of shipping order status transitions.
**Statuses reported:** Release, StockFailure, InPreparation, Paused, Stopped, Prepared, Completed, Canceled
**Triggered by:** `OUT.CST` transaction
---
#### SOF - Shipping Order Finalization (WMS → ERP)
Notifies ERP that a shipping order has been closed or canceled with shipped quantities.
**Versions:**
- `SOF01`: Full close
- `SOF02`: Partial close (with remaining quantities)
**Key fields:**
| Field | Description |
|-------|-------------|
| SorCode | Shipping order code |
| Status | Closed / Canceled |
| ClosingNumber | Closing sequence number |
| Lines[].LneNumber | Line number |
| Lines[].LneQtyShipped | Shipped quantity |
| Lines[].LneQtyUoMCode | Unit of measure |
**Triggered by:** `OUT.CLS` / `OUT.CNL` transactions
---
#### DlvShareDeliveries - Merge outbound orders (ERP → WMS)
XML message used by the **Multi-Carrier / Deliveries module** to request that two or more outbound orders be prepared together (merged). A merged group shares client containers, carrier call, and closure.
**Eligibility** - all orders in the request must match on:
- Same account
- Same site (warehouse)
- Same route or delivery address
- Same carrier
When `ALLOW_MERGE_DIFFERENT_ACCOUNT = true` is set, the "same account" rule is relaxed (cross-account merges become possible).
**Effect on orders:**
- Stock assignment is executed across the merged scope (not per-order)
- Client containers can carry lines from any order in the group
- Order closure is triggered when the last line of the last order in the group is picked / when the carrier call returns
- SOF is still emitted per source SOR - only preparation is shared
See [concepts/order-outbound.md](order-outbound.md#merge-order-fusion) for operator flows and limitations.
---
#### LOF - Load Finalization (WMS → ERP)
Notifies ERP that a truck load has been closed (truck loaded and sealed).
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| LoadCode | Load code |
| RouteCode | Route code |
| Seal | Seal number |
| ClosureDate | Closure timestamp |
| ShippingOrders[] | Orders included in load |
**Triggered by:** `LOAD.CLS` transaction
---
#### WOR - Work Order (ERP → WMS)
Creates kit assembly or other work orders.
**Used for:** Kit assembly, quartering (cutting), or other manufactured outputs
---
#### WOF - Work Order Finalization (WMS → ERP)
Notifies ERP that a work order (kit assembly, etc.) has been closed or canceled.
**Triggered by:** `WOR.CLS.001` / `WOR.CNL.001` transactions
---
#### RUT - Route (ERP → WMS)
Creates or updates carrier routes.
**Key fields:**
| Field | Description |
|-------|-------------|
| RouteCode | Route code |
| CarrierCode | Carrier |
| DockCode | Departure dock |
| DepartureTime | Scheduled departure |
---
### Count Messages
#### COR - Count Order Request (ERP → WMS)
Requests WMS to create a physical count.
**Supported scope types:**
- Item count (by item + owner)
- Location count (by location range or aisle)
- Container count (by LPN)
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| CountCode | Count code |
| Priority | Count priority |
| Lines[].ItemCode | Item (item count) |
| Lines[].Aisle | Aisle (aisle count) |
| Lines[].CntCode | Container LPN (container count) |
| Lines[].LocationFrom/To | Location range (location count) |
| Lines[].IsInformed | Blind (false) or informed (true) count |
---
#### COF - Count Order Finalization (WMS → ERP)
Reports count results when a WMS-received count (from COR) is closed or canceled.
**Note:** Only sent for ERP-initiated counts, not WMS-initiated counts.
**Key fields:**
| Field | Description |
|-------|-------------|
| Status | Closed / Canceled |
| Site | Warehouse code |
| CountCode | Count code |
| Lines[].ItemCode | Counted item |
| Lines[].Quantity | Counted quantity |
| Lines[].UomCode | Unit of measure |
| Lines[].LogisticAttributes | Lot, serial, etc. |
| Lines[].StockStatus | Receiving and user statuses |
| (empty location) LocationEmpty=1 | Indicates empty location |
**Triggered by:** `COU.END` transaction
---
### Request Messages
#### STR - Stock Status Change Request (ERP → WMS)
Requests WMS to apply or remove a quality lock on stock.
**Operations:**
- `S` (Add): Lock stock with a user status
- `D` (Remove): Remove user or receiving status
**Filter options:** Item, Owner, Container, Lot (logistic attributes)
**Lock types:**
- Time-limited lock: `StaUsrEnd` field with UTC expiry datetime
- Permanent lock: No end date, must be manually released
**Key fields:**
| Field | Description |
|-------|-------------|
| Operation | S (lock) / D (unlock) |
| ItemCode | Item to lock |
| OwnerCode | Owner |
| FltAttLot | Lot filter |
| StaCode | Status code to apply |
| StaUsrEnd | Lock expiry (UTC) - optional |
| StaUsrEmpty | Status to remove (for unlock) |
| StaRecEmpty | Reception status to remove |
**Response:** [STC](#stc---stock-status-change-wms--erp) message per affected stock line
---
#### SCR - Stock Count Request (ERP → WMS)
Requests WMS to report current stock for an item or lot.
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| MassiveCount | true=grouped by item / false=per container |
| ItemCode | Item |
| OwnerCode | Owner |
| LotCode | Lot (optional) |
**Response:** [WSC](#wsc---warehouse-stock-count-wms--erp) message
---
#### CMC - Container Movement Confirmation (ERP → WMS)
Notifies WMS of a container's destination after removal from outbound conveyor, when movements are managed by an external system.
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| ContainerCode | Container |
| Destination | Destination location code |
---
### Notification Messages (WMS → ERP)
#### STV - Stock Variation (WMS → ERP)
Reports any stock quantity change (increase, decrease, creation, deletion, UoM change, logistic attribute change).
**Operations:** C (creation/increase), D (deletion/decrease)
**Key fields:**
| Field | Description |
|-------|-------------|
| Operation | C or D |
| Site | Warehouse code |
| ItemCode | Item |
| OwnerCode | Owner |
| QuantityVar | Changed quantity (in base UoM) |
| UoMCode | Unit of measure (if UoM change) |
| FilterAttributes | Old logistic attributes (for attribute changes) |
| Attributes | New logistic attributes (for attribute changes) |
| ReasonCode | Adjustment reason (if configured) |
**Also sent for:** Presentation breakage (UoM split during picking), replenishment splits
**Triggered by:** `STK.ADJ` transaction
---
#### STC - Stock Status Change (WMS → ERP)
Reports every stock quality status change (lock or unlock).
**Can be triggered by:** STR request from ERP, manual user action (RF or SmartUI), automatic time-based unlock
**Key fields:**
| Field | Description |
|-------|-------------|
| ItemCode | Item |
| OwnerCode | Owner |
| Quantity | Stock quantity |
| UomCode | Unit of measure |
| FltAttLot | Lot |
| ContainerCode | Container (if applicable) |
| StaUsrCode | New user status (lock case) |
| StaUsrEnd | Expiry date (for time-limited locks) |
| StaUsrEmpty | true (unlock case) |
**Triggered by:** `CST.STK` transaction
---
#### WSC - Warehouse Stock Count (WMS → ERP)
Response to SCR stock contrast request. Reports current stock quantities.
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| WSCDate | Date of stock check |
| ItemCode | Item |
| OwnerCode | Owner |
| Quantity | Current stock quantity |
| UomCode | Unit of measure |
| LotCode | Lot (if lot-level contrast requested) |
**Triggered by:** `SCR.REQ` transaction
---
#### KST - Kit Assembled (WMS → ERP)
Notifies ERP that kit stock has been assembled.
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| WorkOrderCode | Work order code (if applicable) |
| KitItemCode | Assembled kit item |
| KitQuantity | Kit quantity |
| KitVersion | Kit version |
| CompItemCode | Component item |
| CompQty | Component quantity used |
**Triggered by:** `STK.KIT.MOUNT` transaction
---
#### UNK - Kit Disassembled (WMS → ERP)
Notifies ERP that kit stock has been disassembled.
**Triggered by:** `STK.KIT.UMOUNT` transaction
---
#### COS - Container Shipped to PS (WMS → ERP)
Notifies ERP that a client container has been sent to the outbound conveyor (PS/Sortation).
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| StationCode | Station where container ended |
| LocationCode | Location |
| ContainerCode | Container |
| StationToCode | Destination station (if task-based move) |
| ClosedDate | Closing timestamp (UTC) |
**Triggered by:** `CON.COS.001` transaction
---
#### COC - Container Closed in MP (WMS → ERP)
Notifies ERP that a client container has been closed in a Preparation Zone (MP).
**Key fields:** Same structure as COS
**Triggered by:** `CON.COC` transaction
---
#### ERR - Error (WMS → ERP)
Sent when WMS cannot process an incoming ERP message. Contains the original message reference and error description.
---
## Message Operation Codes
| Code | Meaning |
|------|---------|
| `C` | Create (new record) |
| `S` | Upsert (create or update) |
| `U` | Update (existing record only) |
| `D` | Delete or cancel |
## Integration Architecture
### Message Flow
```
ERP ──[async message]──→ WMS Integration Queue
WMS Integration Queue ──→ WMS Core (processes message)
WMS Core ──[transaction]──→ Post-processor
Post-processor ──[async message]──→ ERP Response Queue
ERP Response Queue ──→ ERP
```
### Transaction Post-processing
Many WMS transactions are marked **"Post-processed: yes"** - meaning after the internal transaction is written, a background post-processor generates the corresponding ERP message:
| Transaction | Generated Message |
|------------|-----------------|
| `CON.ASN.001` | ASO |
| `CON.CNL.ASN` | ASK |
| `CON.PIE` | ASO |
| `INO.CST` | ROC |
| `INO.CLS` | ROF |
| `INO.CNL` | ROF |
| `REC.CLS` | REF |
| `OUT.CST` | SOC |
| `OUT.CLS` | SOF |
| `OUT.CNL` | SOF |
| `LOAD.CLS` | LOF |
| `WOR.CLS.001` | WOF |
| `WOR.CNL.001` | WOF |
| `COU.END` | COF |
| `STK.ADJ` | STV |
| `CST.STK` | STC |
| `STK.REP.001` | SRO |
| `STK.REP.CNL` | SRK |
| `SCR.REQ` | WSC |
| `STK.KIT.MOUNT` | KST |
| `STK.KIT.UMOUNT` | UNK |
### Module-Specific ERP Messages
Beyond the core catalog, optional modules add their own ERP messages:
| Module | Message | Direction | Description |
|--------|---------|-----------|-------------|
| Manufacturing | RCP01/RCP02 | ERP → WMS | Recipe (BOM) create/update/delete |
| Manufacturing | MOR01 | ERP → WMS | Manufacturing production order create/update/delete |
| Manufacturing | MOF | WMS → ERP | Manufacturing order finalization (closed or cancelled) |
| Manufacturing | FGP | WMS → MES | Finished goods produced notification (MES integration) |
| Kits | WOR | ERP → WMS | Work order for kit assembly or disassembly |
| Kits | WOF | WMS → ERP | Work order finalized (ERP-originated orders only) |
| Kits | KST | WMS → ERP | Kit manually assembled (manual work orders) |
| Kits | UNK | WMS → ERP | Kit manually disassembled (manual work orders) |
| Store Fulfillment | TOR01 | ERP → WMS | Transfer order between stores/sub-warehouses |
| Store Fulfillment | TOF01 | WMS → ERP | Transfer order finalized |
| Store Fulfillment | TPV01 | ERP → WMS | POS sale notification - decrements store stock |
| VAS | VAS01 | ERP → WMS | Create/update VAS templates, activities, and instructions |
| VAS | SOR02 VASCode | ERP → WMS | VAS template reference per line in shipping order |
| VAS | SOF (VAS field) | WMS → ERP | VAS model used + quantity returned per shipped line |
| Slotting | SAC01 | WMS → ERP | ABC rotation classification suggestion (sent after manual recalculation) |
| DOM | POR/ROC/SOR/SOC/SOF/DOF/ACK/NCR | Both | Multi-node orchestration |
| Yard Management | Appointment sync | Both | ERP/TMS appointment exchange |
| Counting | SCR/WSC | Both | Stock contrast |
**SAC01 detail**: sent manually from SmartUI after running the ABC rotation analysis in the WMS. Contains item code + suggested ABC class. The ERP uses this to update item classification. Only sent when the WMS operator explicitly triggers it (not automatic).
**TPV01 detail**: sent by POS (point of sale) system when a store sale occurs. EasyWMS decrements the corresponding store sub-warehouse stock in real time, providing a live stock view per store. Requires Store Fulfillment module.
**TOR01/TOF01**: used by the Store Fulfillment module to manage inter-store replenishment. TOR01 creates the transfer order from ERP; TOF01 is returned when the transfer is complete.
## Common Errors
| Symptom | Cause | Solution |
|---------|-------|---------|
| ROR creates order but lines fail | `transactional` group not set, line validation error | Check item/UoM existence; review partial creation log |
| ASN container arrives but no ASO sent | Post-processor not running | Check integration pool and post-processor service |
| SOR rejected: item not found | Item not yet synced via ITM | Send ITM first, then SOR |
| STR applies lock but no STC received | Stock matching filters returned zero results | Verify item/owner/lot combination exists |
| SOF never received | Shipping order not yet closed in WMS | Check order status; may be in Prepared status awaiting manual close |
| COR count created but COF never sent | Count was created from UI (not ERP-initiated) | COF only sent for ERP-initiated counts |
## Related
- [Inbound Order](order-inbound.md) - Receipt order lifecycle and ROR/ROC/ROF details
- [Outbound Order](order-outbound.md) - Shipping order lifecycle and SOR/SOC/SOF details
- [Quality Control](quality-control.md) - Stock lock/unlock and STR/STC messages
- [Count](count.md) - Physical counts and COR/COF messages
- [Stock](stock.md) - Stock adjustments and STV messages
- [Transactions](transactions.md) - Internal transactions that trigger ERP messages
- [Entities Map](../architecture/entities-map.md) - ERP integration touch points per entity
- [Replenishment](replenishment.md) - Automatic warehouse replenishment and SRN/SRO/SRK
- [Manufacturing](../modules/manufacturing.md) - MOF/FGP production messages
- [DOM](../modules/dom.md) - Distributed order management messages