Este módulo añade el análisis de códigos de barras GS1 a la suite Barcode.
Registra un analizador GS1 en la base barcode_scanner —a través del registro barcode_parsers, sin parchear la base—. Los códigos de barras GS1-128 escaneados, ya estén escritos con identificadores de aplicación entre paréntesis ((01)...(10)...) o como datos sin procesar separados por FNC1, se decodifican en campos estructurados: GTIN (AI 01), lote (10), serie (21), fechas de producción/envasado/consumo preferente/caducidad (11/13/15/16/17), cantidad (30/37), peso neto y otras medidas (310n–360n), importes a pagar (390n–393n), SSCC (00) y GLN de ubicación (410/413/414).
El significado de cada identificador de aplicación se lee de la propia nomenclatura GS1 de Odoo (barcode.nomenclature y sus reglas, tal como las proporciona el módulo estándar Barcode - GS1 Nomenclature), de modo que una regla añadida o adaptada en Ajustes también se aplica al escáner. Los identificadores que la nomenclatura no define recurren a los integrados en este módulo, de forma que un AI desconocido en medio de un código de barras nunca interrumpe el resto del escaneo.
Los identificadores numéricos —GTIN, SSCC, GLN— solo se aceptan cuando su dígito de control coincide, de modo que una lectura errónea se notifica en lugar de resolverse silenciosamente al producto equivocado.
Cada pantalla recibe entonces los datos analizados junto con el escaneo sin procesar, de forma que un único escaneo GS1 puede identificar el producto y rellenar lote, caducidad y cantidad a la vez. Los códigos que no son GS1 pasan al analizador EAN13 de la base, por lo que el módulo es seguro de instalar junto con el resto de la suite.
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.0Permite que la aplicación Barcode entienda los códigos de barras GS1 (GS1-128, DataMatrix, QR, DataBar) y los convierta en producto, lote, número de serie, fechas, cantidades, pesos, precios y ubicaciones, usando las reglas GS1 configuradas en Odoo Settings.
Este módulo conecta un lector GS1 con la aplicación de escaneo de códigos de barras. Cuando un código escaneado se reconoce como datos GS1, se decodifica en piezas de información separadas en lugar de tratarse como un código de producto simple.
Qué puede producir un escaneo: - el código de producto (GTIN), comparado con los códigos de barras de producto en sus formas habituales EAN13/UPC/EAN8 - números de lote/serie - fechas de producción, envasado, consumo preferente y caducidad (convertidas a fechas normales) - recuentos de piezas y cantidades variables - pesos y otras medidas, con su unidad - importes a pagar, con una moneda cuando el código de barras la incluye - identificadores de paquete SSCC, tipo de paquete e identificadores de ubicación (ship-to, deliver-to, ubicación física)
Reglas de negocio aplicadas automáticamente: - los identificadores numéricos solo se aceptan cuando su dígito de control es correcto - las fechas se validan y un día 00 se lee como el último día del mes - el punto decimal de una medida proviene del último dígito de su identificador - se prefiere el peso neto de la mercancía al peso bruto del paquete - si falta la fecha de caducidad, se usa en su lugar una fecha de consumo preferente - los problemas (identificador desconocido, valor incorrecto, datos sobrantes ilegibles, código de producto ausente) se notifican como errores en el resultado del escaneo
Las reglas provienen de la nomenclatura de códigos de barras GS1 configurada en Odoo, por lo que el escáner respeta una regla añadida o modificada en Ajustes; los identificadores integrados cubren todo lo que la nomenclatura no define. No hay menús ni pantallas nuevas: el módulo funciona detrás de las pantallas de escaneo de códigos de barras existentes.
Depende de
Lo necesitan otros módulos
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. Ver el código en GitHub
Disponibilidad por versión
Revisado: 2026-11-03Estado 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.0Configuración
Fuente · Odoo 18.0No se necesita configuración: una vez instalado, los códigos de barras GS1 se analizan allí donde la aplicación lee un escaneo. Se pueden ajustar dos cosas.
Identificadores de aplicación
Los identificadores de aplicación se leen de un GS1 barcode.nomenclature: el establecido en la compañía cuando es una nomenclatura GS1; de lo contrario, la primera nomenclatura GS1 encontrada (la Default GS1 Nomenclature que Odoo incluye). Sus reglas GS1-128 se obtienen una vez, cuando se abre la aplicación de código de barras.
Para enseñar al escáner un nuevo identificador de aplicación, añade una regla en Inventario → Configuración → Nomenclaturas de códigos de barras — sin cambios de código. Una regla cuyo Type sea uno de los que la aplicación entiende (product, lot, quantity, weighted product, priced product, package, package type, expiration date, best before date, pack date, location, destination location) se asigna al campo correspondiente del escaneo analizado (véase Uso); el valor de cualquier otra regla sigue estando disponible en ais.
Los identificadores que la nomenclatura no define siguen funcionando mediante los integrados en el módulo, y si la nomenclatura no se puede leer en absoluto, el módulo recurre a ellos por completo.
Escáneres que no pueden enviar FNC1
GS1 termina un valor de longitud variable con FNC1 a menos que sea el último elemento del código de barras, y un escáner de cuña de teclado a menudo no envía nada en su lugar. Odoo tiene un campo precisamente para eso — FNC1 Separator en la nomenclatura —, así que configura el escáner para que envíe uno de esos caracteres (# de fábrica) y el escaneo se leerá tal como está impreso.
Instala barcode_gs1 junto con barcode_scanner (y un módulo de funcionalidad como barcode_stock). Una vez instalado, los códigos de barras GS1 se analizan automáticamente allí donde la aplicación lee un escaneo.
Un código de barras GS1 escaneado produce un objeto analizado como este:
{ type: "gs1", value: "", // GTIN (AI 01), en la forma en que los productos almacenan gtin: "", // el GTIN exactamente tal como se escaneó (14 dígitos) productCodes: [...], // todas las formas en que el GTIN puede estar almacenado lot: "", // AI 10 (recurre al serial, AI 21) serial: "", // AI 21 expiry: "YYYY-MM-DD", // AI 17, o 15/16 cuando no hay 17 useDate: "YYYY-MM-DD", // AI 15 / 16 (consumir preferentemente antes, vender antes) packDate: "YYYY-MM-DD", // AI 13 productionDate: "...", // AI 11 qty: , // AI 30 / 37; null cuando la etiqueta no indica cantidad count: , // AI 30 / 37 (piezas), conservado junto al peso weight: , // AI 31xx–36xx, la medida de la mercancía weightUom: {id, name}, // la unidad en que está esa medida, según la regla measures: [{ai, value, uom}, ...], // todas las medidas, incluido el peso bruto price: , // AI 390n–393n (importe a pagar) currency: "", // el código numérico que lleva AI 391n / 393n sscc: "", // AI 00 (unidad logística) location: "", // AI 414 locationDest: "", // AI 410 / 413 ais: {"01": "...", "10": "...", ...}, errors: [...], // lo que no se pudo leer, p. ej. un dígito de control incorrecto }
Se admiten tanto los códigos de barras entre paréntesis — (01)09501101020917(10)LOT123(17)261231 — como los escaneos sin procesar separados por FNC1.
GS1 siempre lleva el GTIN rellenado con ceros hasta 14 dígitos, mientras que un producto almacena el código corto impreso en el artículo. Por lo tanto, value contiene la forma sin relleno que almacena Odoo (13 dígitos, como produce sanitize_ean), que es con la que las pantallas comparan el producto; productCodes enumera las otras longitudes con las que un código de barras puede haberse almacenado, empezando por la forma más antigua.
Valores de longitud variable
GS1 termina un valor de longitud variable (un lote, un serial…) con FNC1, excepto cuando es el último elemento del código de barras, donde no se necesita ninguno. El analizador lo lee así: hasta el siguiente separador, o hasta el final del código de barras (véase Configuración para escáneres que no pueden enviar FNC1).
Solo cuando esa lectura es imposible —un valor más largo de lo que permite su regla— se ha eliminado claramente un separador. El valor termina entonces en el siguiente elemento que se lee limpiamente: un identificador numérico específico (nunca uno alfanumérico, ni un rango comodín) con un valor, una fecha real o un dígito de control correcto. Cualquier cosa por debajo de eso es ambigua —21 5830192 es el serial 5830192, o el serial 58 seguido de una cantidad de 192— y se lee como dice GS1, como un único valor.
Las lecturas erróneas se rechazan
Un GTIN, SSCC o GLN solo se acepta cuando su dígito de control (GS1 módulo 10) coincide. Un identificador mal leído se deja vacío y se informa en errors en lugar de resolverse al producto o palé equivocado.
En la aplicación de almacén
Qué hace la aplicación de almacén con él (con barcode_stock instalado):
- la cantidad recogida es el número de piezas que indica la etiqueta (AI 30/37). Una etiqueta sin él recoge una sola unidad, o la cantidad del paquete cuando su GTIN es un código de barras de embalaje. Una medida como un peso neto se decodifica pero no se toma como cantidad: eso depende de la unidad en la que se almacena el producto;
- el lote o serial se busca para el producto escaneado y se preselecciona en el asistente de movimiento; en una recepción, un lote desconocido abre el flujo de creación de lote con el nombre y, cuando
product_expiryestá instalado, la fecha de caducidad prerrellenada; - en una entrega o un traslado interno, un lote que no está disponible se informa en lugar de escoger otro silenciosamente.
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.
Las instrucciones de instalación, el paquete de distribución, las dependencias y los pasos de configuración no se muestran porque todavía no se han verificado en la documentación del módulo para ninguna versión.
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.