Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Distribution
  3. Field Sales App v 17.0
  4. Sales Conditions FAQ

Field Sales App

by Arure Technologies https://www.arure.tech
Odoo

$ 1048.00

v 17.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 17.0 18.0 19.0
You bought this module and need support? Click here!
Versions 17.0 18.0 19.0
  • Description
  • Manifest
  • License
Read this before you buy
This is the phone half of a distributor management system, not a standalone app. It requires Distribution Management ($699, sold separately), which runs the office half — routes, schedules, invoicing, collections and the purchase planner. Total for the pair: $699 + $349 = $1,048 per database. It also needs Odoo 19 on an HTTPS address: on a plain-HTTP Odoo the app still opens, but there is no offline mode, which is most of the reason to buy it.
For Odoo 19 · Order booking & secondary sales · Add-on for Distribution Management

Field Sales App

The whole day on a phone: today's round of shops, a check-in at each one, the order booked at the counter, the cash taken, the day counted and handed in. It works with no signal at all — everything is held on the phone and lands in Odoo when coverage returns. It installs as a web app, so there is no app store, no APK and no separate hosting to run.

$349
Per database
Offline
No signal needed
90 days
Refund window
264
Tests passing
support@arure.tech WhatsApp +1 858 463 4405
  • Overview
  • What's New

What you get

Secondary sales recorded where they happen, by the person who made them, on the phone already in their pocket.

The round, in their pocket
Today's beat, the shops in call order, what each one still owes, and how many of them are done. The salesman opens the app and the day is already there.
Order booking at the counter
Search the catalogue, build the cart, watch the running total. The phone quotes a figure before tax; Odoo prices the order for real when it lands.
Cash taken against real bills
Cash and cheques are recorded against the shop's open invoices and reach the office as a draft sheet, for a teller to check and post at the desk.
Works with no signal
Orders, payments and check-ins are held on the phone and sent when coverage returns. One order stays one order, however many times the phone has to try.

Who this is for

FMCG and food distributors
You run vans and beats, and you want the day's secondary sales entered once, at the shop, instead of on a paper sheet that somebody copies into Odoo at night.
Pharma distributors
Your salesmen call on the same pharmacies every week, collect against open bills, and the office needs the day reconciled before the cash goes into the safe.
Sales managers and supervisors
You want coverage, strike rate and salesman tracking to come out of the visits themselves, with the exceptions surfaced rather than argued about after the fact.

What the salesman does all day

Six screens, in the order a field sales day actually runs. Each one works the same whether the phone has coverage or not.

The day is on the phone before he leaves the depot
Beat plan and route
  • Today's route with every shop in call order, pulled once over the depot's wifi.
  • The balance each shop owes, refreshed per shop at check-in rather than continuously, so a metered connection is not spent on data that has not moved.
  • A running count of shops visited against shops planned.
  • Off-route shops allowed or refused, set per salesperson.
An order booked at the counter is an order in Odoo
Order booking
  • Odoo resolves the customer's pricelist and the taxes, every time. The phone only quotes.
  • Where the server's price differs from what was quoted, the difference is reported back rather than left to surface on the invoice.
  • A discount ceiling per salesperson; typing your own price is switched off until you switch it on.
  • An order booked after the supervisor closed the route is accepted as a draft flagged for review, not refused. That happens every afternoon, and refusing it loses real revenue.
Money in hand is always recordable
Collections
  • Cash and cheques allocated against the shop's open invoices.
  • More than the invoice currently shows is recorded and flagged, not refused — the phone's figure is hours old and the shop may have paid by bank in between.
  • A daily cash ceiling per salesperson, and the cash and cheque journals named explicitly rather than guessed.
  • Everything arrives as a draft sheet. Nothing is posted from a phone.
A visit is a record, not a message in a group chat
Check-in and visits
  • One check-in per shop per day, and a phone that retries lands on the same visit rather than opening a second one.
  • Check-in can be required before an order is allowed, per salesperson.
  • A reason recorded when a call produces no order, so a light week can be read rather than guessed at.
  • Location captured at check-in, with a check-in far from the shop flagged for the supervisor instead of blocked.
The day is counted and handed in
Day close
  • The salesman declares what is in the bag; the difference against what the app recorded is the number the cashier reconciles against, with the salesman standing there.
  • Coverage and strike rate for the day, computed from the visits rather than typed in.
  • A hand-in state the office moves to reconciled, so a day can be signed off once.
  • A closed day stays closed: an order cannot be slipped into a day somebody has already settled.
