Saltar a contenido

Sigue vigente

La regla del identificador CP-NNNNNN-D con dígito verificador Mod-10 no cambia.


Identificador único de casillero

Punto crítico

El identificador del usuario es el eje central del sistema. Es el primer criterio para asociar compras, paquetes, consolidaciones y envíos.

Solo se asigna a usuarios registrados en EE.UU.

El identificador de casillero se asigna únicamente a usuarios registrados en la app que viven en Estados Unidos (ver la Regla de origen del usuario). Las personas en Cuba que reciben paquetes no tienen identificador porque no se registran; aparecen como destinatarios del usuario registrado.

Regla fija — Address Line 2

El identificador siempre va en Address Line 2 en todas las plataformas (Amazon, SHEIN, Temu, etc.). Esta regla es invariable y debe comunicarse en los tutoriales de cada plataforma.


Objetivo del identificador

El identificador debe permitir que un paquete recibido en el almacén pueda asociarse rápidamente con el usuario correcto, ya sea de forma manual, mediante búsqueda en la app, por escaneo de QR, código de barras u OCR sobre la etiqueta del paquete.


Formato oficial visible

CP-001042-8

Formato interno normalizado

CP0010428

El sistema debe aceptar búsquedas con guiones, espacios, minúsculas o mayúsculas, pero siempre debe normalizar el valor antes de buscarlo.

Entrada del usuario Normalizado
CP-001042-8 CP0010428
cp0010428 CP0010428
cp 001042 8 CP0010428
CP 001042 8 CP0010428

Estructura del identificador

CP - 001042 - 8
│      │      │
│      │      └── Dígito verificador
│      └───────── Número secuencial único del usuario
└──────────────── Prefijo del casillero
Parte Descripción Ejemplo
Prefijo Identifica el casillero (configurable) CP
Secuencial Número único del usuario (6 dígitos, ceros a la izquierda) 001042
Dígito verificador Calculado automáticamente 8

Prefijo

  • Configurable (preferiblemente 2-3 letras mayúsculas)
  • No contiene espacios ni caracteres especiales
  • No depende del nombre del usuario
  • Estable una vez definido

Número secuencial

  • Único por usuario
  • Generado automáticamente por el sistema
  • No editable manualmente por el usuario
  • Longitud fija de 6 dígitos con ceros a la izquierda
  • No reutilizable aunque el usuario sea eliminado o desactivado
  • No debe incluir información personal del usuario

Dígito verificador

  • Calculado automáticamente a partir del secuencial
  • Permite detectar errores de escritura o lectura
  • Validado antes de buscar o asociar un paquete
  • Si el dígito verificador no coincide, el sistema debe mostrar un error

Algoritmo del dígito verificador

El dígito verificador se calcula usando el algoritmo de módulo 10 sobre el número secuencial.

Pasos del cálculo:

  1. El dígito verificador se calcula únicamente sobre el número secuencial de 6 dígitos. El prefijo no participa en el cálculo.
  2. Aplicar el algoritmo de módulo 10:
  3. Recorrer cada dígito de izquierda a derecha
  4. Multiplicar los dígitos en posiciones impares por 2
  5. Si el resultado es mayor a 9, restar 9
  6. Sumar todos los resultados
  7. El dígito verificador es: (10 - (suma mod 10)) mod 10

Ejemplo de cálculo:

Base: 001042
Dígitos: 0-0-1-0-4-2

Posición 1 (impar): 0 × 2 = 0
Posición 2 (par):   0 × 1 = 0
Posición 3 (impar):  1 × 2 = 2
Posición 4 (par):    0 × 1 = 0
Posición 5 (impar):  4 × 2 = 8
Posición 6 (par):    2 × 1 = 2

Suma: 0 + 0 + 2 + 0 + 8 + 2 = 12
Dígito verificador: (10 - (12 mod 10)) mod 10 = (10 - 2) mod 10 = 8

Resultado: CP-001042-8

Ejemplo coherente

El ejemplo CP-001042-8 es el resultado oficial del cálculo con el secuencial 001042. El documento usa este ejemplo de forma consistente en todos lados.

Validación en la app de almacén

Cuando el operador escanea o escribe el identificador, la app debe validar el dígito verificador antes de buscar el usuario. Si el dígito no coincide, debe mostrar el error INVALID_CHECK_DIGIT y no permitir continuar.

No eliminar caracteres no permitidos silenciosamente

La normalización elimina guiones y espacios. Cualquier otro carácter no permitido (símbolos, letras extras, etc.) debe generar el error INVALID_FORMAT, no ser eliminado silenciosamente.


