Van sales is selling from stock carried on a vehicle. The dispatcher loads the van in the morning, the sales executive sells and invoices from it on route, and at day end the stock that is left comes back into the depot. In xMatix the whole run lives on one Field Sales record and its Field Sales Lines. Every stock movement the run makes is a real inventory transfer, so van stock is always on the books.
Overview
A Field Sales run has two parts:
- The run header — the branch, the document date, the van (its storage location), the depot the stock comes from, the executive and the linked Van Sales visit plan. It carries the run's Status and the cash figures.
- The lines — one per item. Each line keeps every stage of the day in its own quantity field rather than overwriting one number. Quantity is the planned load. Received Quantity is what went onto the van. Sold Quantity is what the run's invoices sold. The Check-In quantities are what came back.
Three actions on the run read those line quantities and build inventory transfers from them:
| Action | Transfer it creates | Line figure it uses | Status afterwards |
|---|---|---|---|
| Release Load | Outward, depot → van | Quantity | Released, or TakenIn with single-step loading |
| Take In (two-step loading only) | Inward onto the van | Received Quantity, plus the Take-In damage, shortage and excess | TakenIn |
| Unload | Inward, van → depot | Check-In Received Quantity, or the calculated remainder | Reconciled |
With single-step loading, which is on by default, Release Load also creates the matching inward transfer onto the van. The stock lands on the van in one click.
The transfers are ordinary transfer documents. They take their numbers from your Transfer number series, and their Field Sales field links each one back to the run.
On the web, the run's page header offers Create Visit Plan, Release Load and Unload. Take In is not on the web page: the executive confirms the take-in on the mobile Van Run card.
When to use it
Use a Field Sales run when executives sell from stock they carry: ready-stock selling, or delivering pre-sold customer orders from a van. If executives only take orders that the warehouse delivers later, you don't need a van run. Use visit plans and orders on their own.
How xMatix handles it
- The van is a storage location. A van is a storage location marked Mobile, and its stock is ordinary stock. See storage locations.
- Loads come from two places. A dispatcher can type the lines by hand, or Build Van Loads can create runs from open customer orders. For lines created from orders, each line remembers the order line it carries, so an order line is never loaded onto two live runs.
- The visit plan is how the executive sees the run. On the mobile app, a visit plan of type Van Sales shows a Van Run card for its linked Field Sales run.
- Lines and transfers are separate. The transfers copy the line figures at the moment of each action. Changing or deleting a line afterwards does not change a transfer that already exists.
Prerequisites
- A van set up as a storage location with Mobile on, in the run's branch. To use the capacity check, also fill in Capacity Weight (kg) or Capacity Volume (m3).
- A depot storage location in the same branch that holds the stock.
- Items with their units of measure set up. For the capacity check to mean anything, items also need unit weight and volume on the item master; items without them count as zero.
- Permission to create Field Sales runs and lines and to run their actions (see Permissions).
Procedure
Step 1 — Create the run
There are two ways to create a run.
By hand. Open the Field Sales list (search for Field Sales in the App Launcher) and select New. Fill in Partner Account, Branch and Document Date, and save. The run gets its number from the FS series. Its Status stays empty until the load is released; the mobile Van Run card treats an empty status as Draft.
The standard create form has no fields for the van, the depot or the executive. Your administrator must add Storage Location (the van), Source Storage Location (the depot) and Executive Resource to the Field Sales form before a hand-built run can move stock correctly (see Configuration). The Resource, Type and Account Group fields on the standard form are not saved: whatever you pick is discarded, and the same fields on the record's Details tab and page header stay empty.
From orders. A dispatcher whose administrator has added the Van Load Console to an app page selects Build Van Loads. This packs the open orders for a delivery date into the branch's vans. It creates one Draft run per van, each with its lines, its depot and its executive filled in, and a linked Van Sales visit plan with one visit per outlet. Skip to Step 3.
Step 2 — Add the load lines
On the run, open the Lines tab and select New. The line form asks for:
- Item and SKU — what you are loading.
- Quantity — the planned load, in base units.
- Received Quantity and Damaged Quantity — leave these empty while you plan (see Fields).
Save. The line gets an automatic number in the FSL series. Add one line for each item, SKU and lot combination, because day-end sales are matched back to lines on all three (see Business rules).
To edit a line, open it and select Edit. The same form opens. To remove a line, use Delete.
Step 3 — Create the visit plan
If the run has no visit plan yet (hand-built runs), select Create Visit Plan on the run. xMatix creates a visit plan named "Van run" plus the run number and date, with plan type Van Sales and status Planned. It covers the run's document date and is assigned to the run's executive. The run's Visit Plan field now points to it. Add the outlet visits to that plan as usual. Runs created by Build Van Loads already have a plan with their visits, and selecting Create Visit Plan on them gives "The visit plan has already been created."
Fill in the run's Executive Resource before you select Create Visit Plan: the new plan is assigned to whoever is in that field, and an empty field gives a plan with no assignee.
Step 4 — Release the load
When the physical pick is ready, select Release Load on the run. What happens next:
- If the van capacity check is on, xMatix adds up the planned load. It multiplies each line's Quantity by the item's unit weight and volume and compares the totals with the van's capacity. In Block mode an overload refuses the release with a message that begins "The planned load exceeds van", and nothing is posted. In Warn mode the release goes ahead and the overload is written to the application log only. The load transfer gets its normal transfer number, so it carries no over-capacity mark.
- An outward transfer moves each line's Quantity out of the depot. Lines with no item or no quantity are skipped.
- With single-step loading (the default), a second, inward transfer lands the same quantities on the van. Every line's Received Quantity is set to its Quantity, replacing anything typed earlier. The run's status becomes TakenIn and Taken In At is stamped. Go to Step 6.
- With two-step loading, the run's status becomes Released. The stock has left the depot but is not yet on the van.
- If the run was built from orders and Create delivery orders on load release is on, xMatix also creates one delivery order per customer order on the van, with one line per load line.
You can release a run only once. Trying again gives "The load has already been released."
Step 5 — Take in the stock (two-step loading only)
Before the first visit, the executive opens the day's Van Sales visit plan on the mobile app. The Van Run card shows Take in stock with one row per line and its planned quantity. For each line, the executive enters what physically arrived:
- Received — what is on the van. It starts at the planned quantity.
- Damage, Short, Excess — what differs from the plan.
Each line must balance: Received + Damage + Short − Excess must equal the planned quantity. A line that doesn't balance is flagged, and Confirm take-in stays disabled until every line balances. Confirming writes the figures to the line's Received Quantity and Take-In fields. It then creates the inward transfer onto the van, carrying the damage, shortage and excess on its lines, and the run moves to TakenIn.
The card works offline. The take-in is saved on the phone and sent when the device is back online. Confirm it only once.
While the run is in Draft, the card shows "Van load · awaiting dispatch". Once the run is in TakenIn, the card shows a summary with Loaded, Sold and Cash to hand in.
Step 6 — Sell on route
At each outlet, the executive works the visit and raises the invoice as usual (see complete a visit). Selling from the van stock is ordinary invoicing.
At day end, xMatix can total the run's sales back onto the lines and the header:
- Sold Quantity on each line becomes the total quantity on the linked invoices' lines with the same item, SKU and lot.
- Cash Expected on the run becomes the total settled against the linked invoices, that is the sum of each invoice's Adjusted Amount (receipts and credit notes applied to it).
This roll-up only counts invoices that are linked to the run as Field Sales Invoice records. Raising an invoice on a visit doesn't create that link (see How does an invoice get linked to a van run?). The roll-up runs when the run's Perform Unload field is saved as on, and the standard screens have no control for that. Until someone runs it, Sold Quantity and Cash Expected stay empty (see Configuration).
Step 7 — Count the return and unload
When the van is back, count what is left on it. Record the count on each line:
- Check-In Received Quantity — what you are returning to the depot.
- Check-In Damaged Quantity, Check-In Shortage Quantity, Check-In Excess Quantity — what differs.
The standard line form doesn't show these fields, so your administrator needs to add them. Then select Unload on the run. For each line, xMatix returns:
- the Check-In Received Quantity, when it is more than zero; otherwise
- the remainder: Received Quantity (or Quantity, if nothing was received) minus Sold Quantity minus Damaged Quantity, never below zero.
An inward transfer brings those quantities back into the depot, carrying the check-in damage, shortage and excess. The run's status becomes Reconciled and Reconciled At is stamped. After that, Unload gives "The run is already reconciled."
Fields
Run fields
The standard create form asks for Partner Account, Branch, Document Date, Resource, Type and Account Group. The run's page shows Document Date, Partner Account, Branch and Resource in its header, the Lines tab, and a Details tab with Visit Plan, Type, Resource and Account Group. The other fields below are filled by the actions, or appear only if your administrator adds them to the form.
| Field | What it means | Notes |
|---|---|---|
| Document Number | The run's number | Automatic, from the FS series. |
| Partner Account | The company the run is recorded for | Copied onto the run's transfers and its visit plan. |
| Branch | The branch the run belongs to | Every transfer the run creates is raised in this branch. |
| Document Date | The day of the run | Dates the transfers and the visit plan. Build Van Loads sets it to the delivery date. |
| Resource, Type, Account Group | — | On the standard form but not saved. Type offers Van Delivery, Ready Stock Sales and Pre-Bill, and the choice has no effect. |
| Storage Location | The van | Not on the standard form. Receives the load and is the source of the unload; its capacity is what the capacity check uses. |
| Source Storage Location | The depot | Not on the standard form. Source of the load, destination of the unload. |
| Executive Resource | The executive who drives the van | Not on the standard form. The visit plan from Create Visit Plan is assigned to this person. Build Van Loads fills it from the seat that runs the van, or the van's default resource. |
| Visit Plan | The run's Van Sales visit plan | Filled by Create Visit Plan or Build Van Loads. |
| Status | Where the run is | Written by the actions: Released, TakenIn, Reconciled. Build Van Loads runs start as Draft; hand-built runs have no status until release. The option list (Draft, Loaded, Unloaded) doesn't match, so filter on the written values. |
| Taken In At | When the stock landed on the van | Stamped by a single-step release or by the take-in. |
| Reconciled At | When the run was reconciled | Stamped by Unload when it returns stock. |
| Is Load Released, Is Unload Released, Is Plan Released | Which actions have run | Read-only flags. Is Load Released blocks a second Release Load. |
| Cash Expected | What the executive should hand in | Filled only by the day-end roll-up (see Step 6). |
| Cash Received, Cash Discrepancy Reason | The dispatcher's cash count and the reason for any gap | Typed by hand; not on the standard form; never compared automatically. |
| Perform Load, Perform Release Load, Perform Release Unload, Perform Release Visit Plan, Perform Unload | The switches behind Take In, Release Load, Unload, Create Visit Plan and the day-end roll-up | The actions set them for you. Most appear, read-only, in the record preview. Perform Unload stays on after it runs. |
The field-by-field reference is on the Field Sales reference page.
Line fields
The line form and list show the first group of fields. The rest are filled by the actions above, or appear only if your administrator adds them to the form.
| Field | What it means | Notes |
|---|---|---|
| Field Sales | The run this line belongs to | Required in practice. A line saved without a valid run fails with "Field Sales document not found." Filled automatically when you add the line from the run's Lines tab. |
| Item | The item being loaded | A line with no item is skipped by every transfer. |
| SKU | The item SKU being loaded | Copied onto every transfer line. Used to match sales back to the line. |
| Quantity | The planned load, in base units | Release Load moves this quantity out of the depot, and the capacity check weighs it. Zero or empty means the line is skipped. |
| Received Quantity | What went onto the van | Set to Quantity on every line by a single-step release. Entered by the executive on the Van Run card with two-step loading. Unload uses it to work out the remainder. |
| Damaged Quantity | A general damage figure | Not copied onto any transfer, but Unload subtracts it when it has to work out the return quantity. |
| Sold Quantity | Total sold from the van | Filled by the day-end roll-up. Replaced each time the roll-up runs, not added to. |
| Amount | — | Shown on the line view and list but not saved. |
| Shortage Quantity, Excess Quantity | — | Shown on the line view and list but not saved. Use the Take-In and Check-In fields instead. |
| Take-In Damaged / Shortage / Excess Quantity | Differences found when the stock went onto the van | Two-step loading only. Entered on the Van Run card and copied onto the take-in transfer. |
| Check-In Received Quantity | What was counted back into the depot | When more than zero, it is exactly what Unload returns. |
| Check-In Damaged / Shortage / Excess Quantity | Differences found in the day-end count | Copied onto the unload transfer. |
| Item Lot | The lot being loaded, for lot-tracked items | When set, saving the line creates a copy of the lot assigned to the run's branch, partner and van. An unknown lot fails with "Item Lot not found." |
| UOM, UOM Quantity, UOM1, UOM Quantity 1 | The planned quantity in up to two alternative units | Quantity is worked out as UOM Quantity × Conversion Ratio plus UOM Quantity 1 × Conversion Ratio 1. A unit the item doesn't have fails with "UOM is not defined for this Item." |
| Conversion Ratio, Conversion Ratio 1 | Base units per alternative unit | Copied from the item's units of measure when the line is saved. |
| Line Name | The line number | Automatic, from the Field Sales Line Name Setting (series FSL). |
The field-by-field reference is on the Field Sales Line reference page.
Business rules
- Every line needs a run. A line saved without a valid run fails with "Field Sales document not found."
- Releasing is one-time. A run can be released only once. This includes a release with no loadable lines: if no line has both an item and a quantity, no transfer is created and the status doesn't change, but the run still counts as released (Is Load Released is Yes). Add the lines before you release.
- Single-step loading overwrites Received Quantity. On release, every line's Received Quantity becomes its planned Quantity.
- Take In does nothing after a single-step release. A run already in TakenIn doesn't receive the stock a second time.
- The take-in must balance. On the Van Run card, Received + Damage + Short − Excess must equal the planned quantity on every line before Confirm take-in is enabled.
- Sales match on item, SKU and lot together. The roll-up totals invoice lines by item, SKU and lot, then writes each total to the first load line with the same three values. A sale with a different SKU or lot reaches no line. Two lines with the same item, SKU and lot don't share the figure; only the first gets it.
- Unload returns the count, or the remainder. A Check-In Received Quantity above zero wins. Otherwise Unload returns Received (or planned) minus Sold minus Damaged, never below zero.
- Unload needs something to return. If every line works out to zero (everything sold, say), Unload creates no transfer and the run doesn't move to Reconciled.
- Unload doesn't check the release. Unload is refused only on a run that is already Reconciled. Selecting it on a Draft run posts a return into the depot of stock that never left. Use it only after the load is on the van.
- The day-end roll-up repeats. Once Perform Unload is saved as on it stays on, so every later save of the run recalculates Sold Quantity and Cash Expected from the linked invoices. The other triggers switch themselves off after they run.
- Transfers are snapshots. Editing or deleting a line after an action doesn't change the transfers that action created.
- Orders load once. Build Van Loads subtracts the quantity already on live runs from each order line's remaining quantity (ordered − cancelled − delivered). Deleting a run frees its orders for the next build.
Example
A dispatcher at a depot plans a two-step van run for Thursday.
- They create run FS-… with Branch North Depot and the document date, and their administrator's form lets them pick van Van 07, depot Main Store and the executive.
- On Lines they add Mango Drink 200 ml, Quantity 120, and Orange Drink 200 ml, Quantity 80.
- They select Create Visit Plan, then add the day's 14 outlet visits to the new Van Sales plan.
- They select Release Load. An outward transfer linked to the run moves 120 and 80 out of Main Store, and the run shows Released.
- The executive counts the van: 118 mango received with 2 damaged, and 80 orange. Mango balances (118 + 2 = 120), so Confirm take-in is enabled. The run moves to TakenIn and the van holds 118 and 80.
- During the day, invoices linked to the run sell 100 mango and 65 orange.
- Back at the depot, the dispatcher counts 18 mango and 15 orange, enters them as Check-In Received Quantity and selects Unload. An inward transfer linked to the run returns 18 and 15 to Main Store, and the run shows Reconciled.
Training
Practice exercise
In a sandbox with two-step loading (turn Single-step van loading off), create a run with a van and a depot. Add two lines with quantities 10 and 5, create the visit plan and release the load. On the mobile Van Run card, enter Received 9 and Damage 1 for the first line and confirm. Then enter Check-In Received Quantity 4 on the first line, leave the second empty, and select Unload.
Expected result: the run passes through Released and TakenIn to Reconciled. The take-in transfer shows 9 received and 1 damaged on the first line. The unload transfer returns 4 of the first item and 5 of the second (5 received − 0 sold − 0 damaged).
Quick reference
- A run is one van, one day. Lines are one item, SKU and lot each.
- Quantity = planned, Received = on the van, Sold = invoiced, Check-In = came back.
- Release Load once, after the lines are complete.
- Single-step loading (default) jumps straight to TakenIn and sets Received = Quantity.
- The take-in must balance: Received + Damage + Short − Excess = Planned.
- Record Check-In Received Quantity before Unload, or Unload returns the calculated remainder.
- Don't select Unload on a run that was never released.
Permissions
Each security profile grants access to Field Sales runs and lines separately, plus each action on them. In the seeded profiles:
| Profile | Runs and lines | Release Load, Take In, Unload actions | Create Visit Plan | New run / new line |
|---|---|---|---|---|
| System Admin | Full access | Yes | Yes | Yes |
| Standard User | Full access | Yes | Yes | Yes |
| Sales Manager | Full access | Yes | Yes | Yes |
| Sales Executive | Full access | No | Yes | No |
The Build Van Loads action is granted to all four profiles. The mobile Confirm take-in doesn't use the Take In action: it edits the run and its lines directly, so it relies on edit access to Field Sales runs and lines. Manage entity and action grants under Setup → Access Control → Profiles (see security profiles).
Configuration
Van Sales settings. Go to Setup → Feature Hub → Sales → Settings, Van Sales group:
| Setting | Default | What it changes |
|---|---|---|
| Single-step van loading | On | On: Release Load lands the stock on the van in the same step and the run jumps to TakenIn. Off: two-step flow, where the executive confirms take-in with damage, shortage and excess. |
| Van capacity check on load release | Off | Off, Warn or Block. See the van capacity check. |
| Create delivery orders on load release | Off | For runs built from orders: one delivery order per customer order on the van, created at release. |
| Loadable order statuses (CSV) | Confirmed | The order statuses Build Van Loads treats as open. |
| Load horizon (days) | 1 | How many days back from the delivery date Build Van Loads looks for orders, by order document date. |
| Van assignment strategy | Geo | Geo splits orders across vans by capacity and geography (outlets need coordinates; it falls back to FFD otherwise). FFD packs by capacity only. |
Forms. The standard Field Sales form has no van, depot or executive fields, and the standard line form has no Check-In or Item Lot fields. Add the fields your process uses with the form layout designer:
- on the run: Storage Location, Source Storage Location, Executive Resource, Cash Received and Cash Discrepancy Reason;
- on the line: the four Check-In quantities and Item Lot.
Build Van Loads console. Build Van Loads is reached from the Van Load Console component. Add it to an app page in the designer to give dispatchers the day's runs and the Build Van Loads button.
Day-end roll-up. Sold Quantity and Cash Expected are filled only when the run's Perform Unload field is saved as on, and only from invoices linked to the run as Field Sales Invoice records. No standard screen sets either, so a tenant that wants these figures needs a form control, automation or integration that does.
Field Sales Invoice records. A Field Sales Invoice links one invoice to one run. It carries Name (required, and not numbered automatically), Field Sales, Invoice, Account, Invoice Amount and Collected Amount. The roll-up reads only Field Sales and Invoice. It overwrites Collected Amount with the invoice's Adjusted Amount every time it runs, and it never reads or fills Account or Invoice Amount. The entity is in no app and has no seeded form. To let people maintain these records by hand, add it to an app through Setup → Design Studio → Apps → Manage Items (see create an entity) and design a form for it. Otherwise, create them from the integration or automation that raises your van invoices. The seeded Sales Executive, Sales Manager, Standard User and System Admin profiles have full access to the records. The full field list is in the Field Sales Invoice reference.
Numbering. Runs are numbered from Order Document Name Setting for Field Sales (series FS) and lines from Field Sales Line Name Setting (series FSL), under Setup → Feature Hub → Platform → Document Settings. Runs from Build Van Loads are numbered the same way. The transfers a run creates follow the Transfer number series.
Vans. Mobile flag, capacities, default resource and default position live on the storage location — see storage locations.
Common problems
"The load has already been released."
The run was released before. This also happens if it was released while it had no loadable lines. In that case no transfer exists and the status is still Draft, but the run can't be released again. Create a new run with its lines and release that one.
"The planned load exceeds van … capacity"
The capacity check is in Block mode and the planned weight or volume is more than the van's capacity. Reduce the line quantities, split the load across two runs, or use a bigger van.
The capacity check never complains, even for an obviously full van
Items without unit weight or volume count as zero, and a van with neither capacity filled in is never checked. Fill in the item and van master data.
The executive's phone shows "Van load · awaiting dispatch"
The load hasn't been released yet: the run is in Draft, or has no status because it was created by hand. Release the load.
"The visit plan has already been created."
The run already has a visit plan, either from an earlier Create Visit Plan or because Build Van Loads created it. Open the plan from the run's Visit Plan field and add or change visits there.
The Van Run card never shows Take in stock
Single-step loading is on, so the release already put the stock on the van and the run is in TakenIn. This is expected. Turn the setting off only if you want executives to count the stock in.
"Field Sales document not found."
A line was saved, often by an import, without a valid Field Sales run. Set Field Sales on the line.
"UOM is not defined for this Item."
The line's UOM or UOM1 is not one of the item's units of measure. Pick a unit the item has, or add it to the item.
Sold Quantity and Cash Expected stay empty
The day-end roll-up hasn't run, or the invoices aren't linked to the run as Field Sales Invoice records. See Day-end roll-up under Configuration.
Unload returned stock the van doesn't have
No Check-In Received Quantity was recorded, so Unload returned the calculated remainder, and Sold Quantity was empty. Record the counted return on each line before you select Unload. To correct a posted unload, use an inventory adjustment or transfer.
Unload did nothing and the run is not Reconciled
Every line worked out to zero to return. Unload only creates a transfer, and only reconciles the run, when at least one line returns stock.
Build Van Loads: "No open orders to load for …"
No order for the outlets in scope has a loadable status, remaining quantity and a document date inside the load horizon. Check Loadable order statuses and Load horizon (days), and whether the orders are already on another live run.
Build Van Loads: "No usable vans …" or "Every candidate van already has a Field Sales run on …"
A van must be an active, Mobile storage location with a capacity filled in, anchored to the chosen seats or to the branch. Each van can have only one run per delivery date.
Build Van Loads: "No source depot …"
The branch has no storage location that holds inventory and is not mobile. Add one; the build uses the first such location in the branch's fulfilment sequence.
Common questions
Where does Cash Expected come from?
From the invoices linked to the run. The day-end roll-up adds up what has been settled against each linked invoice (its Adjusted Amount: receipts and credit notes applied) and writes the total to Cash Expected. It is not a target someone types. On the Van Run card it appears as Cash to hand in. Cash Received and Cash Discrepancy Reason are for the dispatcher's count. They are not on the standard form, so your administrator adds them if you use them, and xMatix doesn't compare the two figures for you.
How does an invoice get linked to a van run?
Through a Field Sales Invoice record that names the run in Field Sales and the invoice in Invoice. xMatix doesn't create these records for you. An invoice raised on a visit is ordinary invoicing and isn't tied to any run, and the standard screens have no place to add the link. Your administrator either adds the Field Sales Invoice entity to an app with a form, so a dispatcher can link the day's invoices before the day-end roll-up, or has the integration or automation that raises van invoices create the links as well. Each run's roll-up counts only the invoices linked this way. See Field Sales Invoice records under Configuration.
What happens to damaged stock?
Damage is recorded separately at each handover. In the two-step flow, take-in damage goes onto the van's inward transfer. At day end, check-in damage goes onto the depot's return transfer. The general Damaged Quantity field is not posted anywhere. Unload uses it only when it has to work out the return quantity itself.
Can the executive work the run offline?
Yes, for the take-in. The Van Run card saves the confirmed quantities on the phone and sends them when the device reconnects. The visits and invoices of the day follow the usual offline rules; see how offline-first mobile works. Release Load and Unload are dispatcher actions on the web.
Can I change a line after the load is released?
You can edit it, but the transfers already created don't change. To correct stock that has already moved, post a transfer or adjustment. Edits still matter for the steps you haven't run yet, because Take In and Unload read the line figures at the moment you select them.
Can one order be split across two vans?
Only when the order alone is bigger than every van. Build Van Loads then splits it at line level and reports it. Otherwise each order stays whole on one van, and orders that fit no van are reported, not dropped.