The queue is visible, and it tells the truth
Offline queue
  • An amber count of what has not been sent, on every screen, all day.
  • Each item shows whether it is still on the phone, confirmed by the office, or refused with the reason.
  • Retries space themselves out, so a phone in a dead zone still tries a few times an hour without flattening a cheap battery.
  • Nothing is discarded on the phone's own initiative. Work the office refused stays on screen until a person deals with it.

What it will not do, and why

Four things a buyer might expect that this app deliberately refuses. Each refusal exists to stop a specific way field software goes wrong, and each one is worth knowing before you buy rather than after.

The phone never posts a payment
Collections arrive as a draft sheet that a teller checks and posts at the desk. A mis-tap on a phone in a crowded market should not become a posted entry in the wrong journal that only an accountant can unpick. The salesman records the money; the office decides where it lands.
The phone never sets the price
The cart shows an estimate, labelled before tax, so the salesman can quote across the counter with no signal. Odoo resolves the pricelist and the taxes when the order lands. Pricing exists in one place, which is the only way the number on the invoice and the number the shopkeeper agreed to stay the same.
It does not follow anyone around by default
Location is captured at each check-in. The continuous trail between shops is switched off out of the box, because continuous tracking of staff is legally regulated in many countries and should be a decision you take deliberately, not a default you inherit. A refused or missing location is recorded and reported, and does not block the visit unless you ask it to.
It does not claim to detect a faked location
No browser can reliably tell a real position from a mock-location app, and any vendor who says otherwise is selling you a feeling. The controls that do work sit on the server: a check-in far from the shop is flagged, an off-route shop is flagged, a phone whose clock is hours out is flagged, and a supervisor sees all of them in one place.

See it running

Real screens from the app on a phone, in the order the day runs. Click any image to view it full size.

The day starts

Today's round: six shops in call order with what each one owes
Today's beat: six shops in call order, what each one owes, and a count of how many are done

At the counter

Booking an order: cart with a running total labelled Before tax
The cart with a running total, labelled before tax — the app says plainly that the office prices the order

When the signal goes

Offline: two items not sent, an order and a payment held on the phone
Taken with the network genuinely cut: two items not sent, an order and a payment held on the phone, the check-in already confirmed

How it was verified

127
Server tests passing
Covering what each salesperson is allowed to reach, what the app refuses, and what happens when the same request arrives twice.
137
Client tests passing
Covering the queue on the phone: what it keeps, what it retries, what it refuses to throw away, and what it shows the salesman while it waits.
1 order
Offline round trip, walked by hand
Network cut, an order booked and cash taken, then reconnected. Exactly one order arrived in Odoo, with no duplicate and nothing left behind on the phone.

Before you buy

Five conditions worth checking now, because each one is easier to answer before the purchase than after it.

Distribution Management first
$349 buys the phone half. The office half — routes, schedules, invoicing, collections, the purchase planner — is Distribution Management at $699, sold separately. Install it first.
Your Odoo needs an HTTPS address
Browsers only run the offline machinery on secure addresses. On a plain-HTTP Odoo the app opens and works while there is signal, but there is no offline mode at all. If your Odoo is not behind HTTPS yet, sort that first.
It books orders; it does not carry stock
The salesman takes the order and the office dispatches it. There is no van stock, no load-out or unload, no returns against van inventory, and no shelf survey or merchandising photos. If you need a salesman selling from stock he is carrying, this is not that product yet.
Self-hosted or Odoo.sh
Odoo 19. Custom modules cannot be installed on Odoo Online, so this runs on Odoo.sh or on your own server, Community or Enterprise.
One sign-in per salesman
Each salesperson signs in with their own account, which can be a portal account or a normal internal user. How that counts against your Odoo subscription is a question for Odoo or your Odoo partner, and we do not make a claim on their behalf.
================ FAQ ================ -->

Frequently asked

Will this work on Odoo Online (SaaS)?

No. Odoo Online does not allow third-party modules to be installed, and this app is a module. It runs on Odoo.sh and on self-hosted Odoo 19, Community or Enterprise. The same restriction applies to Distribution Management, which this app requires.

Does my Odoo have to be on HTTPS?

Yes, for the offline half. Every browser restricts the machinery that makes a web app work without a connection — the service worker — to secure addresses, and that is a rule of the browser, not a choice we made. On a plain-HTTP Odoo the app still opens, the salesman can still work, and everything still reaches the office, but only while the phone has signal. Since working without signal is most of the reason to buy this, put your Odoo behind HTTPS before you roll it out. A standard certificate on your domain is enough; no extra hosting is involved.

