OdooWiki OCA HUB

Barcode Scanner

barcode_scanner folder_open OCA/barcode-interface open_in_new
Hidden Licencia: AGPL-3

Este módulo es el framework base de la suite Barcode: un shell de aplicación de escaneo rápido y a pantalla completa para Odoo que otros módulos extienden.

No incluye lógica de negocio propia. En su lugar, expone los bloques de construcción en los que se conectan los módulos de funcionalidades, de la misma manera en que los widgets de Odoo se autorregistran:

  • una acción de cliente a pantalla completa y un router ligero dentro de la aplicación;
  • registros para pantallas, manejadores de escaneo y mosaicos del menú de la pantalla de inicio (barcode_screens, barcode_scan_handlers, barcode_menu_tiles);
  • el servicio de entrada de código de barras (hardware/keyboard wedge), retroalimentación por audio/vibración, un wrapper de ORM/API y hooks compartidos.

Instala un módulo de funcionalidades encima —como barcode_stock— para obtener operaciones de almacén reales.

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 18.0

Añade a Odoo una aplicación "Scanner" a pantalla completa que captura códigos de barras de escáneres de mano y dispositivos keyboard-wedge, muestra lo que se ha leído y proporciona a otros módulos un framework sobre el que construir pantallas de escaneo.

Este módulo es la base de una suite de escaneo de códigos de barras, no una herramienta de almacén ya hecha. Al instalarlo se añade una entrada "Scanner" en el menú de aplicaciones de Odoo que abre una aplicación de escaneo a pantalla completa, separada del back office habitual.

Lo que ven los usuarios: - Una pantalla de inicio con un saludo, el nombre y el avatar del usuario, y mosaicos para las funciones de escaneo instaladas encima (ninguna se incluye aquí). - Un pequeño aviso oscuro en la parte superior de la pantalla que muestra el código exacto que el escáner acaba de leer, de modo que una lectura errónea o un escaneo fallido sea visible en lugar de silencioso. - Comentarios opcionales de sonido, vibración y destello de pantalla para eventos de éxito, advertencia, error e información.

Cómo funciona el escaneo: la aplicación escucha códigos de barras de escáneres de hardware y terminales portátiles Android mientras está abierta, y deja de escuchar cuando se cierra, de modo que nunca interfiere con el resto de Odoo. No roba el foco a los campos en los que el usuario está escribiendo deliberadamente. Los códigos de menos de tres caracteres se ignoran. Un analizador integrado reconoce códigos EAN13 de 13 dígitos; otros módulos pueden añadir analizadores más completos.

Comportamientos automáticos: si ningún recurso instalado reconoce un código escaneado, se muestra una advertencia "Barcode not recognized". Los errores del servidor se convierten en mensajes breves y legibles en lugar de errores técnicos sin procesar.

No almacena datos de negocio propios: ni nuevas tablas de base de datos, ni informes, ni tareas programadas. Solo proporciona la pantalla, la entrada de escaneo, la navegación entre pantallas y los ayudantes compartidos en los que se conectan otros módulos de códigos de barras.

Depende de

web

Menús que añade

Scanner

Texto generado por IA (DeepSeek) al leer el código de la versión 18.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. El módulo es muy grande y solo se ha leído una parte del código. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 1 confirmada, 8 sin información de 9 versiones.

Fuentes · Odoo 18.0

Confirmado el 2026-11-03 en la rama 18.0 de OCA/barcode-interface.

terminal Instalación y uso

Documentación de OCA · Odoo 18.0

barcode_scanner es un framework y no es útil por sí solo: instala un módulo de funcionalidad como barcode_stock para obtener operaciones reales.

Para crear tu propio módulo de funcionalidad, registra tus piezas en los registros del framework — no se requiere ningún cambio en el módulo base.

Registra una pantalla:

import {barcodeScreens} from "@barcode_scanner/js/registries";

barcodeScreens.add("my_screen", {component: MyScreen});

Registra un manejador de escaneos (se prueban en orden sequence; el primero que devuelva un valor verdadero consume el escaneo):

import {barcodeScanHandlers} from "@barcode_scanner/js/registries";

barcodeScanHandlers.add("my_handler", {
    async handle(barcode, parsed, {api, navigate, notify}) {
        // return true when handled
    },
}, {sequence: 50});

Registra un mosaico de la pantalla de inicio:

import {barcodeMenuTiles} from "@barcode_scanner/js/registries";

barcodeMenuTiles.add("my_tile", {
    label: "My Screen",
    icon: "fa-cube",
    action: ({navigate}) => navigate("my_screen"),
}, {sequence: 50});

Registra un analizador de códigos de barras (se prueban en orden sequence antes que el integrado EAN13; devuelve null para dejar que el siguiente analizador lo intente):

import {barcodeParsers} from "@barcode_scanner/js/registries";

barcodeParsers.add("my_symbology", (barcode) => {
    // return {type: "...", value: "<product code>", ...} or null
}, {sequence: 20});

Registra una tarea de inicio, para los datos que tu módulo necesita antes del primer escaneo (barcode_gs1 lee su nomenclatura de esta forma). Las tareas se esperan cuando se abre la aplicación; una que falla se registra y se omite:

import {barcodeStartupTasks} from "@barcode_scanner/js/registries";

barcodeStartupTasks.add("my_config", (env) => loadMyConfig(env.services.orm));

Lee escaneos en una pantalla con el hook useBarcodeHandler. El servicio de códigos de barras cuenta los componentes que lo hacen (readers.count, reactivo), de modo que una fuente de escaneo como un botón de cámara puede ofrecerse solo mientras una pantalla lee escaneos:

import {useBarcodeHandler} from "@barcode_scanner/js/hooks/use_barcode_handler.esm";

useBarcodeHandler({onScan: (barcode, parsed) => this.onScan(barcode, parsed)});

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación, Configuración.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.