Model Data Exploration Guide
A hands-on walkthrough for the eWAVE Test company: configure a warehouse from scratch using a real four-rack layout, then run one order all the way from receiving to a closed shipment — desktop and mobile screens both included, in the order you'd actually use them.
4-Rack distribution center simulationOverview
This guide is a companion to the eWAVE User Guide — that guide explains what each concept means; this one walks you through doing it, end to end, in a fresh Test company. Follow the sections in order — each step's output (an ASN, an LPN, an order, a wave) feeds the next one.
ewave.group_ewave_super) for the Configuration menus; see the Security & Roles section of the User Guide if menus are missing.
Sample Warehouse Layout
Every location you create in this walkthrough mirrors the reference four-rack distribution center below. Recreate it exactly to follow the guide step-by-step, or treat the codes as a template and substitute your own.
Four-rack distribution center simulation — the reference layout this guide's Test-company location data is modelled on.
Zones
Office
Administrative area — no inventory locations.
Receiving
Inbound dock/staging area where ASNs are received.
Storage
Racks A–D — bulk and SKU-tracked putaway locations.
Picking
Pick face along the racks, worked by Replenishment Picking.
Shipping
Outbound dock — Shipping Dock (SHIP01).
Racks & Location Codes
| Rack | Location Codes |
|---|---|
| Rack A | 101A01–101A07 and 102A01–102A07 |
| Rack B | 102B01–102B07 and 103B01–103B07 |
| Rack C | 302C01–302C07 and 303C01–303C07 |
| Rack D | 301D01–301D07 and 302D01–302D07 |
Other Reference Points
| Point | Code |
|---|---|
| Shipping Dock | SHIP01 |
| Packing Station | PCK001 |
| Vehicles / carts | VH001–VH003 |
Warehouse Setup
Everything below lives under Settings and Configuration — you'll only do this once per company.
Location Code Settings
DESKTOPeWAVE → Configuration → Settings → eWAVE tabUnder eWAVE Location code segment settings, decide which of the six barcode segments your warehouse uses — Area, Zone, Aisle, Rack, Level, Bin — and how many characters each one is. For the sample layout, the codes are <Aisle/Bay><Rack><Level> (e.g. 101A01), so enable Aisle, Rack, and Bin/Level and leave Area/Zone off if you don't need that extra granularity.
ewave.locations record exists in the company. Get the segment structure right before you create any location.
Location Types & Areas (SKU vs. LPN)
DESKTOPeWAVE → Configuration → Inventory → Location → Location typeseWAVE ships 13 seeded location types you'll reuse rather than rename — the ones relevant to this walkthrough are inventory, receiving_dock, shipping_dock, packing, and vehicle. You don't configure "an LPN area" or "a SKU area" on the type itself — tracking type (SKU or LPN) and allocation type are set per location range when you generate locations in the next step. A rack can be all-SKU, all-LPN, or split into ranges of each.
Add Locations Wizard — Generate the Racks
DESKTOPOpen theinventory Location Type → button "Add a location range"
This bulk wizard is how you'll create Racks A–D in one pass each, rather than one location at a time.
- Location type — leave as
inventory. - Tracking type & Allocation type — choose
SKUfor a shared-slot rack (many LPNs of the same product can share the location) orLPNfor a single-container-per-slot rack. This choice is what makes a range a "SKU area" or "LPN area." - On the Location Range page, fill only the segments you activated in Settings. To reproduce Rack A:
From Aisle 101, To Aisle 102,From Rack A, To Rack A,From Bin 01, To Bin 07. Repeat the wizard for Racks B, C, and D using the codes from the layout table above. - Capacity page (optional) — set
Maximum weight,Maximum volume,Maximum quantity,Maximum no of casesif you want capacity checks enforced. - Groups page (optional) — assign a
Putaway group/Allocation group/Replenish groupif this rack range should be targeted by a location-group rule line (see Check the Putaway Rule). - Click Confirm. Repeat for the Receiving dock (
receiving_docktype, codeSHIP01-style single location) and Shipping dock (shipping_docktype,SHIP01).
Vehicles & Packing Station
Neither of these is a separate setup screen — both are ordinary ewave.locations records distinguished only by their Location Type:
- Vehicles / carts — run the Add Locations wizard again with Location type =
vehicleto createVH001–VH003. These are what the mobile Replenishment Picking screen's "Scan Vehicle/Cart" step scans against. - Packing Station — create one location with Location type =
packing(PCK001). Then decide whether pickers are routed there automatically: open Configuration → Settings → "Manage parameters" and, on the relevant Pick Orders context-parameter record, setpacking_station = y("System leads user to packing station") orn("User decides when to go to packing station").
Product, Vendor & Customer
You need at least one of each before you can receive or ship anything.
Product
DESKTOPeWAVE → Configuration → Inventory → Products → NewFill in the standard Odoo product fields (name, barcode, unit of measure), then open the eWAVE tab added to the product form:
| Field | Purpose |
|---|---|
Putaway rule | Which Move Type (category Putaway) resolves this product's storage location. Leave blank to fall back to the default XPUT000 rule. |
Fulfillment rule | Which Move Type (category Fulfillment) allocates this product for outbound orders. Defaults to XFUL000 if blank. |
Replenishment rule | Which Move Type governs replenishment for this product. Defaults to XRPL000. |
Carton check | Enforce carton-compatibility checks during packing. |
Freight class | Freight classification used by rate lookups in ewavet. |
Manufacture code | Free-text manufacturer reference. |
For this walkthrough, leaving all three rule fields blank is fine — the walkthrough uses the seeded default rules XPUT000 / XFUL000 / XRPL000.
Vendor & Customer
DESKTOPeWAVE → Configuration → Vendors / CustomersThese menu items open the standard Odoo Contacts screens — eWAVE adds no extra fields to res.partner. Create one vendor (you'll receive an ASN from them) and one customer (you'll ship an order to them).
Inbound — Receive & Putaway
One ASN, received once on desktop and once on a mobile device, then put away.
3. Receive Your First Product — Create a SKU-Level ASN (Desktop)
DESKTOPeWAVE → Receiving → ASN → New- Set ASN type to
SKU(radio buttons on the form). - Select your Vendor.
- Add an ASN line: your product and an expected quantity.
- Save, then click Initiate in the header. Status moves from
10 Createdto20 Initiated— the ASN is now ready to receive against.
4. Receiving Using a Mobile Device
MOBILEMobile Home → Inbound → Receive Shipment → SKU-level ASN → Receive & Create LPNScan or enter the ASN reference from step 3, then scan the product and quantity (capturing batch/lot/serial/expiry if your context parameters require them). Confirm — this creates a new LPN at status 10 Received without putting it away, so you can inspect the putaway rule before it moves.
5. Check the Putaway Rule
DESKTOPeWAVE → Configuration → Inventory → Move rules → PutawayOpen the seeded XPUT000 record ("Putaway Move Reference") — or your product's own Putaway rule if you set one. Review its rule lines: each is a Reference location, Exact location, Location range, or Location group line, evaluated in priority order. This is the rule the four-pass cascade (single-SKU → mixed-SKU, each with/without a location hint) will apply in the next step — see Putaway in the full User Guide for the algorithm diagram.
6. Putaway to a SKU Location
MOBILEMobile Home → Inbound → Putaway | or | DESKTOPInventory by LPN → select the LPN → button "putaway"- Scan the LPN created in step 4.
- The engine resolves a destination using the rule from step 5 — for a SKU-tracked slot in Rack A, expect something like
101A01. - Scan/confirm the suggested location.
- LPN status moves to
30 At location. If the destination is SKU-tracked and another LPN of the same product is already there, eWAVE merges the two LPN detail records automatically.
Outbound — Order, Rule & Wave
Create the order the same product you just received, then run it through a wave.
7. Create Your First Outbound Order
DESKTOPeWAVE → Shipping → Outbound orders → New- Set Customer (
partner_id) and, if different, the freeform ship-to address fields. - Add an order line: the same product you received, quantity ≤ what you putaway.
- Save. The order starts at status
10 Open.
8. Check the Fulfillment Rule
DESKTOPeWAVE → Configuration → Inventory → Move rules → FulfillmentOpen XFUL000 ("Fulfillment Move Reference") — this governs which locations the wave allocates from. Separately, open eWAVE → Shipping → Fulfillment rules and run wave — the same screen manages both reusable Wave Run Rules (status 00) and the actual wave executions generated from them. Create or confirm a rule record here before running a wave in the next step.
9. Run the Wave — Without Auto Packing or Routing
DESKTOPeWAVE → Shipping → Fulfillment rules and run waveOn your Wave Run Rule record, the three pipeline stages are controlled by sequence fields, not simple checkboxes:
| Field | Group | For this walkthrough |
|---|---|---|
allocation_sequence | Allocate | Leave at 1 (required — this is the step you want to observe). |
cubing_sequence | Cube | Set to 0 — Do not run to disable auto-packing/cubing. |
routing_sequence | Route | Set to 0 — Do not run to disable auto-routing. |
Select your order (via the order filter/domain field), then click the "Run wave" button (only visible while wave_status = 00). You'll see a confirmation that the request was submitted to the background job queue — a new run record is created at wave_status = 10 and picked up by the ewave: Run inventory fulfilment for outbound orders cron, which runs every 10 minutes.
10. Check the Allocation Status
DESKTOPeWAVE → Shipping → AllocationsThe default view filters to "Open allocations." Find the allocation record created by your wave and watch its status progress: Open → In Picking → On Vehicle → On Hold → Completed (or Deleted if cancelled).
Fulfillment Floor — Pick, Verify, Pack
Back to mobile devices for the physical work, with a desktop check in between.
11. Pick the Order Using the Mobile Device
MOBILEMobile Home → Replenishment → Replen Picking- Scan Vehicle/Cart — e.g.
VH001. - Scan Start Location.
- Scan Pick Location — the location the allocation points to (Rack A, if that's where you put it away).
- Scan LPN.
- Scan Product / Qty — governed by the
scan_eachcontext parameter (y= scan every unit,n= scan once and enter quantity).
Confirming the pick updates the allocation to On Vehicle (or the next stage) automatically.
12. Check Inventory Status — LPN View & Transaction Log
DESKTOPeWAVE → Inventory → Inventory by LPN | and | eWAVE → Inventory → Transactions historyOpen Inventory by LPN, find your LPN, and confirm its status and current location reflect the pick. Click its History button (or open Transactions history directly — it defaults to an inventory-movement filter) to see the full chain of transaction records this walkthrough has generated so far: LPN created, received, putaway/located, and picked.
13. Pack the Order — Non-Cubed Mobile
MOBILEMobile Home → Outbound → Pack Non-CubedScan or generate a carton number, then manually assign the picked items to the carton. Confirm to pack — this writes 7001 Carton created and 7003 Carton packed transaction records (see Packing in the User Guide for the full carton lifecycle table).
Ship & Transport
Weigh, wait for the background job, load the truck, and close everything out.
14. Enter Weight & Route
MOBILEMobile Home → Outbound → Weigh & Ship CartonScan the carton, enter its Weight, and select a Ship via (route/carrier service). If you'd rather do this from a desk, the same fields are exposed in eWAVE → Configuration → Debug → Ship and Manifest Wizard data as carton_id, weight, and ship_via_id.
15. Wait for the Weigh & Manifest Background Job
Entering weight/route doesn't ship the carton immediately — it queues a record (record_status Waiting/Valid/Error) for the ewave: Run weigh shipment and manifest cartons cron, which runs every 10 minutes and generates/updates the Shipment and Manifest records.
16. Create a Load and Assign a Dock Door
DESKTOPeWAVE → Transportation → Loads → NewSet the Dock door field (e.g. SHIP01). Save — the load starts at 10 Open and moves to 20 At Dock once the door is assigned.
17. Load the Carton Using the Mobile Device
MOBILEMobile Home → Outbound → Load CartonDepending on the load_number context parameter, you'll position by dock or by load — scan accordingly, then scan the carton from step 14 to load it onto the trailer.
18. Close the Load
DESKTOPeWAVE → Transportation → Loads → open your load → button "Close"Closing sets load_status = 80 Load Closed, clears the dock door assignment (freeing it for the next load), and logs a closing transaction.
19. Close the Manifest
DESKTOPeWAVE → Transportation → Manifests → open the manifest from step 15 → button "Close"Sets manifest_status = 80.
20. Close the Shipment
DESKTOPeWAVE → Transportation → Shipments → open your shipment → button "Close Shipment"eWAVE validates the shipment is actually ready to close (carton loaded, manifest closed, etc.) before setting shipment_status = 80 — if something's missing, you'll get a notification explaining what, rather than a silent failure.