Condiciones generales

  • Único por usuario
  • Corto, fácil de leer y escribir manualmente
  • Fácil de dictar por teléfono o mensaje
  • Evita caracteres confusos
  • Siempre visible en la app del usuario
  • Copiable de forma independiente
  • Convertible en código QR o código de barras
  • Imprimible en documentos o etiquetas internas
  • Primer criterio operativo para asociar paquetes
  • No incluye datos personales (nombre, apellido, teléfono, correo, documento, dirección)
  • No cambia después de asignarse
  • No se reutiliza para otro usuario
  • Se mantiene activo aunque el usuario tenga paquetes pendientes o historial

Caracteres permitidos

Permitidos No permitidos
Letras A-Z Espacios internos
Números 0-9 Acentos
Guiones - Caracteres especiales (ñ, ., ,, /, etc.)
Emojis o caracteres invisibles

Longitud recomendada

Formato: PP-NNNNNN-D

Componente Longitud Tipo
Prefijo (PP) 2 Letras mayúsculas
Secuencial (NNNNNN) 6 Dígitos con ceros a la izquierda
Dígito verificador (D) 1 Calculado automáticamente
  • Longitud visible con guiones: 11 caracteres (2 prefijo + 1 guion + 6 secuencial + 1 guion + 1 dígito verificador)
  • Longitud normalizada sin guiones: 9 caracteres

Normalización

Antes de guardar, buscar o validar, el sistema debe normalizar el identificador:

  1. Convertir todo a mayúsculas
  2. Si existen caracteres distintos a letras, números, espacios o guiones, devolver INVALID_FORMAT
  3. Eliminar espacios y guiones
  4. Validar longitud (debe ser 9 caracteres normalizado)
  5. Validar que el prefijo sea correcto
  6. Validar que el secuencial sea numérico
  7. Validar el dígito verificador

Validación

El sistema debe validar el identificador antes de usarlo para asociar un paquete:

  • El código no debe estar vacío
  • Debe tener el prefijo correcto
  • Debe tener la longitud esperada (9 caracteres normalizado)
  • El secuencial debe ser numérico
  • El dígito verificador debe ser válido
  • El identificador debe existir en la base de datos
  • El usuario asociado debe estar activo o en estado permitido

Códigos de error

Código Mensaje
EMPTY_CODE Identificador vacío
INVALID_FORMAT Formato inválido
INVALID_PREFIX Prefijo inválido
INVALID_SEQUENTIAL Número de casillero inválido
INVALID_CHECK_DIGIT Dígito verificador incorrecto
NOT_FOUND Identificador no encontrado
USER_NOT_AVAILABLE Usuario no disponible para recibir paquetes

Uso en la dirección de compra

Campo oficial: Address Line 2 / Apt / Suite / Unit

El casillero físico está en Miami, Florida, EE.UU. La dirección completa es la misma para todos los usuarios registrados; lo que cambia entre usuarios es el identificador que va en Address Line 2.

Campo Valor
Nombre Juan Pérez (nombre del usuario registrado, no del destinatario en Cuba)
Address Line 1 Dirección del almacén
Address Line 2 ISLABOX CP-001042-8 (nombre del casillero + identificador del usuario)
City Ciudad del almacén (Miami)
State Estado del almacén (FL)
ZIP Código postal del almacén
Country EE.UU. (United States)

La dirección del casillero es en EE.UU., no en Cuba

La persona que compra (usuario registrado) está en EE.UU. y le entrega a Amazon/SHEIN/Temu una dirección en Miami. El paquete viaja luego hacia Cuba, donde lo recibe el destinatario. Por eso el Country de la dirección de compra es siempre EE.UU., nunca Cuba.

ISLABOX como texto visual

ISLABOX es el nombre del casillero y se muestra como texto adicional en Address Line 2. No forma parte del código de identificación del usuario. El código real es CP-001042-8.

Regla obligatoria

El identificador SIEMPRE va en Address Line 2 (también llamado Apt, Suite o Unit según la plataforma). No debe usarse el nombre, ni Address Line 1, ni ningún otro campo.

Si una tienda no permite usar el campo Apt / Suite / Unit, el identificador puede agregarse como respaldo al final del nombre del destinatario:

Nombre del usuario CP0010428

Extracción del identificador desde texto libre

Cuando el identificador viene mezclado con texto (por ejemplo, leído por OCR desde una etiqueta o escaneado como parte de una dirección), el sistema debe poder extraer el patrón válido.

Modo 1 — Entrada directa: El usuario u operador escribe solo CP-001042-8.

Modo 2 — Lectura desde etiqueta o dirección: El sistema busca dentro del texto un patrón válido: PP-NNNNNN-D o PPNNNNNND.

Texto leído: "ISLABOX CP-001042-8 APT 5"
Código detectado: CP-001042-8
Normalizado: CP0010428

