- Em dashes: 1712 remplaces par tirets simples (86 fichiers + _index.md, en-tete section Limagrain conserve) - Checklists: 24 '- [ ]' -> '- ☐' (3 pages operations, plus de todos Obsidian) - Ancres: 33 reparees (slugs GitHub + ancres HTML <a id> reconnues), 1 reciblee (manuel de reten) - related: tenseflow -> tense-flow, pie -> mechanical-elements, group.md retire (doublon shipping) - Registre: compteur global 122 -> 131 pages - Rapport racine _lint_report.md mis a jour (scan v2 + re-scan final: 0 anomalie) - Aucun fichier limagrain/ modifie (cloisonnement)
10 KiB
title, type, sources, related, last_compiled
| title | type | sources | related | last_compiled | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3PL Billing | module |
|
|
2026-04-26 |
3PL Billing
Overview
The 3PL Billing module identifies, quantifies, records, and consolidates data from logistical activities in the warehouse for billing purposes. It is primarily designed for 3PL (Third-Party Logistics) operators who need to invoice each client (owner) individually based on the warehouse services consumed.
Prerequisite: The Owner Extensions module must be installed. This adds the mandatory owner field to receipt and shipping orders and restricts mixing items from different owners in the same order.
Scope limitation: By default, the module only counts data from Easy WMS activities. Activities from other modules (Manufacturing container consumption, Yard Management transport documents) are excluded unless custom rules are configured.
Key capabilities
- Configurable billing rules for all standard logistics activities (storage, handling, inbound, outbound, packing, etc.)
- Custom rules based on transactions for non-standard activities
- Contract-based billing: one contract per owner, specifying rules + planner + validity period
- Economic valuation: optional currency-based pricing with unit costs or percentage (for stock value rules)
- Tiered pricing: volume discount/surcharge ranges per rule
- Bill generation: periodic automatic or manual; owner-specific bills with full line detail
- Pre-validation: optional manual review before automatic bill closure and ERP export
- Compensation: manual surcharges or discounts (%) at bill or line level
- Notifications: alerts for generation errors, closure events
Architecture
Core entities
Billing rule: definition of what to count. Two types:
- Standard rules (automatic): count activities tracked natively by EasyWMS; system counts without user intervention
- Manual rules: Fixed (flat fee regardless of volume) or Variable (operator-entered quantity); used for activities EasyWMS does not track
Rules are organized in three groups by concept:
Group 1 - Storage
Quantifies articles in stock at a given moment (snapshot-based):
| Sub-type | What is counted |
|---|---|
| Container | Number of containers with owner's stock |
| Location | Number of locations with owner's stock |
| Unit of measure | Quantity in the chosen UoM |
| Weight | Weight of owner's stock (max of balance weight vs. theoretical) |
| Volume | Volume of owner's stock (based on item conversion dimensions) |
Group 2 - Handling
Quantifies dynamic processes applied to stock (flow-based):
| Sub-type | What is counted |
|---|---|
| Container | Containers involved in the operation |
| Work orders | Number of operations (receipts, shipments, loads, routes, counts, kits) |
| Work order lines | Number of order lines processed |
| Weight | Weight processed in the operations |
| Unit of measure | Quantity processed in chosen UoM |
| Volume | Volume processed |
Operations covered: inbound receipts, outbound shipments, loads, routes, counts, kit assemblies.
Group 3 - Transaction
Custom rules based on specific WMS transaction types:
| Parameter | Description | Required? |
|---|---|---|
| Transaction type | Which WMS transaction triggers the count | Yes |
| Owner parameter | Field in the transaction identifying the owner | Yes |
| Quantity parameter | Field providing the count value (if absent: quantity = 1 per event) | No |
| Operation type | Increment (adds to total), Decrement (subtracts), Variable (sign-based) | Yes |
Used for non-standard activities not covered by groups 1 or 2.
Billing planner: defines when to generate bills - daily, weekly, monthly, or custom schedule.
Billing contract: ties together an owner + billing rules + planner + validity period + optional economic valuation.
Bill: periodic summary document generated per contract. Contains lines (one per rule) with breakdown detail.
Bill line: total quantification of one rule for the period. Can be drilled down to individual activity records.
Compensation: manual % surcharge or discount applicable at bill level or line level.
Contract lifecycle
Contract created → Enabled → Bills generated periodically → Lines generated per rule
→ Pre-validation (optional) → Closed → ERP export
Contract disabled → No new activities recorded; no automatic bill closure
Economic valuation
When a contract has a currency configured:
- Standard rules: Fee (currency/unit) × quantity counted
- Stock value rules: Fee (%) × stock value (presentation currency must match contract currency)
- Bill totals: Gross price (before compensation) → Subtotal price (after line compensation) → Total price (after bill compensation)
Tiered pricing (requires EnablePriceRanges toggle)
Ranges must be consecutive starting at 1. Last range has no upper limit (acts as catch-all):
Range 1: 1–100 units → 10€/unit
Range 2: 101–200 units → 8€/unit
Range 3: 201+ units → 6€/unit
Bill line displays the average price (total gross amount ÷ count) when ranges are used.
Configuration
Initial setup
- Install Owner Extensions module
- Define owners (3PL clients) in inventory masters
- Create billing rules for each activity category:
- Storage rules (container presence, time-based)
- Handling rules (inbound, outbound, picking)
- Weight/volume/UoM-based rules
- Custom transaction-based rules
- Create billing planners (frequency)
- Create contracts: one per owner, assigning applicable rules + planner
- Enable contracts
Contract rules configuration
For each rule assigned to a contract:
- Activity type filter (which operations qualify)
- Owner filter (auto-applied from contract)
- Economic valuation (fee/unit or fee/% for stock value rules)
- Price ranges (optional)
Pre-validation
When enabled on a contract, generated bills must be manually reviewed and approved before automatic closure. Prevents incorrect bills from being sent to ERP.
Contract enable/disable rules
- A contract can be enabled/disabled multiple times within its validity period
- Disabled contracts: no activity recording for manipulation rules; no automatic bill closure
- Cannot change valuation (on/off) after a contract has been active - must clone and disable old
Operations
Bill management (PC - Billing menu)
| View | Content |
|---|---|
| Bills | All generated bills per contract/owner |
| Bill lines | Individual rule quantification per bill |
| Bill detail lines | Breakdown of each activity counted in a line |
| Compensations | All applied discounts/surcharges |
| Reports | Detailed and simplified billing reports |
Bill status flow
- Bills generated automatically (by planner) or manually
- If pre-validation enabled: bill in "pending validation" state
- Validated → Closed → exported to ERP
- Manual close or forced close available from web interface
Compensation actions
Available on bills and individual lines:
- Apply % discount (negative compensation)
- Apply % surcharge (positive compensation)
- "Compensated" flag shown on bill and line records
Billing notifications
The system can automatically generate notifications for 6 billing events. Users subscribe per event:
| Event | Trigger |
|---|---|
| Bill sent automatically | A bill has been created, closed, and sent to ERP automatically |
| Bill pending validation | A bill has been generated and awaits manual approval before closure |
| Bill corrected | Bill data has been manually corrected after automatic generation |
| Bill cancelled | A bill has been cancelled; data will not be sent to ERP |
| Contract expired | The contract's end date has passed; no new bills will be generated |
| Contract about to expire | The last bill of the contract has been generated; next scheduled date falls outside validity period |
Notification channels: email, SMS, or SmartUI contextual notification. Channel and timing are configurable per event per subscriber.
Errors & troubleshooting
| Issue | Cause | Resolution |
|---|---|---|
| Billing calculation error notification | Stock value rule currency doesn't match contract currency | Ensure all item presentations use same currency as contract |
| Contract cannot be enabled | Not all rules have fee configured (when valuation active) | Complete fee configuration for all contract rules |
| Bill marked as erroneous | Currency mismatch in stock value calculation | Check presentation currencies; fix contract currency if needed |
| Activities not recorded | Contract disabled during activity period | Enable contract before activities occur |
Related
- 3pl-portal - 3PL clients access their billing data and operational KPIs through the client portal
- owner-extensions - Prerequisite module; adds owner enforcement to orders and master data
- account-owner - Owners are the 3PL clients; contracts are created per owner
- stock - Storage-based billing rules measure stock presence and movements
- order-inbound - Inbound handling activities (receipt) counted by billing rules
- order-outbound - Outbound handling activities (shipping, picking) counted by billing rules