Shopfloor is a barcode scanner application.
This module provides REST APIs to support scenario. It needs a frontend to consume the backend APIs and provide screens for users on barcode devices. A default front-end application is provided by shopfloor_mobile_base.
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Provides the technical foundation for barcode-scanner mobile apps in Odoo: administrators register apps, profiles, menus and scenarios, and each app exposes a REST API that a scanner front-end can use.
This is a foundation module for building barcode-scanner applications on top of Odoo. It does not add warehouse operations by itself; it gives administrators the screens and the web services that a mobile scanner front-end needs.
A new "Shopfloor" menu appears with four entries: - Shopfloor apps: register each mobile application with a short name, a technical name, an authentication type, default and available languages, and the profiles it uses. Buttons open the app itself and its API documentation in a new tab, and a "View menu items" button shows the menus linked to the app's profiles. - Menus: the buttons shown in the scanner, each linked to a scenario and optionally restricted to one profile, with drag-and-drop ordering. - Profiles: groups of menus, so different users can see different buttons. - Scenario: the functional flows the scanner can run, identified by a unique key and configured through a JSON options field.
Automatic behaviours: the technical name must be unique, the scenario key is generated from the name and must be unique, and the app's web address and API address are computed from its technical name. A warning appears when an app's settings have changed but its routes have not been synchronised yet.
Two security groups are added: Shopfloor User (read-only) and Shopfloor Manager (full editing). The module also adds the technical plumbing that serves the API, its documentation pages and the language handling for the scanner.
Depends on
Required by other modules
Menus it adds
Models and fields (30)
- ir.http · extends an existing model
- shopfloor.app · new modelurl, name, active, lang_id (Default language), category, lang_ids (Available languages), api_route, auth_type, tech_name, short_name, app_version, profile_ids (Profiles), api_docs_url, profile_required, registered_routes
- shopfloor.menu · new modelname, active, sequence, profile_id (Profile), scenario_id, scenario_key
- shopfloor.user · new model
- shopfloor.profile · new modelname, active, menu_ids (Menus), sequence
- shopfloor.scenario · new modelkey, name, options_edit
- shopfloor.form.mixin · new model
- shopfloor.data.action · new model
- shopfloor.lock.action · new model
- shopfloor.service.app · new model
- base.shopfloor.process · new model
- base.shopfloor.service · new model
- shopfloor.service.menu · new model
- shopfloor.scan.anything · new model
- shopfloor.schema.action · new model
- shopfloor.search.action · new model
- base.shopfloor.validator · new model
- shopfloor.message.action · new model
- shopfloor.process.action · new model
- shopfloor.user.validator · new model
- shopfloor.service.profile · new model
- shopfloor.savepoint.action · new model
- shopfloor.data.detail.action · new model
- shopfloor.form.validator.mixin · new model
- shopfloor.schema.detail.action · new model
- shopfloor.scan.anything.handler · new model
- shopfloor.service.app.validator · new model
- shopfloor.service.menu.validator · new model
- base.shopfloor.validator.response · new model
- shopfloor.rest.cerberus.validator · new model
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 4 confirmed, 5 with no information of 9 versions.
Sources · Odoo 16.0
Confirmed on 2026-11-03 in branch 16.0 of OCA/wms.
terminal Installation and usage
OCA documentation · Odoo 18.0Configuration
Source · Odoo 18.0Shopfloor config menu
In the main menu (or home screen) click on "Shopfloor".
Profiles
In Shopfloor / Profiles.
The profiles are used to restrict which menus are shown on the frontend application. When a user logs in the scanner application, they have to select their profile, so the correct menus are shown.
Menus
In Shopfloor / Menus.
The menus are displayed on the frontend application. The configuration may come from the menu itself and/or from the scenario linked to it.
Their profile will restrict the visibility to the profile chosen on the device. If a menu has no profile, it is shown in every profile.
Some scenario may have additional options.
Scenario
In Shopfloor / Scenario.
A Scenario represents a flow (or more basically "something to do" with the app. Each scenario must have a name and a unique key. The key must match a registered shopfloor service component.
Usage
Source · Odoo 18.0An API key is created in the Demo data (for development), using the Demo user. The key to use in the HTTP header API-KEY is: 72B044F7AC780DAC
Curl example:
curl -X POST "http://localhost:8069/shopfloor/user/menu" -H "accept: /" -H "Content-Type: application/json" -H "API-KEY: 72B044F7AC780DAC"
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.