ITB Sales Force is IT Bridge Global's field-sales solution for beverage and food distributors. It covers a sales rep's whole day on the route: loading the van, visits, sales, payment collection, stock return and cash closing. The data flows into the Dolibarr ERP.
This wiki describes every process in the solution: who performs it, when, step by step, with the rules and checks that apply. It is written for four audiences:
Business rules: what the system enforces or checks.
Outcome: what is recorded and sent to Dolibarr.
Common issues: frequent situations and how to resolve them.
Availability
Each process carries a label:
AvailableAvailable: in the current mobile app (version 0.2).
Web demoWeb demo: visible in the online demo, being integrated into the app.
PlannedPlanned: specified in the requirements, development scheduled.
The Feature status page summarizes the status of each function.
Pilot context
The pilot runs in Douala (Cameroon). Amounts are in CFA francs (XAF), with no decimals. The default VAT rate is 19.25 %. The supported mobile money operators are MTN MoMo and Orange Money. All of these are configurable.
Getting started
Roles and responsibilities
Available The solution has five roles. Access rights are based on Dolibarr groups and permissions.
Role
Where they work
Main responsibilities
Sales rep
Mobile app
Load the van, visit customers, sell, collect payments, create new points of sale, return stock, close their cash
Storekeeper
Warehouse, with the sales rep
Check the morning loading (Stock-In) and count the stock returned in the evening (Stock-Out)
Supervisor
Dolibarr and mobile approval view
Plan routes, set targets, approve variances, discounts above the cap, new points of sale and refunds
Management
Dolibarr, reports
Track sales, collections, targets and market coverage
Administrator
Dolibarr
Configure the solution, manage accounts and permissions, run technical operations
Segregation of duties
The solution applies a simple principle: whoever handles the goods or the money is not the one who approves the variances.
The sales rep declares; the storekeeper confirms the physical quantities.
The sales rep explains a variance; the supervisor approves it above the thresholds.
The sales rep cannot change a validated payment; only a cancellation with a reason, approved by the supervisor, is possible.
Who sees what
A sales rep sees only their customer portfolio, their route, their van stock and their cash.
A supervisor sees their team.
Management sees everything.
Getting started
Install the app and sign in
Available
Purpose: set up a sales rep's phone for their first day.
Actors: sales rep, administrator.
Prerequisites
An Android 9 or later smartphone, or an iPhone (iOS 15 or later).
A Dolibarr user account created by the administrator, linked to a territory, a supervisor and a vehicle warehouse.
An internet connection for the first sign-in only.
Steps
Install the ITB Sales Force app (file provided by the administrator, later from the Play Store / App Store).
Open the app. The sign-in screen appears.
Check the server address (pre-filled by the administrator).
Enter your Dolibarr username and password, then tap Sign in.
The app downloads the day's data: catalog and prices, portfolio customers, unpaid invoices, today's route, settings, suggested standard load.
Allow access to location (required for check-in) and the camera (storefront photos, cheques).
Choose the language (French or English) if needed, from the sign-in screen or the Sync tab.
Business rules
Sign-in checks the credentials against Dolibarr and creates an access token stored on the phone.
If another sales rep previously signed in on the same phone, their local data is erased. This is refused until all their operations are synced.
Once signed in, the sales rep can work offline until they sign out.
Common issues
Message
Cause
Solution
"Server unreachable"
No network, wrong address, server down
Check the connection and the address, try again
"Incorrect username or password"
Typing error or disabled account
Re-enter; otherwise contact the administrator
"Another sales rep's data has not been synced"
Shared phone
The first sales rep must sign in again and sync
Getting started
Work offline and sync
Available
Purpose: let the sales rep work all day without a network, without ever losing or duplicating an operation.
How it works
Each action (loading, check-in, sale, payment, point of sale creation, check-out…) is first saved on the phone.
It is added to an outbox queue.
As soon as the network is available, the queue is sent to the server in order.
When the queue is empty, the app reloads the reference data (unpaid invoices, targets, route).
When sync happens
Automatically, right after each action if the network is available.
Automatically, when the network comes back.
Automatically, every 5 minutes.
Manually, by tapping the sync indicator at the top of the screen or the Sync now button in the Sync tab.
The indicator at the top of the screen
Display
Meaning
Up to date (green)
Everything has been sent
N pending (orange)
N operations are waiting to be sent
Offline · N
No network; N operations will be sent later
Syncing…
Sending in progress
Business rules
Each operation has a unique identifier. If it is sent twice (connection lost during sending), the server records it only once.
Operations are sent in the order they were made: a new point of sale is sent before its first invoice.
An operation rejected by the server (for example, insufficient warehouse stock) is not deleted: it appears in the Sync → Rejected by server tab, with the reason, and can be resent.
You cannot sign out while operations are pending.
Day closing requires a full sync.
Common issues
The "pending" counter does not go down: check the network, then tap Sync now. If an error message appears, note it and inform the supervisor.
An operation is rejected: read the reason in the Sync tab. Fix the cause (for example, get a variance approved), then tap Resend.
Session expired: sign in again. Pending operations are kept.
Field processes
A sales rep's typical day
AvailableWeb demo
Here is the full sequence of a day. Each step has its own detailed page.
One customer at a time: you must check out before the next check-in.
No cash closing until the Stock-Out is done and everything is synced.
Field processes
Stock-In: load the van
Available
Purpose: record exactly what the sales rep takes in the van, so that sales and returns can be checked later.
Actors: sales rep, storekeeper.
Trigger: start of the day, before the first visit.
Steps
In the app, open the Stock tab, then Stock-In.
The standard load suggested by the supervisor appears, product by product, with the stock available in the warehouse.
Adjust the quantities with the − and + buttons to match what is actually loaded.
Check the loaded value shown at the bottom.
Choose the storekeeper who checked the loading.
Tap Validate loading.
The goods issue note appears. It gets its Dolibarr reference (BS-…) at sync.
Business rules
Only one active load per day per sales rep.
A quantity cannot exceed the stock available in the warehouse. The server repeats this check: if two sales reps load the same product at the same time, the second load may be rejected.
The load is time-stamped and linked to the storekeeper.
Planned Top-up loading during the day: planned.
Outcome
In Dolibarr: a stock transfer from the main warehouse to the sales rep's vehicle warehouse.
On the phone: the van stock becomes available for sale (Stock tab → Van stock).
Van stock
The Van stock screen shows, per product: quantity loaded, sold, available. A product turns red when 10 % or less of the loaded quantity remains (configurable threshold).
Common issues
"A load is already active today": the Stock-In has already been done, possibly on another phone. It is reloaded automatically at sign-in.
"Insufficient warehouse stock" (rejected at sync): adjust with the storekeeper; the supervisor corrects the stock in Dolibarr if needed.
Field processes
Route and navigation
AvailableWeb demo
Purpose: visit the planned customers in the best order and get there quickly.
Actors: sales rep; the supervisor prepares the route.
The visit list
The Route tab shows the day's points of sale, in visit order, with:
the name, type and neighborhood;
the distance from the sales rep's current location;
the status: planned time, In progress, Done;
the New label for a point of sale created in the field.
The map
Web demo The map shows the starting depot, the points of sale numbered in visit order, their status by color (blue: to visit, orange: in progress, green: done) and the path. Tapping a point opens its record or starts directions.
Planned In the mobile app, the built-in map arrives in sprint 3.
Navigation
On each customer record, Google Maps directions opens navigation to the customer.
The Open route in Google Maps button opens the whole route, stop by stop.
If the phone is connected to Android Auto or CarPlay, guidance appears on the vehicle screen. No sales or data entry are done on the vehicle screen.
Business rules
The visit order is set by the supervisor; it is calculated to minimize distance from the depot.
The sales rep can visit a customer out of the planned order.
A point of sale created in the field is added at the end of the route as an unplanned visit.
Planned Cancelling a visit with a reason (customer closed, absent…): planned.
Field processes
Check-in and check-out
Available
Purpose: prove the visit (time, location, duration) and unlock actions at the customer.
Actors: sales rep.
Automatic check-in
Open the customer record from the route.
Tap Check my location. The phone measures its GPS position.
If the distance to the point of sale is less than or equal to the allowed radius (100 m by default), the In range label appears.
Tap Check in.
Manual check-in
If the sales rep is out of range or GPS is unavailable:
Choose a reason: inaccurate GPS, wrong point of sale coordinates, meeting outside, other.
Tap Manual check-in.
A manual check-in is flagged as such in reports. A high share of manual check-ins is a point of attention for the supervisor.
During the visit
After check-in, the record offers:
New sale (if a Stock-In is active);
Collect payment;
a visit note (optional);
Check out.
Check-out
Tapping Check out ends the visit. The departure time and the note are recorded. The visit moves to Done status.
Business rules
The check-in radius is set by the administrator (from 20 to 500 m), optionally by zone or by point of sale type.
Only one visit in progress at a time: check-in at another customer is refused until the current visit is finished.
Check-in records: time, latitude, longitude, distance to the point of sale, reason if any.
Common issues
Inaccurate GPS in town: step out of the building, wait a few seconds, tap Retry GPS. Otherwise, do a manual check-in with the reason "Inaccurate GPS".
The point of sale is always "out of range": its coordinates are probably wrong. Do a manual check-in with the reason "Wrong coordinates"; the supervisor will correct the location.
Field processes
Create a new point of sale in the field
AvailableWeb demo
Purpose: immediately record a customer met during the route, so you can sell to them on the first visit.
Actors: sales rep; supervisor for approval.
Trigger: the sales rep finds a shop that is not in their portfolio.
Steps
Route tab → + New point of sale.
The GPS position is captured automatically, with its accuracy. Stand in front of the entrance and tap Retake location if needed.
Enter the point of sale name.
Choose the type: Shop, Grocery, Mini-market, Snack bar, Liquor store, Kiosk, Wholesaler, Other.
Enter the neighborhood or a landmark (e.g. "Bépanda, opposite the Rond-point pharmacy").
Enter the contact name and phone number.
Take the storefront photo (recommended).
Add a note if useful (opening hours, market day…).
Tap Create point of sale.
Business rules
Required fields: name, type, neighborhood or landmark, contact, phone.
The phone must be a valid Cameroonian number: 9 digits starting with 6 (mobile) or 2 (landline), with or without +237. It is saved in the format +237 6 XX XX XX XX.
Duplicate detection: the app warns if the same phone number already exists, or if a point of sale with a similar name is less than 30 m away. The sales rep can open the existing record or create anyway.
The new point of sale has prospect status: cash sales only (credit limit of zero) until the supervisor approves it.
It is added to the day's route as an unplanned visit: check-in, sale and payment collection are possible immediately.
Creation works offline. The point of sale gets a temporary identifier, replaced by the Dolibarr identifier at sync; sales and payments already made are linked automatically.
Outcome
In Dolibarr: a customer third party with prospect status, with GPS position, contact and photo.
For the supervisor: an item to approve in their queue (Approvals).
Field processes
Sales and invoicing
AvailableWeb demo
Purpose: invoice the customer for what they buy, from the van stock, with a reliable, numbered document.
Actors: sales rep, customer (signatory).
Prerequisites: validated Stock-In, check-in done at the customer.
Steps
On the customer record, tap New sale.
For each product, set the quantity with − and +. The quantity available in the van is shown.
Enter a percentage discount if one is granted.
Check the totals: subtotal excl. VAT, discount, total excl. VAT, VAT, total incl. VAT.
Enter the signatory's name.
Web demo Have the customer sign on the screen with their finger.
Tap Validate invoice.
The invoice appears. Choose Collect now or Leave on credit.
Business rules
Only products in the van can be sold; a product that has run out shows "Out of stock in van".
The quantity sold cannot exceed the van stock. The server repeats the check.
The discount is limited to the discount cap set by the administrator (10 % by default). Planned Above it, supervisor approval from the app is planned for sprint 2; until then, validation is blocked.
VAT is calculated per product at the configured rate (19.25 % by default), after discount.
Offline, the invoice gets a temporary number (PROV-initials-0001). The Dolibarr number (FA…) is assigned at sync; the two remain linked.
Validation immediately reduces the van stock.
Outcome
In Dolibarr: a validated customer invoice, linked to the sales rep and the visit.
Revenue excl. VAT feeds the customer's and the sales rep's targets.
Documents
Planned PDF invoice with logo, legal notices and signature, Bluetooth printing and sending to the customer: sprint 2. The channel for sending to the customer is still to be defined.
Field processes
Payment collection
AvailableWeb demo
Purpose: record every payment received, whatever the method, and allocate it to the right invoices.
Actors: sales rep, customer.
Trigger: after a sale (cash payment) or during a collection visit.
Steps
From the invoice (Collect now) or the customer record (Collect payment).
The customer's unpaid invoices appear, from oldest to newest, with the balance due.
Choose the payment method.
Enter the amount (pre-filled with the balance due).
Fill in the method-specific details (see table).
Tap Validate payment. The numbered receipt appears.
Payment methods
Method
Information required
Checks
Cash
Amount; amount handed over by the customer (optional)
Reference required and unique; Planned SMS capture in sprint 2
Cheque
Number, bank
Number and bank required; Planned photo in sprint 2
Bank transfer
Reference
—
PlannedCard
Last 4 digits, authorization
—
Business rules
Automatic allocation: the amount settles invoices from oldest to newest.
Partial payment: the invoice's remaining balance is updated.
Overpayment: the excess is recorded as a customer advance payment.
A mobile money reference already used is refused, on the phone and then on the server.
A validated payment cannot be changed. Planned Cancellation with a reason and supervisor approval: planned.
Outcome
In Dolibarr: a payment allocated to the invoices, and an updated customer balance.
In the Cash tab: the day's total by payment method.
Field processes
Credit sales, unpaid invoices and advance payments
Available
Purpose: allow credit sales to trusted customers, within controlled limits.
Credit limit
Each customer has a credit limit set by the supervisor. On the customer record, the Customer account card shows the limit, the balance due and the list of unpaid invoices.
Leave an invoice on credit
After validating an invoice, tap Leave on credit:
if the balance due (unpaid invoices, including the new one) exceeds the limit, the app refuses and asks for cash payment;
if the customer is a prospect (newly created point of sale), credit is refused;
otherwise, the invoice stays due and will appear among unpaid invoices on the next visits.
Collection
At each visit, unpaid invoices appear on the customer record. Payment collection settles them from oldest to newest (Payment collection).
Advance payment
An amount collected above the balance due becomes an advance payment. Planned Using it on a later invoice will be offered automatically.
For the supervisor
Planned The aged balance of unpaid invoices and the collection rate are included in the reports.
Field processes
Stock-Out: return the stock
Web demoPlanned (mobile app: sprint 2)
Purpose: compare what should have remained in the van with what is actually returned, and explain each variance.
Actors: sales rep, storekeeper; supervisor for large variances.
Trigger: return to the depot at the end of the route.
Steps
Stock tab → Stock-Out.
For each product, the app shows the expected stock: loaded − sold.
With the storekeeper, count what remains and enter the actual stock returned.
The variance appears per product, in quantity, percentage and value.
The step to do is highlighted with an Open button.
Cash closing
The app shows the expected cash: total cash payments collected that day.
The sales rep counts their cash and enters the declared cash.
The variance is calculated.
Cash variance
Action
≤ 1 % and ≤ 5,000 FCFA
None
above that
Justification
> 25,000 FCFA
Supervisor approval
Payments by mobile money, cheque or bank transfer are not in the physical cash: they are listed separately and checked against supporting documents.
The closing report
It appears as soon as closing is done and is sent to the supervisor with the evening report:
Cash: expected cash, declared cash, variance.
Returned stock: per product, expected stock, actual stock counted by the storekeeper, variance in quantity and value.
Reconciliation: cash variance + valued stock variance = net balance.
Net balance
Meaning
negative (red)
Shortage to be justified by the sales rep
positive (orange)
Overpayment to be paid back or justified
zero (green)
Cash and stock reconciled
Stock is valued at the selling price excl. VAT.
Business rules
Cash closing is impossible until the Stock-Out is validated and while operations remain to be synced.
An unclosed cash register blocks opening the next day, unless the supervisor unlocks it.
Planned Recording of the cash deposit (deposit slip): planned.
Field processes
Credit notes and debit notes
Planned Planned for sprints 13-14 of the schedule.
Credit note
Use cases: return of defective or expired products, invoicing error, discount granted after the sale, compensation.
Planned steps
Choose the customer and the invoice concerned.
Choose the reason.
Select the returned products and quantities (limited to the invoiced quantities).
Photograph the products (required for a return).
The amount is calculated at the invoiced price.
Have the customer sign.
Generate the credit note.
Using the credit note: deduction from an invoice, customer credit, or refund (supervisor approval above 50,000 FCFA).
Products returned in good condition go back into the van stock; damaged products follow the scrap process.
Debit note
Use cases: delivery fees, late payment penalties, correction of under-invoicing, service fees.
Rules: reason and description required, supervisor approval required, customer notification.
Field processes
Customer inventory and surveys
Planned Planned for sprints 15-16 of the schedule.
Customer inventory
Purpose: record the stock at the point of sale (shelves and back room) to detect stock-outs and suggest restocking.
During the visit, open the inventory.
Record products by barcode scan or manual entry; the customer's expected range is pre-loaded.
Enter the nearest expiry date if needed (alert at 30 days).
Missing products are flagged out of stock, those below the minimum on alert.
The restocking quantity is suggested (target stock − recorded stock) and can be turned into a cart in one tap.
Photograph the shelves, record the number of facings and the presence of POS materials.
Surveys
The supervisor creates questionnaires (multiple choice, scales, text, photo, conditional logic) targeting customers or segments. The sales rep fills them in during the visit; answers are saved as drafts and submitted once the required questions are answered.
Management
Plan routes and portfolios
Available (via Dolibarr) Planned (dedicated planning screen)
Goal: assign each sales rep their customers and the order in which to visit them.
Actors: supervisor.
Portfolio
Each sales rep has a portfolio: the list of customers they look after. They only see these customers in the app. The portfolio is managed in Dolibarr by assigning the sales rep as the sales representative of the third party.
Today's route
The route is the ordered list of customers to visit on a given day.
The supervisor chooses the sales rep and the date.
They select the customers to visit (by visit frequency, area, unpaid invoices, targets behind schedule).
A visit order is suggested to minimise the distance from the depot; the supervisor can change it.
They can suggest a suggested load (suggested quantities per product for the Stock-In).
The route is sent to the phones at the next sync.
Business rules
A customer can have a visit frequency (weekly, every two weeks, monthly).
Unplanned visits (customer not on the route, new point of sale) are recorded and visible in the reports.
Planned Recurring routes generated automatically from the frequencies: planned.
Management
Supervisor approvals
Planned Dedicated approval queue planned for sprint 2. Today, the checks block the operation on the phone; the supervisor corrects it in Dolibarr.
Goal: stay in control of risky decisions without slowing down the field.
What needs approval
Item
Trigger
What the supervisor sees
New point of sale
Created in the field
Record, storefront photo, position on the map, possible duplicates
Discount above the cap
Discount > cap (10 % by default)
Customer, invoice, requested discount, customer history
Stock-Out variance
> 10 % on a product or > 25,000 FCFA in total
Detail by product, justification, storekeeper's name
Cash variance
> 25,000 FCFA
Expected cash, declared cash, justification
Payment cancellation
Sales rep request
Payment, reason
Debit note, credit note refund > 50,000 FCFA
Creation
Document, reason
Day unlock
Previous day's cash not closed
Previous day's situation
Approving a new point of sale
Check the photo, the name and the position.
Check that it is not a duplicate.
Correct the position if needed.
Approve: the prospect becomes a customer; set their credit limit and target.
Or Reject with a reason (duplicate, false information); invoices already issued remain valid.
Rules
Every approval is logged: who, when, decision, comment.
Available (tracking in the app) Planned (entry and allocation in Dolibarr)
Goal: set a sales target for each customer and each sales rep, and track actual against plan at all times.
Actors: management and supervisor (set); sales rep (tracks).
Target levels
By point of sale, per month: revenue excluding tax, and optionally volume by product or product family, number of visits, payments collected.
By sales rep: sum of the targets in their portfolio, or a target set directly.
By area and overall: consolidation.
Entry and allocation
Management sets the overall target for the month.
It is allocated by area, then by sales rep, then by point of sale:
- in proportion to history (same month of the previous year or average of the last 3 months);
- in equal shares;
- or manually.
The supervisor adjusts point of sale by point of sale.
Targets can be imported from an Excel file.
Tracking in the app
Home: the sales rep's revenue for the day and achievement rate for the month, with a progress bar.
Customer card: target for the month, actual, rate, and daily run rate needed per working day.
Colours: green if the rate is ahead of the expected pace, orange if slightly behind, red if well behind.
Calculations
Achievement rate = actual ÷ target
Expected pace = working days elapsed ÷ working days in the month
Daily run rate needed = (target − actual) ÷ working days remaining
Actual is the revenue excluding tax of validated invoices, net of credit notes.
Management
Reports: actual vs plan
Web demoPlanned (automatic reports)
Goal: give each level, every day, week and month, a clear view of what was done compared with what was planned.
Daily report
Recipients: supervisor (and sales rep for their own part). Sent: every evening at 8 pm.
By sales rep: planned / actual / unplanned visits, manual check-ins, revenue for the day against the day's target, payments by method, new points of sale.
Points of sale not visited and the reason.
Closing report: cash and stock variances, net balance.
Read their customers, products, route; create invoices, payments, prospects, movements in their van warehouse
Storekeeper
Confirm Stock-In and Stock-Out
Supervisor
Full scope of their team; approve; plan; set targets
Management
Read everything; reports
Administrator
Settings, users
When a sales rep leaves
Check that all their operations are synced and their cash is closed.
Transfer their portfolio to another sales rep.
Empty their van warehouse (Stock-Out).
Deactivate the account (do not delete it: the history stays linked to it).
Lost or stolen phone
Deactivate the account or revoke its access token in Dolibarr: the phone can no longer sync. Local data that was not synced is lost; variances are settled through the normal procedure.
App: React Native (Expo), one codebase for Android and iOS. Local SQLite database.
Server: Dolibarr, extended with a forcevente module that exposes two REST endpoints.
Transport: HTTPS, JSON, authentication with a Dolibarr API key (DOLAPIKEY header).
The two exchanges
Bootstrap (server → phone)
GET /api/index.php/forcevente/bootstrap
Returns in one go: user, settings, products and prices, warehouse stock, portfolio customers (with position, limit, unpaid invoices, targets), today's route, suggested load, any active Stock-In, storekeepers. The phone replaces its reference data with this response.
Sync (phone → server)
POST /api/index.php/forcevente/sync with the list of pending operations:
Idempotency: the server stores the uuid of each processed operation; resending it returns the same result without creating anything again.
Order: a dependent operation (invoice for a new point of sale) is sent after the one it depends on.
Temporary IDs: a point of sale created offline has a negative ID; the server returns the matching Dolibarr ID and the phone updates all its data.
No overwriting: the bootstrap is applied only when the queue is empty.
Time zone: business dates are calculated in the company's time zone (Africa/Douala).
Administration & IT
Integration with Dolibarr
Web demo (demo server) Planned (forcevente module for Dolibarr)
Object mapping
ITB Sales Force
Dolibarr
Point of sale
Third party (customer or prospect), with extra fields: type, neighbourhood, latitude, longitude, photo, credit limit
Sales rep
User, sales representative of the third parties
Product, price
Product, selling price, VAT rate
Stock-In
Stock movement main warehouse → van warehouse, "goods issue note" document
Stock-Out
Movement van warehouse → main warehouse, inventory correction for variances
Sale
Validated customer invoice
Payment
Customer payment, allocated to invoices; payment method, reference
Visit
Agenda event (visit type), with time, position, duration
Target
Dedicated module table
Credit note
Credit note invoice
Demo version
The demo server (Node.js) reproduces exactly the endpoints of the future Dolibarr module. The app does not change when moving to the real Dolibarr: only the server address changes.
Dolibarr prerequisites
Dolibarr 18 or later (the demo uses version 23).
Enabled modules: Third parties, Products, Stocks, Invoices, Banks and cash, Agenda, REST API.
PHP 8.1+, MariaDB 10.6+ or MySQL 8+.
Administration & IT
Deployment and operations
Demo environment
Web demo The deploy/ kit installs on a Linux server, with Docker:
Dolibarr 23 pre-filled with the Douala data;
MariaDB 11.4;
the demo API server;
Caddy for automatic HTTPS certificates.
git clone … itb-sales-force && cd itb-sales-force/deploy
cp .env.example .env # set domains and passwords
docker compose up -d
The demo data is reset every night (reset-demo.sh, scheduled with cron).
Production
A Dolibarr server (hosted or on premises) reachable over HTTPS.
Install the forcevente module and enable the permissions.
Configure the settings (Settings), create the van warehouses and the users.
Import the catalogue, the customers (with GPS positions) and the targets.
Distribute the app: APK for the pilot, then Play Store / App Store.
Day-to-day operations
Task
Frequency
Back up the Dolibarr database and documents
Daily, off-site copy
Check rejected operations
Daily
Server security updates
Monthly
Backup restore test
Quarterly
App update
As versions are released
Administration & IT
Security and data protection
Encryption in transit: all exchanges use HTTPS.
Authentication: Dolibarr credentials, then a user-specific API token that can be revoked.
Data isolation: the server only returns a sales rep's own portfolio; it refuses operations outside their scope.
Traceability: each operation records its author, its time, and its position where relevant; approvals are logged.
Integrity: validated documents (invoices, payments) cannot be changed; corrections go through credit notes or cancellations with a reason.
Geolocation: the position is recorded only at the time of actions (check-in, check-out, point of sale creation), not continuously.
Planned App lock with PIN code or biometrics, remote wipe.
Personal data: customer data (contacts, phone numbers) belongs to the client company and is hosted on its Dolibarr server. Compliance with Cameroon Law No. 2024/017 on personal data protection must be checked with the client company.
Administration & IT
Troubleshooting
Symptom
Likely causes
What to do
Cannot log in
Network, server address, deactivated account
Test the address in a browser; check the account in Dolibarr
Operations stuck as "pending"
No network; server down; expired HTTPS certificate
Check the server and the certificate; read the logs
Operation "rejected"
Business rule on the server (stock, duplicate reference)
Read the reason in the Sync tab; correct it in Dolibarr; tap Resend
Empty route
No route planned for that day; wrong date on the phone
Check the planning and the phone's date
Check-in always out of zone
Wrong point of sale coordinates
Correct the third party's latitude and longitude in Dolibarr
Inconsistent van stock
Stock-In done on another phone, not yet synced
Sync both phones
Amounts do not match Dolibarr
Prices changed after the bootstrap
Sync; invoices keep the price at the time of sale
Information to give support
Sales rep's login, phone model, app version (Sync tab).
Time of the problem and exact message (screenshot).
For a rejected operation: its type and reason.
Reference
Glossary
Term
Definition
Advance payment (acompte)
Amount collected above the balance due, kept as a credit for the customer
Bootstrap
Download of reference data from the server to the phone
Check-in / check-out
Start and end of a visit to a customer, time-stamped and geolocated
Credit note (avoir, note de crédit)
Document that cancels all or part of an invoice
Debit note (note de débit)
Document that charges the customer an additional amount
Goods issue note (bon de sortie)
Document generated at Stock-In, listing what leaves the warehouse
List of operations recorded on the phone and not yet sent
Point of sale (POS) (point de vente, PDV)
Customer business: shop, bar, mini-market, wholesaler…
Portfolio (portefeuille)
All the customers looked after by a sales rep
Prospect
Point of sale created in the field, not yet approved; cash sales only
Reconciliation (réconciliation)
Matching of cash and stock at the end of the day
Route (tournée)
Ordered list of customers to visit on a given day
Stock-In
Loading of the van at the start of the day
Stock-Out
Return of the remaining stock at the end of the day
Storekeeper (magasinier)
Person who physically checks stock issues and returns
Suggested load (chargement type)
Quantities suggested by the supervisor for the Stock-In
Theoretical stock (stock théorique)
What should remain: loaded − sold (± returns)
Unplanned visit (visite imprévue)
Visit to a customer who was not on the route
Van warehouse (entrepôt véhicule)
Dolibarr warehouse that represents the stock in a sales rep's van
Reference
Feature status
Updated: October 2026. Mobile app version 0.2.
Feature
Mobile app
Web demo
Dolibarr
Login, offline, sync
Available
Web demo
Planned module
Stock-In and goods issue note
Available
Web demo
Planned
Route (list, distance, order)
Available
Web demo
—
Route map
Planned
Web demo
—
Google Maps directions, Android Auto / CarPlay
Planned
Web demo
—
GPS and manual check-in, check-out
Available
Web demo
Planned
Point of sale creation, duplicates
Available
Web demo
Planned
Sale, discount, VAT, temporary number
Available
Web demo
Planned
Customer signature
Planned
Web demo
—
PDF invoice, printing
Planned
—
—
Multi-method payment, allocation
Available
Web demo
Planned
Cheque photo / mobile money screenshot
Planned
—
—
Credit, limit, unpaid invoices
Available
Web demo
Planned
Stock-Out and variances
Planned
Web demo
Planned
Guided day closing and reconciliation report
Planned
Web demo
Planned
Targets: tracking
Available
Web demo
—
Targets: entry and allocation
—
—
Planned
Daily / weekly / monthly reports
Planned
Web demo
Planned
Supervisor approvals
Planned
—
Planned
Credit and debit notes
Planned
—
Planned
Stock count at the customer's, surveys
Planned
—
Planned
French / English
Available
Web demo
Available
Reference
Frequently asked questions
Does the app work without internet?
Yes. The whole day can be done offline. Internet is needed for the first login and to send data; cash closing requires a full sync.
What happens if the phone breaks down?
Operations already synced are in Dolibarr. Those that were not are lost. This is why the app syncs after each action as soon as the network allows.
Do we need to be using Dolibarr already?
No. Dolibarr can be installed and configured as part of the project. If the company already uses Dolibarr, the solution is added to it without changing how people work.
Can another ERP be used?
The app talks to two endpoints (bootstrap and sync). A connector can be developed for another ERP, on quotation.
Which phones are supported?
Android 9 or later, iPhone on iOS 15 or later. An entry-level device is enough; a decent GPS is essential.
Can the sales rep change prices?
No. They can give a discount up to the cap; above it, the supervisor must approve.
How are MTN MoMo and Orange Money handled?
The sales rep enters the operator and the transaction reference. The reference is mandatory and unique, which prevents the same payment from being declared twice. Direct integration with the operators' APIs is possible.
Can the supervisor see the sales reps' position in real time?
No. The position is recorded only during actions (check-in, check-out, point of sale creation). This is enough to check visits and respects the sales reps' privacy.
Is the app available in English?
Yes. The app, the presentation page, the demo and this wiki are available in French and English.