Cheaf Docs
Package Building

Reglas de Lectura de Códigos de Barra – Cencosud Chile

Reglas de lectura de códigos de barra en el contexto de Cencosud Chile

Este documento describe las reglas actuales para la interpretación y búsqueda de productos a partir de códigos de barra en el contexto de Cencosud Chile. El objetivo es que cualquier persona pueda entender cómo funcionan estas reglas y qué casos especiales existen, facilitando la incorporación de nuevas reglas sin romper las ya implementadas.


1. Reglas de Formato de Código de Barra

Antes de aplicar cualquier regla específica por categoría o tienda, el código de barras puede ser transformado según las siguientes reglas generales:

  • Si el código tiene 13 dígitos:
    • Si empieza con “0”, se eliminan el primer y el último dígito (se usan los dígitos del 2 al 12).
    • Si no empieza con “0”, se elimina solo el último dígito (se usan los primeros 12 dígitos).
  • Si el código tiene cualquier otra longitud, se usa tal cual.

Estas transformaciones aseguran que el código de barras esté en el formato adecuado antes de proceder con las reglas específicas de cada categoría o tienda.


2. Regla General de Lectura

  • Una vez transformado el código de barras, el sistema identifica la categoría del producto y la tienda, y decide qué flujo de reglas aplicar según esa información.

3. Reglas Específicas por Categoría

A. Frutas y Verduras (category_id = 6)

  • Tienda que NO es Santa Isabel:

    1. Si el código empieza con ‘2’ o ‘3’ y la categoría es “verduras”, se toma solo los primeros 7 dígitos del código y se busca el producto.
    2. Si no se encuentra el producto:
      • Si el código empieza con ‘2’ y tiene al menos 12 dígitos, se usan los primeros 12 dígitos y se busca nuevamente.
      • Si el código empieza con ‘3’ y tiene al menos 4 dígitos, se usan los primeros 4 dígitos y se busca nuevamente.
      • Si ninguna de estas condiciones se cumple, se indica que el producto no fue encontrado.
  • Tienda Santa Isabel:

    1. Si el código empieza con ‘29’ y la tienda es Santa Isabel, se extraen los dígitos del tercer al sexto (quitando ceros a la izquierda) y se busca el producto con ese valor.

B. Lácteos (category_id = 3)

  • Se busca el producto con el código original.
  • Si no se encuentra:
    • Se eliminan los ceros a la izquierda y el último dígito, y se vuelve a buscar con ese valor.

C. Pastelería (category_id = 32)

  • Si el código empieza con ‘2’:
    1. Se considera que el código incluye el precio al final. Los últimos 5 dígitos corresponden al precio.
    2. Se eliminan esos 5 dígitos y se busca el producto con el resto del código.
    3. El precio se agrega manualmente a la información del producto encontrada.
  • Si no empieza con ‘2’:
    1. Se busca el producto con el código original.
    2. Si no se encuentra, se elimina el último dígito y se vuelve a buscar.

D. Otros Productos

  • Para cualquier otro producto, se busca directamente con el código recibido, sin reglas adicionales.

Reglas Específicas por Categoría

Las siguientes reglas se aplican después de las transformaciones iniciales del código de barras descritas anteriormente.

4. Consideraciones para Nuevas Reglas

  • Cada regla debe ser específica a una combinación de categoría y/o tienda para evitar conflictos.
  • Si una nueva regla requiere modificar el código de barra antes de la búsqueda, asegúrate de que no interfiera con las transformaciones ya existentes para otras categorías o tiendas.
  • Las reglas deben ser evaluadas en orden de especificidad: primero las reglas más específicas (por ejemplo, para tiendas y categorías particulares) y luego las más generales.

5. Ejemplo de Flujo

  1. Llega un código de barra y se identifica la categoría y la tienda.
  2. Se transforma el código de barra según las reglas de formato.
  3. Se aplica la regla correspondiente según la categoría y la tienda.
  4. Si no se encuentra el producto, se prueban las alternativas definidas para esa categoría.
  5. Si aún así no hay resultado, se informa que el producto no fue encontrado.

Este documento debe actualizarse cada vez que se agregue una nueva regla, especificando claramente para qué categoría y/o tienda aplica, y cómo interactúa con las reglas existentes.