El sistema aplica las mismas reglas de validación después de extraer el código.


Uso operativo en almacén

1. Llega el paquete al almacén
2. El empleado revisa la etiqueta
3. El empleado escanea, lee o escribe el identificador
4. La app normaliza el identificador
5. La app valida el formato
6. La app busca el usuario asociado
7. El empleado confirma la información
8. El paquete queda registrado al usuario
9. El sistema notifica al usuario

Búsqueda en la app de almacén

La app de almacén debe permitir buscar paquetes o usuarios por:

  • Identificador del casillero (criterio principal)
  • Código normalizado
  • Código visible
  • Tracking number
  • Nombre del usuario
  • Teléfono
  • Correo electrónico
  • Marketplace o tienda
  • Estado del paquete

QR y código de barras

El identificador debe poder representarse como QR o código de barras.

Formato Contenido
QR CP0010428
Código de barras CP0010428

Se usa el formato normalizado (sin guiones) para códigos automáticos.


Base de datos

El sistema debe guardar dos versiones del identificador:

locker_code_display = "CP-001042-8"    # Formato visible con guiones
locker_code_normalized = "CP0010428"   # Formato para búsqueda, QR y código de barras

Campos recomendados en la tabla de usuarios:

Campo Descripción
prefijo Configurable, ej. CP
numero_secuencial 6 dígitos, único
digito_verificador Calculado automáticamente
identificador_visible Con guiones, ej. CP-001042-8
identificador_normalizado Sin guiones, ej. CP0010428
fecha_creacion Timestamp
estado activo / suspendido / desactivado / bloqueado / cerrado

Estados del identificador

Estado Descripción
activo En uso normal
suspendido Temporalmente pausado
desactivado Inactivo
bloqueado Bloqueado por alguna razón
cerrado Cerrado por fin de relación

Un identificador desactivado no debe reasignarse a otro usuario.


Reglas de unicidad

  • No existen dos usuarios con el mismo identificador
  • No existen dos usuarios con el mismo número secuencial dentro del mismo prefijo
  • No se reutiliza un identificador eliminado
  • No se puede editar manualmente un identificador ya asignado
  • Todo identificador generado queda registrado en historial

Seguridad y privacidad

El identificador es público para efectos operativos, pero no debe revelar datos personales:

  • ❌ Nombre o apellido
  • ❌ Iniciales del usuario
  • ❌ Teléfono
  • ❌ Correo electrónico
  • ❌ Fecha de nacimiento
  • ❌ Documento de identidad
  • ❌ Dirección personal
  • ❌ País de origen
  • ❌ Información sensible

Compatibilidad con API

Si la agencia aliada ofrece API, el identificador normalizado se envía como referencia externa:

{
  "locker_code": "CP0010428"
}

Si el proceso es manual, el identificador visible se usa en pantallas, etiquetas y operaciones internas:

CP-001042-8

Resumen

Formato Valor
Visible CP-001042-8
Normalizado CP0010428

El identificador debe ser estable, único, legible, validable y usable tanto por personas como por sistemas.

Campos recomendados:

- prefijo
- número secuencial
- dígito verificador
- identificador visible
- identificador normalizado
- fecha de creación
- estado

Criterios de búsqueda

Cuando llega un paquete al almacén, el sistema busca al usuario en este orden de prioridad:

  1. Identificador del casillero (criterio principal)
  2. Tracking (criterio secundario)
  3. Nombre (criterio secundario)

Si ninguno coincide, el paquete entra a la cola de conciliación para resolución manual.


Validación

Antes de usar el identificador, el sistema debe validar:

  • El código no esté vacío
  • El prefijo sea correcto
  • La longitud sea la esperada
  • El secuencial sea numérico
  • El dígito verificador sea válido
  • El identificador exista en la base de datos
  • El usuario asociado esté activo o en estado permitido

Errores esperados

Si el identificador no cumple las condiciones, el sistema debe mostrar mensajes claros:

Identificador vacío.
Formato inválido.
Prefijo inválido.
Número de casillero inválido.
Dígito verificador incorrecto.
Identificador no encontrado.
Usuario no disponible para recibir paquetes.

QR y código de barras

El identificador debe poder representarse como QR o código de barras.

Contenido para QR y código de barras: CP0010428 (formato normalizado, sin guiones ni espacios)


Seguridad y privacidad

El identificador es público para efectos operativos, pero no debe revelar datos personales. No debe contener:

  • Nombre ni apellido
  • Teléfono ni correo
  • Documento de identidad
  • Dirección personal

Estado del identificador

Estados operativos posibles:

activo
suspendido
desactivado
bloqueado
cerrado

Un identificador desactivado no debe reasignarse a otro usuario.