OdooWiki OCA HUB

Shopfloor Base

shopfloor_base folder_open OCA/shopfloor-app open_in_new
Inventory License: LGPL-3

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.0

Provides 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.

Menus it adds

Shopfloormenu_action_shopfloor_appmenu_action_shopfloor_menumenu_action_shopfloor_profilemenu_action_shopfloor_scenario
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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation 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.0

Shopfloor 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.

An 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.

info

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.