Do my salesmen need paid Odoo user accounts?

Technically, each salesman signs in with their own account, and that account can be a portal account or a normal internal user — the app works the same either way, and authorises the salesman on their own field profile rather than on the account type. Commercially, whether a portal account is an acceptable way to give operational access under your Odoo subscription is Odoo's call, not ours, and their position on it has moved before. Ask Odoo or your Odoo partner and get the answer in writing. We will not tell you that you never have to pay for a seat.

What happens if a salesman has no signal all day?

He works the whole round and the phone holds every order, payment and check-in until coverage returns. The screen shows a count of what has not been sent, so he can see the state of his day at any moment rather than hoping. When the signal comes back the queue goes out in order, and each item is stamped so that a retry cannot turn one order into two — which is the failure mode that matters on the edge of coverage, where a request can succeed at the office and still look failed on the phone. If something cannot be sent after many attempts it stops trying on its own to spare the battery, stays on screen, and can be sent by hand or picked up by support. Nothing is ever deleted to make the queue look tidy.

Does the phone post anything into my accounts?

No. Money collected in the field arrives as a draft collection sheet against the shop's open invoices, and a teller posts it at the desk. Orders arrive as sales orders in your normal flow, priced by Odoo. Nothing the salesman taps creates a posted journal entry, and nothing reconciles itself. That is a deliberate limit: a phone in a market is the wrong place to decide which journal a payment belongs in, and the wrong journal is an expensive thing to unpick weeks later.

What does it do with GPS, and what are the privacy implications?

A location is requested at each check-in, so a visit carries where it was recorded. The continuous trail between shops is a separate setting and it is off by default, because continuously tracking staff is regulated in many countries and that decision belongs to you and your staff agreement, not to a default in a module. A check-in with no location, or a location the salesman declined to give, is recorded as such and reported rather than silently dropped, and by default it does not stop him working — an app that strands a salesman at a counter is an app people find ways around. One honest limitation: no browser can tell a genuine position from a mock-location app, so in the browser treat location as evidence rather than proof. The optional Android package can read that flag, and a reading it identifies as faked is marked and raised for a supervisor — but it never blocks the check-in, and a reading nobody could check is shown as exactly that rather than as verified. The checks that actually hold are on the server: a check-in far from the shop, an off-route shop, or a phone with a badly wrong clock are each flagged for a supervisor to look at.

Does it work with multi-company?

Yes. Every record the app creates — the salesperson profile, the visits, the day closes, the exceptions — belongs to a company, and standard Odoo company rules apply to all of them. A salesperson sees their own round and nothing else; a supervisor sees their companies. Cash and cheque journals are named on each salesperson's profile as a note for whoever posts the collection sheet at the desk — the phone never posts a payment, so the app itself does not act on them.

How do updates reach the phones?

You update the module in Odoo, and the phones pick the new version up on their own. There is no app store review, no APK to distribute, and nothing for a salesman to install a second time. An update never applies itself in the middle of a round: the app waits for a safe moment, because swapping the running app out from under someone halfway through an order is not acceptable regardless of how new the code is. Bug fixes and security patches are committed for 12 months after Odoo 21 ships.

What happens if I uninstall it?

The field-specific records go with the module: the salesperson profiles, the visits, the day closes and the exception list. Everything the field work produced in your ordinary books stays exactly where it is — the sales orders, the invoices, the collection sheets and any payments your teller posted are normal Odoo records and are untouched. The app link stops answering, so a phone that still has it on the home screen simply cannot sign in. Uninstall in a test copy first if you want to see it for yourself; that is what SANDBOX_SMOKE_TEST.md in the package is for.

Why is this $349 and not free?

Because a free module comes with no one to call, and this one holds a salesman's whole day in his pocket while the signal is gone. $349 is one price per database, not per salesman and not per month, and it buys a supported product with a 1-business-day response and a 90-day refund window. Field sales software is normally sold per user per month; ten salesmen on that model costs more in a quarter than this costs once. If it turns out not to fit your operation, ask for the money back inside 90 days and you have lost nothing but the time it took to try.

Is it a website or an app I install?

Both. The app opens in the phone’s browser and installs to the home screen with no store account and no download, which is how most people run it, and it updates itself whenever you update the module. There is also an optional Android package, free, on request from support@arure.tech. It opens the same screens from your own Odoo and changes two things: the day’s unsent work is held in the app’s own storage, which Android does not clear the way a browser can clear a website’s, and each location reading can say whether it came from a fake-GPS app. It does not send anything while it is closed, and there is no iPhone version. Everything works without it — it is worth having if your salesmen use cheap phones that run short of storage, and worth skipping otherwise.

