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

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.