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 backend foundation for barcode-scanner Shopfloor apps: administrators define apps, profiles, menus and scenarios in Odoo, and the module exposes REST endpoints that a mobile front-end consumes.
This module is the technical backbone for mobile barcode-scanner applications. It does not add a scanner screen itself; instead it lets administrators configure what such an app offers and serves the data to the front-end through web services.
In Odoo a new "Shopfloor" menu appears with four screens: - Shopfloor apps: each app has a name, short name, technical name, authentication type, default and available languages, and optional profiles. Buttons open the app in a new tab, open its API documentation, or show its menu items. A warning banner appears when the app's routing registry is out of sync. - Menus: each menu item is linked to a scenario and optionally to a profile, and can be archived. - Profiles: group menus so different users see different menu items. - Scenario: each scenario has a unique key and a JSON options block edited in a code editor; the key is auto-generated from the name and normalised.
Business rules: technical names and scenario keys must be unique; a default language is automatically added to the available languages; the app's profile requirement is computed from the profiles assigned.
Access is controlled by two groups, Shopfloor User (read-only) and Shopfloor Manager (full rights). The module also adds a URL converter that finds records by their technical name, and provides shared building blocks (data formatting, messages, database locks, savepoints, schemas) used by other Shopfloor modules.
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 18.0
Confirmed on 2026-11-03 in branch 18.0 of OCA/shopfloor-app.
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.