Try it on one route before you roll it out to twenty

Put one salesman on the app for a week and compare his day against the paper. You have up to 90 days to claim a full refund. Ask us anything through either channel below — we reply within 1 business day.

Email
support@arure.tech
Setup questions, rollout questions, refund requests.
WhatsApp
+1 858 463 4405
Quick questions, same-business-day reply.

The package includes README.md, TECHNICAL_GUIDE.md, SANDBOX_SMOKE_TEST.md, SUPPORT.md, REFUND_POLICY.md and CHANGELOG.md.

More from Arure Technologies

$699 · Required
Distribution Management
The office half: routes, schedules, invoicing, collections, purchase planner.
$299 · Pharma add-on
Pharma Compliance
Drug licence validation and batch-level Trade Price, Dealer Price and MRP.
$39 · Inventory
Inventory Aging Reports
Aging buckets, FSN and ABC classification, lot and serial breakdown.
$5 · Road shipments
Builty on Deliveries
Builty or LR number, date, vehicle and transporter on every delivery.

What's New

Release notes for every published version. The full CHANGELOG.md is included inside the module package.

v19.0.1.1.02026-07-30Latest

Spoofed locations are now visible to the supervisor

Added
  • A check-in records whether its location came from a mock-location app. Android reports this per reading; a browser cannot, so the field has three states — checked and genuine, checked and mocked, or no way to tell — and never shows an unchecked reading as verified.
  • A mocked reading raises an exception for the supervisor and is shown on the visit. It never blocks the check-in: a salesman standing at a counter still records the call.
  • A shop’s stored coordinates are no longer set from a mocked fix. That point is what every later distance check measures against, so a manufactured one would have been trusted for ever.
Changed
  • Detection needs the optional Android package. In a browser every reading reads as “no way to tell”, which is the honest answer rather than a reassuring one.
v19.0.1.0.12026-07-29

Corrections found by running a full round

Fixed
  • An order whose check-in was delayed by a busy server could come back permanently refused instead of waiting its turn. It now waits.
  • “Try again” on a refused item now actually retries. It had appeared to work and changed nothing — including in the case it exists for, a credit hold a supervisor has since cleared.
  • An expired session now tells the salesman. The queue was always safe; he was simply never told why the day had stopped moving.
  • Coverage and strike rate now divide by the round that was planned. They had divided by the shops actually reached, so coverage read near 100% for a man who worked six shops out of forty.
  • A route with no ordered stops no longer shows an empty app.
  • Shop coordinates have a screen, and fill themselves in from the first good reading taken at the counter.
  • The location trail is deleted after 30 days by a scheduled job.
  • A catalogue larger than 2000 products now says it was truncated instead of quietly handing over a short list.
v19.0.1.0.0 2026-07-29

Initial Odoo 19 release

What's in the box
  • The day's round on the phone: the beat, the shops in call order, and what each one owes.
  • Check in at the shop, book the order, take cash or a cheque against open bills, close and hand in the day.
  • Full offline operation. Work is held on the phone and sent when coverage returns, with one order staying one order across any number of retries.
  • Installs as a web app from your own Odoo — the salesman opens a link once and adds it to the home screen.
  • Per-salesperson controls: discount ceiling, daily cash limit, price override, off-route shops, and whether a check-in is required before an order.
  • Supervisor view of exceptions: checked in away from the shop, shop not on the route, discount too large, credit blocked, phone clock wrong.
  • Day close with declared cash against collected cash, plus coverage and strike rate for the day.
Quality and safety
  • 127 server tests and 137 client tests passing.
  • The offline round trip walked end to end by hand: network cut, an order booked and cash taken, then reconnected — exactly one order arrived, with no duplicate.
  • Collections arrive as draft sheets. The app posts nothing into your accounts.
  • Odoo prices every order. The phone quotes an estimate before tax and reports any difference.
  • The continuous location trail is off by default; check-in locations are recorded regardless.

License

Odoo Proprietary License (OPL-1). Per-database license. Source code included; not redistributable.

Trademarks

Odoo is a registered trademark of Odoo S.A. This module is an independent extension developed by Arure Technologies and is not affiliated with, endorsed by, or sponsored by Odoo S.A.

Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Inventory (stock)
• Invoicing (account)
• Purchase (purchase)
• Sales (sale_management)
Community Apps Dependencies Show
Distribution Management
Lines of code 11146
Technical Name distribution_field_app
LicenseOPL-1
Websitehttps://www.arure.tech
Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with