Crear y Editar Artículos

Manual completo del módulo IN-002: catálogo, formulario, precios, inventario e imágenes

9.2 IN-002 Permiso 411 v3.0 Actualizado 2026-05-13 Nivel operativo 10 min de lectura AY-010
Menú Ayuda

Enviarle este manual a un usuario

El enlace abre solo este manual, sin el menú del sistema. El usuario no necesita clave ni entrar a FactuPOS: se ve en cualquier navegador y en el celular.

El WhatsApp sale del número de Soporte Real y el correo de info@soportereal.com. Con Compartir desde este teléfono sale de su propio WhatsApp y elige el contacto de su lista, sin escribir el número.

Novedades v3.0 — Mayo 2026

Refactor mayor del editor de artículos

  • Ajuste rápido de stock desde el listado: cuando filtrás una bodega en la búsqueda, la columna Stock de cada artículo se vuelve editable con un control [ − ] cantidad [ + ]. El botón (rojo) resta y el + (verde) suma esa cantidad al stock actual; si en cambio escribís el total y presionás Enter, fija esa cantidad (ajusta por la diferencia) y salta a la siguiente fila. Cada cambio queda registrado en el kardex como ajuste (AJU) en la bodega filtrada. Requiere el permiso "Suma o resta existencia a una bodega" (405).
  • Botón "Buscar" resaltado: el botón de búsqueda del panel de filtros ahora tiene un fondo amarillo suave para ubicarlo más rápido.
  • Lista de precios única: el panel ArticuloPrecios reemplaza la grilla legacy P1..P10. Toda la administración de precios va por los modales Editar Precio (MAP-001) y Agregar Precio (MAP-002).
  • Modal Agregar Precio (MAP-002): permite definir N° de precio, alcance (este artículo o TODOS los activos), moneda, modo Auto/Manual, margen sobre Costo o Venta, % margen, redondeo y descuentos. Incluye barra de progreso para operaciones masivas.
  • Modal Editar Precio (MAP-001) renovado: apariencia moderna con gradiente azul en la cabecera, esquinas redondeadas, animación de entrada y secciones tipo card. La sección Descuentos y Utilidad Mínima se reorganizó en mini-cards con icono semántico (🏷 Desc. Fijo, ↗ Desc. Máximo, 📈 Util. Mínima), texto de ayuda corto bajo cada campo y sufijo % visual dentro del input.
  • Wizard "Nuevo Rápido" (W-001): botón verde en la barra de título que abre un asistente guiado de 4 pasos (Nombre → Categoría → Tributación → Precios+Imagen). La IA sugiere Categoría, SubCategoría, Naturaleza (Producto/Servicio) y CABYS desde el catálogo oficial de Hacienda. Pre-selecciona la tarifa IVA más usada y la actividad económica si solo hay una. En el paso final el usuario digita el precio NETO (con IVA) por cada nivel existente, y elige una imagen del producto desde sugerencias web.
  • Eliminación de niveles de precio con selector de alcance: el botón Eliminar del modal MAP-001 ahora pregunta primero el alcance — "Solo este artículo" (default, sin captcha) o "Todos los artículos de la empresa" (captcha matemático obligatorio). Antes forzaba siempre alcance global. Si no hay artículo cargado, se fuerza el modo "Todos".
  • Banner de niveles redundantes: en el card "Costos y Precios", cuando dos o más niveles tienen exactamente el mismo Precio + Moneda, aparece un banner amarillo con la leyenda "P4, P5, P6 son idénticos a P3 (CRC 500.00)" y un botón Eliminar redundantes que los borra solo en este artículo. Útil para limpiar catálogos legacy donde se repetían valores por defecto en los 10 niveles.
  • Búsqueda de imágenes mejorada: el modal "Buscar imágenes" ahora usa DuckDuckGo Images con SafeSearch estricto, limpia automáticamente la descripción (quita códigos internos, símbolos placeholder, letras huérfanas) y enriquece la búsqueda con la Categoría y la Marca del artículo como hints contextuales. Lista negra defensiva de dominios. Resultados mucho más relevantes que antes (ej. "Fanta 350 ml" devuelve fotos reales de la gaseosa, no resultados aleatorios).
  • Margen sobre Costo o Venta automático: el catálogo de artículos calcula y muestra el % de margen según el campo MargenSobre de cada nivel de precio. Indicador C (Costo / markup) o V (Venta / margen real) al lado del %.
  • Configuración de campos visibles ampliada: Comisión % y Unidad de Medida también se pueden ocultar desde el botón ⚙ Config.
  • Aplicar a TODOS los artículos: al agregar un nivel de precio se aplica automáticamente a TODOS los artículos activos (los niveles son globales). Sincronización automática a empresas externas en una sola operación.
  • Origen del costo default = Promedio: al crear un artículo y aplicar una compra, el sistema usa el costo promedio sin necesidad de configurar manualmente.
  • Stock por Bodega + Ajuste unificados: una sola card con botones + / por fila para sumar/restar stock con la cantidad y el motivo que se escoge (o escribe) debajo. Lista TODAS las bodegas aunque el artículo no tenga stock todavía.
  • Botón Config en la barra de título: permite mostrar/ocultar 17 campos opcionales (Marca, Clase, Forma Farmacéutica, Cuenta Inventario, Partida Arancelaria, etc.) y el panel de Imágenes — la configuración es por empresa.
  • Banda de auditoría compacta (Ventas, Creado, Modificado por, fechas) movida al pie en la barra de paginación, centrada.
  • Categoría / Subcategoría reubicadas debajo del Nombre del artículo.
  • Look modernizado: esquinas redondeadas, focus halos azules, hover sutil, botones tipo pill, badges Auto verde / Manual ámbar.
  • Performance: operaciones masivas (12k+ artículos) ahora corren en segundos vía bulk INSERT y MERGE optimizados.
  • Clonar conserva los precios: al clonar un artículo —o al cargar uno, cambiar el código por uno nuevo y Guardar— el artículo nuevo se crea con la misma lista de precios completa (margen, moneda, descuentos y redondeo de cada nivel) y los demás datos del original, sin tener que volver a cargarlos. Disponible en escritorio y móvil.

Vista general

Alcance
Catálogo completo
Productos, servicios y recetas
Precios
Multi-nivel dinámico
Con margen automático y multi-moneda
Stock
Multi-bodega
Ajuste in-situ
Cumplimiento
Hacienda CR
CABYS + Actividad

El módulo Crear y Editar Artículos (IN-002) es la herramienta principal para administrar el catálogo de productos y servicios de la empresa. Desde aquí puede:

  • Crear nuevos artículos con código automático o manual.
  • Editar todos los datos de un artículo existente.
  • Gestionar listas de precios multi-nivel y multi-moneda (cantidad de niveles definida por la empresa) con cálculo automático de margen y redondeo.
  • Administrar múltiples imágenes por artículo (subir, pegar, reordenar, eliminar).
  • Consultar y ajustar el stock por bodega.
  • Buscar y filtrar artículos con más de 15 criterios combinables.
  • Exportar resultados a Excel o PDF.

Flujo de trabajo recomendado

1
Datos básicos
Código, nombre, categoría, IVA
2
Hacienda
CABYS + Actividad económica
3
Costos y precios
Costo + niveles de precio con margen
4
Inventario
Stock inicial por bodega
5
Imágenes
Subir / pegar / buscar web
6
Guardar
Ctrl+S o botón Guardar

Estructura de pantalla

La pantalla se divide en dos áreas principales:

  • Formulario (arriba) — Editor con 3 columnas: Datos + Costos/Precios, Otros Datos, e Imágenes + Inventario. En móvil se apilan verticalmente con acordeones colapsables.
  • Buscador (abajo) — Tabla con filtros para localizar artículos. Al hacer clic en un artículo se carga en el formulario para editarlo.
Layout editor — 3 columnas
BARRA TÍTULO — Nuevo · Clonar · Guardar · Kardex · Imprimir · Excel · Salir
Card: Datos Básicos
Card: Costos y Precios
Card: Imágenes
Card: Otros Datos
Card: Stock por Bodega
Card: Ajuste Stock
BUSCADOR — Filtros + tabla paginada con doble clic → cargar
Modo móvil En pantallas pequeñas, cada sección del formulario se convierte en un acordeón que puede expandir o colapsar tocando su encabezado. Al editar un artículo desde el celular también puede:
  • Eliminar el artículo: botón de papelera en el encabezado (solo si la existencia está en cero, igual que en escritorio).
  • Ajustar stock por bodega: toque una bodega en la tarjeta Stock por Bodega y sume o reste unidades escogiendo el motivo de la lista (o escribiéndolo); el movimiento queda en el kardex como ajuste (AJU).

Casos de uso por rol

Cajero / Vendedor
Consulta y venta
  • Consultar precio y stock desde facturación
  • Ver imágenes para confirmar producto
  • No modifica datos (solo lectura)
Encargado de Inventario
Gestión completa
  • Crear y editar artículos (permiso 411)
  • Ajustar stock por bodega
  • Administrar imágenes y categorías
  • Buscar duplicados y hacer cambios globales
Contador / Administrador
Precios, costos, cumplimiento
  • Ver costos y utilidades (permiso 013)
  • Validar CABYS y tarifa IVA
  • Exportar catálogo a Excel para análisis
  • Ajustar márgenes por subcategoría

Acceso y permisos

El módulo requiere los siguientes permisos:

PermisoDescripciónFuncionalidad
411Crear y editar artículosGuardar, eliminar, ajustar stock, subir imágenes
055Ver existenciasVer la tabla de Stock por Bodega y el ojito de existencias en las sucursales (sin este permiso el ojito sale gris)
013Ver costos y utilidadesVer columnas de costo en la tabla de búsqueda
Sin permiso 411 Si no tiene el permiso 411, podrá ver los datos del artículo pero no podrá guardar cambios. Los botones de acción aparecerán deshabilitados.

Datos del artículo

La sección Datos contiene la información básica obligatoria del artículo:

CampoTipoOblig.ValidaciónEjemplo
Código VARCHAR(15) Sí* Máx 15 caracteres. Auto si se deja vacío (CCSS####), o con el botón Lineal. Ver abajo. 99010003
Cód. Barra VARCHAR(45) No EAN-13 / UPC. Sin validación de dígito verificador. 7441003500150
Nombre VARCHAR(255) Si la empresa tiene encendido el parámetro 37, el nombre se guarda siempre en MAYÚSCULA (ver abajo). Ya no existe el check MAYUSC del editor anterior. Coca-Cola 600ml
Detalle Interno VARCHAR(500) No Notas internas, buscables. No se muestran al cliente. Lote julio 2026
Categoría CHAR(2) Se puede escribir a mano. Para ver la lista: el botón de al lado, o doble clic en el campo. 99
SubCategoría CHAR(2) Igual que la categoría: se escribe a mano, y el botón o el doble clic muestran la lista, ya acotada a la categoría elegida. 01
Naturaleza TINYINT 1=Producto, 2=Servicio, 3=Receta. 1
Tarifa IVA CHAR(2) Código Hacienda: 01=exento, 08=13%, 02=1%, 03=2%, 04=4%. 08
Actividad VARCHAR(6) Cond. Obligatorio si ParametrosEmpresa[125]=1. 471100
CABYS CHAR(13) Cond. 13 dígitos. Validación contra catálogo Hacienda. Obligatorio si ParametrosEmpresa[125]=1. 1122202100000
Cumplimiento Hacienda Costa Rica Desde 2023 la DGT exige CABYS de 13 dígitos y Actividad económica en toda factura electrónica. Active el parámetro 125 para que ambos campos sean obligatorios en el catálogo. El CABYS determina la tarifa de IVA por defecto; verifique que el cabys_tarifa coincida con el campo Tarifa IVA del artículo.

Código automático

Si deja el campo Código vacío al crear un artículo nuevo, el sistema genera uno automático con el formato:

Formato: CCSS#### CC = últimos 2 dígitos de la categoría, SS = últimos 2 dígitos de la subcategoría, #### = consecutivo de 4 dígitos. Ejemplo: si la categoría es "99" y la subcategoría "01", el código será 99010001, 99010002, etc.

Botón Lineal — el siguiente código libre

Al lado del campo Código hay un botón . Al tocarlo, el sistema busca el siguiente número consecutivo que no esté usado y lo pone en el campo. Es el mismo comportamiento del botón Lineal de Compras.

Sirve cuando quiere códigos corridos (1, 2, 3…) en vez del código automático, que se arma con la categoría y la subcategoría.

Cómo llena el códigoQué obtiene
Dejar el campo vacío y guardarCódigo armado con categoría + subcategoría (ej. 99010003)
Botón Lineal El siguiente número corrido que esté libre
Escribirlo a manoEl que usted digite (máx. 15 caracteres)
El campo Código también busca Si escribe un código que ya existe y presiona Enter (o sale del campo), el artículo se carga para editarlo. Si no existe, queda listo para crearlo con ese código.

Tipo de consumo (restaurantes)

Solo aplica si usa SacTáctil. Este campo decide a cuál impresora del salón se manda la comanda cuando alguien pide ese artículo.

OpciónLa comanda sale por
NadaNo se imprime comanda
ComidaImpresora de cocina
CóctelesImpresora de bar / cócteles
CalienteImpresora de cocina caliente
FríaImpresora de cocina fría
«Comida» y «Cócteles» no son lo mismo Comida es lo que sale por la impresora de cocina. Cócteles es lo que sale por la del bar. Cuál impresora física corresponde a cada una se define por salón, en la configuración de SacTáctil.

Buscador CABYS

Al hacer clic en el botón de lupa () junto al campo CABYS, se abre un modal donde puede buscar por código o por descripción. Al seleccionar un resultado, se rellena automáticamente el código y el nombre CABYS: el código queda dentro del campo y la descripción se muestra justo debajo, en una sola línea. Si la descripción es larga se corta con puntos suspensivos; para leerla completa, pase el puntero por encima.

El campo CABYS también se puede escribir a mano: al salir del campo se verifica contra el catálogo. Si el código no existe, se avisa y se limpia, para que no quede guardado un CABYS que después rebote en Hacienda.

La descripción también se ve en los artículos ya guardados. Al abrir un artículo del catálogo, bajo el código CABYS aparece la descripción que le corresponde, sin tener que copiar el código ni volver a abrir la lupa. Tiene tres formas de leerla completa:

  • Pasando el puntero sobre el propio código CABYS (o sobre la descripción): sale la descripción entera en un globito.
  • Haciendo clic en la descripción: se abre en varias líneas. Otro clic la vuelve a dejar en una sola línea.
  • En el celular la descripción aparece igual, debajo del campo.
Para desarrolladores — estructura mínima para INSERT
-- Crear artículo nuevo (los 7 campos obligatorios)
INSERT INTO Articulos (
    Cod_Articulo, Descripcion,
    Cod_Tipo_Articulo, Cod_SubTipo,
    Cod_Naturaleza, CodTarifaImpuesto,
    CodigoCabys, CodigoActividad
) VALUES (
    '99010003', 'COCA-COLA 600ML',
    '99', '01',
    1, '08',                   -- Producto, IVA 13%
    '1122202100000', '471100'
);

Costos y precios

Esta sección administra el costo del artículo y la lista de precios multi-nivel (cantidad de niveles definida por la empresa) con cálculo automático de margen, redondeo y soporte multi-moneda.

Origen del costo

El primer renglón permite elegir qué costo se usa como referencia para los cálculos de margen y utilidad:

OpciónDescripción
ManualEl costo se ingresa manualmente. Es el valor predeterminado.
PromedioUsa el costo promedio calculado por el sistema basado en las compras.
ÚltimoUsa el costo de la última compra registrada.
BrutoUsa el costo bruto de compra (antes de impuestos).

Opciones adicionales (checkboxes)

En la misma fila del origen del costo se encuentran opciones adicionales:

  • P.Manual — Permite modificar el precio de venta manualmente durante la facturación. Si está desactivado, el precio está bloqueado.
  • Sobregira — Permite vender el artículo aunque no haya stock disponible en la bodega.
  • Fracción — Permite vender cantidades fraccionarias (ej: 0.5 kg, 1.25 metros).
  • Serie — Requiere que se ingrese un número de serie al facturar este artículo.
  • Web — Marca el artículo para mostrarse en la tienda en línea.
Qué se ve y qué no se ve en la tienda en línea

La tienda en línea no publica todo el inventario: publica únicamente los artículos que tengan marcada la casilla Web (Mostrar en web). Un artículo sin esa marca existe en el sistema y se factura normalmente, pero no aparece en la tienda.

Para dejar la tienda en blanco (por ejemplo, mientras se depura el catálogo) y luego ir publicando solo lo aprobado:

  1. En el buscador de artículos, presione Buscar sin filtros para traer todo el catálogo.
  2. Marque la casilla del encabezado de la tabla y, cuando aparezca, presione «Seleccionar los N del filtro» — así la operación cubre todos los artículos y no solo la página visible.
  3. Presione Cambios globales → pestaña Estado & Visibilidad → tarjeta Visibilidad en webOcultar.

Para volver a publicar, el camino es el mismo con el botón Mostrar, o marcando la casilla Web artículo por artículo desde su ficha. Ver Cambios globales.

Para ver solo lo que está publicado y darle mantenimiento: en el buscador abra Más filtros, marque Mostrar en web y presione Buscar. La lista trae únicamente los artículos que salen en la tienda; se puede combinar con los demás filtros y exportar a Excel.

El enlace de la tienda no se apaga: si no hay artículos publicados, la tienda abre vacía. Cada cambio de visibilidad queda registrado en la bitácora con el valor anterior y el nuevo.

Tabla de costos

Debajo del origen se muestran 4 campos de costo alineados en columnas:

  • Manual — Costo ingresado por el usuario (editable).
  • Promedio — Costo promedio ponderado (se actualiza al registrar compras).
  • Último — Costo de la última compra (se actualiza automáticamente).
  • Bruto — Costo bruto de la última compra.

Cambiar la moneda del artículo (2026-07-18)

El artículo tiene una moneda propia, que se cambia desde la etiqueta de moneda en el encabezado de Datos básicos. Los costos guardados están expresados en esa moneda.

Al cambiarla y guardar, el sistema pregunta si desea convertir también los costos usando el tipo de cambio vigente:

  • Aceptar — Se convierten los cuatro costos (Propio, Promedio, Último y Bruto). El costo resultante se traslada a los precios del artículo y se recalculan los que están en modo automático.
  • Cancelar — Solo cambia la moneda; los costos quedan con el mismo número.

Ejemplo: un artículo en dólares con costo 1.50, al pasarlo a colones con un tipo de cambio de 455.14, queda con costo 682.71.

Importante: la conversión nunca se aplica sola — siempre requiere su confirmación. Si no hay tipo de cambio registrado para la fecha, el sistema no inventa ningún valor: deja los costos como están y lo registra en la bitácora del artículo, junto con el tipo de cambio aplicado cuando sí se convierte.

Tenga presente que cada nivel de precio tiene además su propia moneda, independiente de la del artículo. Cambiar la del artículo no modifica la de los niveles de precio.

Precios P1 a P10

Cada artículo puede tener hasta 10 precios de venta (P1 a P10). Cada precio tiene 4 columnas interrelacionadas:

ColumnaDescripciónEditable
PrecioPrecio base de venta (sin IVA)Solo en M (Manual)
Margen %Porcentaje de ganancia fijado por usted. La base depende del campo Margen sobre de ese nivel: COSTO (indicador C) o VENTA (indicador V) — ver el recuadro de abajo.
(Margen real)El que da hoy el precio contra el costo actual. Va entre paréntesis al lado del margen y se calcula soloNo
UtilidadGanancia absoluta (Precio - Costo)No
Venta+IVA (Precio Neto)Precio final con impuesto incluidoSolo en M (Manual)
Cálculo automático — depende del interruptor A / M
  • En A (Automático) se escribe el margen, y el precio y el Venta+IVA se calculan desde el costo del origen seleccionado. Aquí el precio no se escribe.
  • En M (Manual) también se puede escribir el precio o el Venta+IVA: el sistema saca el precio sin IVA y calcula el margen que corresponde.
El margen es un dato fijo: solo cambia cuando usted lo cambia (o cuando escribe un precio en M). Si después entra una compra con otro costo, el margen no se mueve; el que sí cambia es el margen real entre paréntesis. Por eso los dos pueden no coincidir. Ver Auto / Manual.
Precio P1 El precio P1 se resalta con un borde especial porque es el precio principal utilizado por defecto en facturación.
"Margen sobre": COSTO o VENTA — y por qué la factura muestra otro número Cada nivel de precio guarda sobre qué se calcula su margen. Se ve y se cambia haciendo doble clic sobre la fila del precio (campo Margen sobre), y en la lista de abajo aparece como una letra chiquita al lado del % de Utilidad: C = sobre costo, V = sobre venta.
  • Sobre COSTO (markup): (Precio − Costo) ÷ Costo × 100 — «por cada ₡100 que me costó, le gano X».
  • Sobre VENTA: (Precio − Costo) ÷ Precio × 100 — «de cada ₡100 que cobro, X son ganancia». Nunca pasa de 100 %.
Las pantallas de facturación (FactuDesk, SmartPOS, FastPOS) siempre muestran el margen sobre COSTO, sin importar cómo esté configurado el nivel. Por eso un artículo con el nivel en V muestra dos porcentajes distintos: son la misma ganancia en plata, expresada de dos maneras. Ejemplo: costo ₡531,34 y precio ₡1.327,44 → ganancia ₡796,10 = 59,97 % sobre venta (Inventario) y 149,83 % sobre costo (facturación). Si necesita que las dos pantallas den lo mismo, deje los niveles en C; se puede cambiar en bloque desde Cambios Globales → Precios por nivel → Margen Sobre por nivel (ojo: eso recalcula el precio desde el margen ancla con la fórmula nueva).
Mejor práctica Configure primero los márgenes por subcategoría (un porcentaje por nivel). Al crear un artículo nuevo, el sistema aplica esos porcentajes automáticamente al costo — solo tiene que ajustar si algún precio debe ser diferente.
Validación al guardar El sistema rechaza guardar si hay utilidad negativa en P1 (precio menor al costo). Esto previene ventas con pérdida por error de digitación. Los demás precios (P2–P10) sí admiten utilidad negativa si el usuario lo confirma.

Auto / Manual y el precio de un artículo que todavía no existe

Cada nivel de precio tiene un interruptor A / M en la columna Auto:

ModoQué mandaEl campo Precio
A — AutomáticoEl margen: el precio se calcula sobre el costo y se vuelve a calcular cada vez que el costo cambia (por ejemplo, al aplicar una compra).Solo se muestra — no se escribe
M — ManualEl precio: usted lo fija y ahí queda. El margen pasa a ser el resultado, no la orden.Se escribe

Para fijar un precio a mano, primero pase la fila a M con el interruptor; ahí el campo Precio se habilita.

Se puede dejar todo listo ANTES de crear el artículo Cuando está creando un artículo —clonando uno, o cargando uno y cambiándole el código por uno nuevo— los niveles de precio todavía no existen en la base: son un borrador, y la lista se lo dice («se crean al guardar el artículo»). Igual puede dejar cada nivel en Auto o Manual, escribirle el precio o el margen y elegirle el redondeo: el artículo se crea exactamente así al pulsar Guardar. Si cambia el costo, los niveles en Auto se actualizan solos en la pantalla, igual que lo harían después.
Artículo nuevo desde cero Si empezó con el formulario en blanco (botón Nuevo), no hay niveles que configurar todavía: los crea el sistema al guardar, y desde ese momento se editan normalmente.

Copiar un precio a los demás niveles

Si maneja varios niveles de precio con el mismo valor, no hace falta escribirlos uno por uno. Escriba el precio en un nivel y presione Enter: el sistema le pregunta si quiere copiarlo a los demás.

Funciona en las dos casillas de precio, la de con impuesto y la de sin impuesto.

Viene apagado Esta ayuda al digitar se activa con el parámetro de empresa 42. Mientras esté apagado, Enter se comporta como siempre y no pregunta nada. Se enciende desde Configuración → Parámetros de Empresa, grupo INVENTARIOS.

A cuáles niveles copia:

Nivel¿Recibe el precio?Por qué
Misma moneda, en ManualEs el caso normal
Otra monedaNoUn precio en colones no significa lo mismo en un nivel en dólares
En Automático (A)NoAhí el precio lo calcula el margen sobre el costo. Escribírselo duraría hasta el próximo cambio de costo. Si lo quiere incluir, páselo antes a Manual con el interruptor A/M de la fila
Que ya tiene ese mismo precioNo hace faltaSi no queda ninguno por cambiar, no pregunta nada

El mensaje le nombra uno por uno los niveles que se salta y por qué, antes de que usted acepte.

Algún nivel puede rechazar el precio Cada nivel de precio guarda su propio costo. Si el precio que está copiando queda por debajo del costo de ese nivel, ese nivel lo rechaza con el aviso «Precio menor al Costo» y los demás sí se guardan. Al terminar aparece el detalle de cuáles quedaron y cuáles no.

También puede ver céntimos de diferencia entre niveles: cada nivel aplica su propio redondeo.

Funciona igual en el celular.

Tabla Kardex eliminada A partir de 2026-04, el módulo ya no escribe en la tabla Kardex. Todos los movimientos pasan por InventarioMovimiento + actualización de Articulos.UltimoMovimiento. Si su integración consultaba Kardex, debe migrar a vista_movimientos.

Otros datos

La sección de Otros Datos contiene campos opcionales para información complementaria del artículo:

Generales

CampoDescripción
Estado1 = Activo, 2 = Inactivo, 3 = Eliminado, 4 = Descontinuado. Solo los activos aparecen en facturación.
MonedaMoneda del artículo (CRC, USD, EUR). Si la empresa opera en colones, seleccione CRC.
Mínimo StockCantidad mínima que debe existir en inventario. Se usa para alertas de reabastecimiento.
Máximo StockCantidad máxima recomendada en inventario.
Desc. Máximo %Porcentaje máximo de descuento que se puede aplicar al facturar este artículo.
Comisión %Porcentaje de comisión para el agente de ventas al vender este artículo.
VentasCantidad total de unidades vendidas (solo lectura, se actualiza automáticamente).
DescuentoMonto fijo de descuento aplicado al artículo.
Precio SugeridoPrecio sugerido por el fabricante o proveedor.

Identificación

CampoDescripción
Cód. UniversalCódigo universal del producto (si aplica).
ProveedorProveedor principal asociado al artículo. No se actualiza solo con cada compra: si el artículo se crea desde una compra ya queda con ese proveedor, y para poner al día el último proveedor de los artículos que ya existen se usa Compras → Sync Art. Proveedor (CO-033), sección Último proveedor de cada artículo, botón Actualizar el proveedor. El historial de compras de cada proveedor se ve en el botón de Compras / Ventas de la lista (MX-009).
MarcaMarca comercial del producto.
ClaseClasificación adicional libre.
Unidad MedidaUnidad de medida (ej: UND, KG, LT, MT).
Uds. x MedidaCantidad de unidades por medida (ej: 6 latas por paquete). Valor predeterminado: 1.
Orden CompraNúmero de orden de compra asociado.

Farmacéutico

Para artículos farmacéuticos, se incluyen campos adicionales:

CampoDescripción
Forma Farmac.Forma farmacéutica del medicamento (ej: tabletas, cápsulas, jarabe). Se selecciona de un catálogo con más de 200 formas.
Reg. SanitarioNúmero de registro sanitario del producto (ej: 2101-YK-5279).

Auditoría

Al final de la sección se muestran campos de solo lectura con información de auditoría:

  • Creado — Fecha y hora de creación del artículo.
  • Creado por — Usuario que creó el artículo.
  • Modificado — Fecha y hora de la última modificación.
  • Modifica por — Usuario que realizó la última modificación.
  • Ventas — Cantidad total que se ha vendido del artículo en esta empresa (facturas y tiquetes, con las notas de crédito ya rebajadas). Para verlo mes a mes use el gráfico de ventas por mes.

Cuenta Contable de Inventario (2026-05-01)

Cada artículo puede tener su propia cuenta contable de inventario. Se usa al registrar compras: cuando se aplica una compra, el monto del artículo aumenta esta cuenta en el asiento contable. Si el artículo no tiene cuenta asignada, el sistema usa la cuenta default global (Parámetro 92 en Configuración → Parámetros).

  • Cta. Inventario — Doble clic en el campo abre un buscador del catálogo contable. Seleccione la cuenta y el código se rellena automáticamente.
  • Si lo deja en blanco, se aplicará la cuenta default del Parámetro 92.
  • Para casos especiales por proveedor (mismo artículo, distinta cuenta según proveedor), se usa la tabla ProveedorArticuloCuenta que tiene prioridad sobre la cuenta del artículo.
Cuenta de depreciación

La depreciación NO se configura por artículo. Si el artículo es un activo fijo, la cuenta de depreciación se asigna en el módulo Activos Fijos al registrar el activo individual (un mismo artículo puede dar origen a varios activos fijos con distintas cuentas de depreciación según uso, ubicación, etc.).

Imágenes

Cada artículo puede tener múltiples imágenes organizadas en un carrusel. La primera imagen se usa como imagen principal en otros módulos.

Agregar imágenes

Existen 3 formas de agregar imágenes:

  1. Botón + — Haga clic en el botón del encabezado "Imágenes" para abrir el selector de archivos. Soporta formatos JPG, PNG, GIF, WebP.
  2. Pegar (Ctrl+V) — Copie una imagen del portapapeles y péquela directamente en el área de la imagen. Ideal para capturas de pantalla.
  3. Arrastrar y soltar — Arrastre un archivo de imagen desde su explorador de archivos al área de la imagen.

Con cualquiera de esas formas, si entra una sola imagen el sistema abre antes la pantalla de recorte, para que suba solo la parte que le sirve.

Navegar entre imágenes

Use las flechas o las teclas de flecha izquierda/derecha del teclado para navegar entre las imágenes. El contador en el encabezado muestra la posición actual (ej: 2/5).

Eliminar imágenes

Haga clic en el botón del encabezado para eliminar la imagen actual. Se le pedirá confirmación antes de eliminar.

Buscar la forma farmacéutica

El campo Forma farmacéutica (farmacias) tiene 229 opciones, así que en vez de una lista para bajar a ojo es un cuadro donde se escribe: a medida que escribe, la lista se reduce a lo que coincide, sin importar por dónde empiece la palabra.

  • Se elige con el mouse o con el teclado: flechas para moverse, Enter para escoger.
  • Esc cierra la lista y deja lo que estaba.
  • Si nada coincide, lo dice en vez de mostrar una lista vacía.

Funciona igual en la computadora y en el celular. El dato se guarda exactamente igual que antes: lo único que cambia es cómo se encuentra.

Ponerle la foto desde el teléfono

En la versión de celular, dentro de la ficha del artículo, toque el bloque Imágenes y luego el cuadro + Agregar. Puede tomar la foto en el momento o escoger una de la galería.

  • La foto se le pone al artículo después de guardarlo. Si está creando uno nuevo, guárdelo primero y ahí sí le agrega la imagen.
  • Antes de enviarla, el sistema la reduce y la aliviana sola: sube más rápido y gasta menos datos del teléfono. Usted no tiene que hacer nada.
  • Si la foto es demasiado pesada, el sistema se lo dice con el peso exacto y el máximo, para que mande otra más liviana.

Recortar la foto antes de subirla

Apenas toma la foto (o escoge una de la galería), el sistema le muestra la pantalla Recortá la foto para que deje solo el producto y se vaya lo que sobra: la mesa, la mano, el piso.

  1. Mueva el recuadro — arrástrelo con el dedo para ubicarlo sobre el producto.
  2. Ajuste el tamaño — jale cualquiera de las cuatro esquinas. Lo que queda por fuera se ve oscurecido: eso es lo que no se guarda.
  3. AtajosToda la foto devuelve el recuadro al tamaño completo; Cuadrado lo deja cuadrado y centrado, que es como se ven las fotos en el catálogo.
  4. Usar la foto sube el recorte. Cancelar no sube nada y lo deja en la ficha.
  • El recuadro nace abarcando la foto completa: si no quiere recortar nada, toque Usar la foto y sube igual que siempre.
  • Funciona igual en la computadora: al elegir o pegar una imagen aparece la misma pantalla. Si selecciona varias fotos de una vez, no se pide recorte y suben tal cual.
  • Lo que se recorta se descarta al subir. Si después quiere la foto completa, vuelva a agregarla y toque Toda la foto.
Si algo falla, el aviso le dice qué fue Cuando no se puede subir una imagen, el mensaje indica el motivo real: que la foto pesa de más, que se cerró la sesión, o que sí se cayó la conexión. Si le sale uno de esos avisos y no logra resolverlo, mándenos la foto de la pantalla con el mensaje: con eso se ubica el problema de una.
Almacenamiento Las imágenes se guardan en el servidor como archivos PNG. La imagen principal lleva el nombre del código del artículo (ej: 99010001.png). Las adicionales llevan un sufijo numérico.

Asignar imágenes desde mis archivos IN-014

¿Tiene una carpeta con muchas fotos de sus productos en la computadora y no quiere asignarlas una por una? Esta pantalla le permite cargar todas a la vez: el sistema lee la carpeta, reconoce a qué producto corresponde cada foto por el nombre del archivo y se las asigna en lote.

Cómo entrar Desde Artículos, botón "Imágenes masivo" en la barra de título. Si antes marca artículos en el buscador, la comparación se hace solo contra esos (más rápido y preciso).

Paso a paso

  1. Abrir carpeta — Elija la carpeta de su equipo donde están las fotos. El sistema lista todas las imágenes que encuentre, con su miniatura.
  2. Elegir el método de coincidencia:
    • IA (recomendado) — Reconoce el producto aunque el nombre del archivo esté abreviado o con las palabras en otro orden (ej: coca 600.jpgCOCA COLA 600 ML). Requiere saldo de IA.
    • Sin IA — aproximado por nombre — Compara por palabras en común. Funciona siempre, sin costo. Si el nombre del archivo se parece a la descripción, lo encuentra igual.
  3. Analizar — El sistema arma una tabla: cada foto con el producto sugerido y un nivel de confianza (alta / media / baja).
  4. Revisar y corregir — Puede cambiar el producto de cualquier fila con la lista desplegable, o destildar las que no quiera asignar.
  5. Asignar seleccionadas — Sube y asigna las fotos marcadas. Cada una reemplaza la imagen principal del producto.
Para mejores resultados Nombre los archivos parecido a la descripción del producto. Las fotos con nombres genéricos (foto_2026-06-01.jpg, imagen1.png) probablemente queden sin coincidencia: eso es normal, asígnelas manualmente o renómbrelas.
Importante Necesita el permiso Crear y editar artículos (411). La asignación reemplaza la imagen principal del producto: si quiere conservar la anterior, descárguela antes. Nada se sube hasta que usted presiona "Asignar seleccionadas".

Inventario

La sección de inventario muestra y permite gestionar el stock del artículo por bodega.

Stock por Bodega

La tabla muestra el stock actual del artículo en cada bodega donde tiene existencia:

ColumnaDescripción
BodCódigo de la bodega.
NombreNombre de la bodega.
StockCantidad actual en inventario.
UbicaciónUbicación física dentro de la bodega (editable). Haga clic para cambiar la ubicación. Los cambios se guardan automáticamente al salir del campo o al presionar Enter.
Ubicación editable El campo Ubicación es editable directamente en la tabla. Puede usarlo para indicar la posición física del producto (ej: "Pasillo 3, Anaquel B, Nivel 2").

Ver las existencias en las demás sucursales MX-011

Si su empresa tiene sucursales, puede ver cuánto hay de un artículo en cada una sin salir de esta pantalla — ya no hace falta ir a FactuDesk para eso. En el listado de artículos (la parte de abajo), cada fila tiene un ojito al lado del botón de Ventas: tóquelo y se abre la ventana Existencias por sucursal.

ColumnaQué muestra
EmpresaCada sucursal. La que dice acá es la empresa en la que usted está trabajando.
StockExistencia total del artículo en esa sucursal.
PrecioEl precio de la primera lista (P1) en esa sucursal, sin impuesto.
  • La casilla solo con stock > 0 viene marcada, para ver directo dónde hay. Desmárquela para ver todas las sucursales.
  • Si una sucursal dice no está, el artículo no existe en el catálogo de esa sucursal: no es que se acabó, es que nunca lo han tenido.
  • Toque una sucursal para ver en cuáles de sus bodegas está el artículo.
  • Abajo aparece una recomendación: si hay en alguna sucursal, se puede pedir un traslado; si no hay en ninguna, toca comprarlo.
En el celular Dentro de la ficha del artículo, abra el bloque Bodegas y toque Ver en las sucursales.
Si su empresa no tiene sucursales La misma ventana le muestra las bodegas de su empresa, incluidas las que están en cero. Es la misma consulta que el ojito de Solicitud de Abastecimiento (CO-SC-001), así que las dos pantallas siempre dicen lo mismo. Para verla necesita el permiso 055 — Ver existencias; sin él, el ojito aparece gris.

Ventas por mes: este año contra el anterior MX-012

Para ver de un vistazo si un artículo se está vendiendo más o menos que el año pasado. En el listado de artículos (la parte de abajo), cada fila tiene un ícono de barras a la izquierda del ojito: tóquelo y se abre la ventana Ventas por mes.

  • El gráfico tiene dos líneas: en azul el año anterior completo y en naranja el año actual, de enero a diciembre.
  • Cuenta la cantidad vendida (unidades en la medida del artículo), no el monto. Las notas de crédito se rebajan. Es solo lo vendido en esta empresa.
  • Arriba salen tres datos: el total del año anterior, lo que va del año actual y la comparación de los meses ya cerrados (por ejemplo, enero a agosto de este año contra enero a agosto del anterior).
  • Abajo hay una tabla con los números de cada mes y la diferencia entre los dos años.
El mes que todavía no termina El mes en curso se dibuja con línea punteada y un punto hueco, y en la tabla dice «al día N». Es normal que se vea más bajo: todavía faltan días por vender. Por eso ese mes no se compara con el año anterior, y los meses que aún no llegan no se dibujan.
En el celular Dentro de la ficha del artículo, abra el bloque Ventas por mes y toque Ver el gráfico.

Ajuste de Stock

Permite realizar ajustes rápidos de inventario sin necesidad de crear una nota de entrada/salida:

  1. Toque la fila de la bodega donde desea ajustar el stock — queda marcada (resaltada). Si no toca ninguna, queda seleccionada la primera de la lista por defecto.
  2. Ingrese la cantidad a ajustar (en la barra inferior).
  3. Escoja el motivo en la lista, o déjela en "-- Escribir el motivo --" y escríbalo a mano. El motivo es obligatorio: es lo que después explica el movimiento en el kardex.
  4. Haga clic en + (sumar / entrada) o (restar / salida).

Tras el ajuste la lista se actualiza con el nuevo stock y la bodega seleccionada se mantiene marcada (con un destello verde), así puede seguir aplicando + / sobre la misma bodega sin tener que volver a tocarla.

Es la MISMA lista de las Notas de Entrada / Salida No hay dos listas de motivos: la que sale acá es la de las Notas E/S, y se mantiene allá, con el botón Motivos de esa pantalla. Así todo el mundo escoge de lo mismo, se llame ajuste o nota. Si escoge un motivo y después cambia el texto a mano, la lista se pone en blanco sola: lo que se guarda siempre es lo que dice el campo de texto. Si su empresa no usa Notas de Entrada / Salida, la lista no aparece y el motivo se escribe a mano, como siempre.
Auditoría Todo ajuste de stock queda registrado en el kardex con tipo de documento AJU (Ajuste), incluyendo la justificación, el usuario y la fecha/hora.

Modal Kardex — movimientos del artículo MIN-003

El Kardex es un modal reutilizable que muestra el historial cronológico de movimientos (entradas, salidas, ajustes) del artículo cargado, con saldo corrido. Se abre desde el botón "Kardex" () en la barra de título del formulario.

Modal MIN-003 — Kardex
HEADER — Kardex — 02010021 Coca 11 · Bodega [▼] · Desde [📅] · Hasta [📅] · Buscar · Excel · ✕
TABLA — Fecha · Tipo Doc · Documento · Bodega · Cantidad (+/−) · Costo · Saldo · Usuario
FOOTER — Totales (entradas, salidas, saldo final)

Filtros del header

FiltroTipoDefaultDescripción
Bodega select Todas Filtrar movimientos por bodega. Si el kardex se abre desde un módulo con bodega preseleccionada (ej: Traslados), viene precargada.
Desde date Hoy − 3 meses Fecha inicial (YYYY-MM-DD). El rango por defecto son los últimos 90 días.
Hasta date Hoy Fecha final. Ambas fechas inclusive.

Tipos de movimiento

  • FAC — Factura de venta (salida, cantidad negativa)
  • COM — Compra (entrada)
  • DEV — Devolución (NC venta = entrada; NC compra = salida)
  • REQ / RIN — Requisición / traslado interno
  • TCI — Traslado entre empresas
  • AJU — Ajuste manual desde la card "Ajuste Stock"
  • TOM — Toma física aplicada
  • NEI / NSI — Nota de entrada / salida manual

Acciones disponibles

  1. Buscar — aplica los filtros actuales y refresca la tabla.
  2. Excel — exporta los movimientos filtrados a XLSX con cabecera, totales y columnas tabulares.
  3. Doble clic en fila — abre el documento de origen (factura, traslado, toma física) en una nueva pestaña.
  4. Cerrar — ícono ✕ arriba a la derecha o tecla Esc.
Saldo corrido Cada fila muestra el saldo de unidades y saldo de costo después del movimiento, calculado con un CTE SQL (RunningStock). Útil para auditar desfases de inventario punto a punto.
Componente reutilizable El modal está en /componentes/modal_kardex/ y se invoca desde JS así:
// Preseleccionar bodega y abrir
kardex.bodega = '2';
kardex.abrir('02010021', 'Coca 11');
Además de IN-002, lo usan Traslados (IN-007), Toma Física (IN-TF-001) y Notas E/S (IN-009).

Crear un artículo nuevo

Para crear un artículo nuevo, siga estos pasos:

  1. Haga clic en el botón "Nuevo" () en la barra de título, o presione Ctrl+N. Esto limpia todos los campos del formulario.
  2. Ingrese el Código del artículo (opcional: déjelo vacío para código automático).
  3. Llene el Nombre del artículo. Ya no hay un botón de mayúsculas junto al rótulo: si su empresa tiene activado el parámetro 37, los nombres se guardan siempre en MAYÚSCULA de forma automática y el campo se lo muestra así mientras escribe. Si no lo tiene activado, el nombre se guarda tal cual lo escriba; pídalo a soporte si lo quiere encendido.
  4. Ponga la Categoría y la Subcategoría. Puede escribirlas a mano —al hacer clic ya no se le despliega nada encima— o abrir la lista completa con el botón que está a la par del campo, o con doble clic sobre el campo. La lista de subcategorías sale ya acotada a la categoría que haya puesto.
  5. Seleccione la Naturaleza (Producto, Servicio o Receta).
  6. Seleccione la Tarifa IVA.
  7. Ingrese el Costo y al menos el Precio 1.
  8. Haga clic en "Guardar" () o presione Ctrl+S.
Nuevo
Llenar datos
Costo y precios
Guardar
Validación automática El sistema valida que los campos obligatorios estén completos antes de guardar. Si falta algún campo, se muestra un mensaje indicando cuáles campos debe completar.

Editar un artículo existente

Para editar un artículo:

  1. Busque el artículo en la sección de Búsqueda usando cualquier criterio (código, nombre, código de barra, etc.).
  2. Haga clic en la fila del artículo. Los datos se cargan automáticamente en el formulario superior.
  3. Modifique los campos que necesite cambiar.
  4. Haga clic en "Guardar" o presione Ctrl+S.
Bitácora de cambios Al guardar, el sistema compara los valores anteriores con los nuevos y registra solo los campos que cambiaron en la bitácora de auditoría. Si no hay cambios, se muestra "Sin cambios detectados".

Clonar un artículo

La función de clonación crea una copia del artículo actual con un código nuevo, conservando los precios y todos los datos para que no tenga que volver a cargarlos.

  1. Cargue el artículo que desea clonar (búsquelo y haga clic en él).
  2. Haga clic en "Clonar" ().
  3. El formulario queda con todos los datos del artículo original y en modo "crear".
  4. Escriba el código nuevo (o déjelo vacío para uno automático) y cambie lo que necesite — los precios incluidos: puede pasar niveles de Auto a Manual, fijarles el precio y cambiarles el margen o el redondeo antes de guardar (ver Auto / Manual al crear).
  5. Haga clic en "Guardar". El artículo nuevo se crea con la lista de precios tal como quedó en pantalla (todos los niveles, con su modo Auto/Manual, precio, margen, moneda, descuentos y redondeo), el costo y los demás datos del original.
Atajo "Guardar como" (escritorio) Con un artículo ya cargado, también puede simplemente cambiar el código en el campo de código por uno que no exista y pulsar "Guardar": el sistema crea un artículo nuevo con ese código conservando precios y datos del que tenía en pantalla.
Imágenes no se clonan Las imágenes del artículo original no se copian al clonar. Deberá subir nuevas imágenes para el artículo clonado.

Eliminar artículos

Puede eliminar artículos de dos formas:

Eliminación individual

Cargue el artículo en el formulario, luego use la opción de eliminación. El artículo cambia a estado Eliminado (3) pero permanece en la base de datos para auditoría.

Desde el celular: al editar un artículo aparece un botón de papelera en el encabezado. El borrado solo procede si la existencia está en cero; si tiene stock, el sistema lo bloquea.

Eliminación múltiple

  1. En la tabla de búsqueda, active los checkboxes de los artículos que desea eliminar.
  2. Haga clic en el botón "Eliminar" () que aparece en la barra de título.
  3. Confirme la operación. Los artículos seleccionados cambiarán a estado Eliminado.
Artículos con movimientos Si un artículo tiene ventas, compras o movimientos de inventario registrados, no se puede eliminar permanentemente. Solo se cambia a estado Eliminado para preservar la integridad de los datos históricos.

Buscador

El buscador trae todos los artículos que contengan lo que usted escribió, sin importar en cuál de estos cuatro campos aparezca:

  1. Código del artículo.
  2. Código de barra.
  3. Nombre.
  4. Detalle interno.

Si escribe varias palabras, tienen que aparecer todas (en cualquier orden y en cualquiera de esos cuatro campos). Por ejemplo "pocky chocolate" trae los artículos que lleven las dos palabras. No hace falta escribir el código completo: con un pedazo basta.

Si escribió algo y le aparece "Sin resultados" Revise el filtro Estado, dentro de "Más filtros": viene puesto en Activo, así que los artículos dados de baja no se muestran. Póngalo en Todos para verlos también.

Columnas de la tabla

ColumnaDescripción
CódigoCódigo del artículo (enlace al formulario).
NombreNombre del artículo.
CategoríaCategoría y subcategoría.
CostoCosto del artículo (solo con permiso 013).
PrecioPrecio de venta según la lista seleccionada en filtros.
Vta+IVAPrecio final con IVA incluido.
IVAPorcentaje de IVA aplicado.
UtilidadPorcentaje de utilidad del precio seleccionado. Se calcula según cómo esté configurado ese nivel de precio: sobre el costo (marca C) o sobre la venta (marca V). En verde si hay ganancia, en rojo si el precio queda bajo el costo. Al pasar el mouse muestra la ganancia en colones.
Se puede ordenar: haga clic en el encabezado Utilidad para ordenar de menor a mayor y otra vez para invertirlo. El orden se aplica a todo el inventario filtrado, no solo a la página visible, así que la primera página le trae realmente los artículos de mayor (o menor) utilidad. Ordenando de mayor a menor salen de primero los artículos con el costo en cero, cuyo porcentaje se dispara: es la forma más rápida de detectarlos y corregirles el costo.
StockExistencia total o por bodega filtrada.
EstadoEstado actual del artículo.
Acciones ventas por mes, este año contra el anterior (ver cómo se usa) · existencias en las sucursales (ver cómo se usa) · historial de compras y ventas · eliminar el artículo.
Interacción Haga clic en cualquier fila para cargar el artículo en el formulario de edición. Use las teclas de flecha ( ) para navegar entre filas y Enter para seleccionar.

Filtros avanzados

El buscador ofrece múltiples filtros combinables para refinar la búsqueda:

FiltroTipoDescripción
BuscarTextoCódigo, código de barra, nombre o detalle interno.
CategoríaSelectFiltra por categoría principal.
SubCatSelectFiltra por subcategoría.
EstadoSelectActivo, Inactivo, Eliminado, Descontinuado. Por defecto: Activo.
BodegaSelectFiltra stock por una bodega específica.
IVASelectFiltra por tarifa de IVA.
NaturalezaSelectProducto, Servicio o Receta.
PrecioSelectLista de precios a mostrar (P1 a P10).
StockOperador + ValorFiltra por cantidad de stock (ej: >= 10, = 0, < 5).
Utilidad %Operador + ValorFiltra por el porcentaje de utilidad del precio seleccionado (ej: < 5 = artículos con menos del 5% de utilidad; >= 30, = 0). Respeta si el margen está configurado sobre costo o sobre venta. Ideal para detectar artículos vendiéndose con poca o nula ganancia. El filtro también aplica a la exportación a Excel.

El botón «Limpiar» avisa cuando la lista está filtrada. Si hay cualquier filtro puesto —uno de la fila de arriba o uno de Más filtros— el botón Limpiar se ve amarillo. Sin filtros, se ve blanco, como los demás. Así sabe de un vistazo por qué la lista trae menos artículos de los que esperaba. Tocarlo quita todos los filtros de una vez.

  • Lo que viene puesto de fábrica no cuenta como filtro: Estado = Activo y Precio = P1. Si cambia el Estado a Inactivo o el Precio a P2, sí se enciende.
  • Se enciende con lo que ya se aplicó, es decir, lo que muestra la lista. Si cambia un filtro y todavía no presiona Buscar, el color no cambia hasta que busque.

Filtros de checkbox

Debajo de los filtros principales hay checkboxes adicionales:

  • Sin Actividad — Muestra solo artículos que no tienen actividad económica asignada.
  • Sin CABYS — Muestra solo artículos sin código CABYS.
  • Fraccionados — Muestra solo artículos que permiten venta fraccionaria.
  • Con Descuento — Muestra solo artículos que tienen descuento máximo configurado.
  • Mostrar en web — Muestra solo los artículos que tienen encendida la casilla Mostrar en web, es decir, los que salen en la tienda en línea. Sirve para revisar y darle mantenimiento a lo que tiene publicado (fotos, precios, nombres) sin buscarlo uno por uno. Se combina con los demás filtros (por ejemplo, Mostrar en web + Stock = 0 le dice qué está publicado sin existencia) y también aplica a la exportación a Excel y a Seleccionar todos los del filtro.
  • Mostrar Ventas — Al marcarse aparecen los inputs Ventas Desde / Hasta y se agrega la columna Vendido en la tabla con la cantidad de unidades vendidas en ese rango (las Notas de Crédito restan automáticamente). Se consideran solo documentos en Estado 1, 2 o 4 (procesados).

Filtros por fecha de creación

Independiente del check "Mostrar Ventas", el buscador tiene dos campos opcionales:

  • Creado Desde — Solo muestra artículos cuyo FechaCreado sea igual o posterior a la fecha indicada.
  • Creado Hasta — Solo muestra artículos cuyo FechaCreado sea igual o anterior a la fecha indicada (límite inclusivo, fin de día).

Si dejás ambos vacíos no se aplica filtro de fecha de creación. Útil para ver qué artículos se crearon en un período específico (auditoría, alta de inventario, etc.).

Combinación de filtros Todos los filtros se combinan con AND, lo que permite búsquedas muy precisas. Por ejemplo: artículos activos de categoría "Medicamentos" con stock igual a 0 en la bodega principal.

Exportar

Excel

El botón "Excel" () está en la fila de filtros del buscador, al lado de Buscar y Limpiar. Descarga un archivo con todos los artículos que coincidan con los filtros puestos (no solo los de la página que está viendo).

Trae los diez precios (P1 a P10) de cada artículo. La columna «Precio Manual (P1)» dice o No según si ese precio está marcado como manual (la casilla M de la lista de precios), y se refiere al nivel elegido en el filtro Precio del buscador: si filtró con P2, la columna se llama «Precio Manual (P2)» y habla del precio 2. Si el artículo no tiene ese nivel de precio, la celda queda vacía.

Es la única salida del listado En esta pantalla no hay botón de PDF del listado. El botón Imprimir de la barra de arriba imprime el artículo que tiene abierto en el formulario, no la lista de resultados. Si necesita la lista en papel o en PDF, use Inventario → Catálogo de artículos IN-001 y su botón Imprimir Web.

Si el botón Excel se ve apagado, vea El botón Excel se ve gris.

El botón Excel se ve gris

Si el botón Excel aparece apagado y no responde al hacer clic, no es una falla: la exportación está protegida y se habilita reporte por reporte.

La razón es simple: un Excel se lleva la información fuera del sistema. En esta pantalla salen costos, precios, márgenes de utilidad y todo el catálogo en un archivo que después se puede copiar o reenviar sin dejar rastro. Por eso la exportación arrancó apagada y se va habilitando a solicitud.

El candado es solo del botón Excel No afecta nada más de la pantalla: buscar, abrir, crear, editar y eliminar artículos funciona igual, tenga o no habilitada la exportación. Si al hacer clic sobre una línea del buscador le aparece el aviso rojo de la exportación, eso sí es una falla: repórtelo indicando el nombre del artículo.

Son dos llaves, y hacen falta las dos

NivelQué decideQuién lo activa
1 · Parámetro del reporteSi la empresa puede exportar ese reporte.Soporte Real, uno por uno.
2 · Permiso del usuarioSi esa persona puede exportarlo.El administrador de la empresa, desde Seguridad → Usuarios.

Si falta cualquiera de las dos, el botón queda apagado. Que el parámetro esté encendido no alcanza si la persona no tiene además su permiso.

El botón le dice cuál llave le falta Pase el mouse por encima del botón gris —o tóquelo, si está en el celular—: el mensaje que aparece indica si lo que falta es el permiso del usuario (con su número) o el parámetro de la empresa.

Si le falta el permiso del usuario

Eso lo resuelve la propia empresa, sin pasar por soporte. El administrador entra a Seguridad → Usuarios SE-001, elige a la persona en la lista de la izquierda, escribe Excel en el buscador de permisos y marca el que corresponda. Para esta pantalla el permiso se llama «Inventarios: exportar a Excel Crear/Editar (IN-002)» 926. El del catálogo es «Inventarios: exportar a Excel Catálogo artículos (IN-001)» 927: son dos permisos distintos, uno por pantalla.

El cambio toma efecto recargando la pantalla; no hace falta cerrar sesión.

Asignar es en Usuarios, no en Permisos del Sistema En Seguridad → Permisos del Sistema SE-002 se ve quién tiene cada permiso y se puede quitar, pero dar un permiso se hace desde Seguridad → Usuarios.
Ya me asigné los permisos y sigue gris Entonces la que falta es la otra llave: ese reporte está apagado para la empresa. Eso lo abre Soporte Real, y la solicitud debe venir de la gerencia o el dueño, indicando cuáles reportes, para qué y quiénes.
Este segundo candado es la excepción, no la regla Desde el 22 de agosto de 2026 el candado de empresa quedó solo en 29 reportes de todo el sistema — el Catálogo de Artículos, Crear/Editar artículo y las Listas de Precios, y el resto de los catálogos maestros (Clientes, Proveedores, Cuentas Contables y Empleados). En todos los demás reportes —Ventas, Compras, Contabilidad, Inventarios, Estadística, Corporativo— la única llave es el permiso del usuario, y lo reparte el administrador de la empresa sin pasar por Soporte Real.

Si le falta el parámetro de la empresa

La solicitud debe venir de la gerencia o el dueño, indicando cuáles reportes, para qué y quiénes deben poder exportarlos. Se pide así porque desde soporte no hay forma de saber si quien lo solicita es un usuario del sistema o el dueño, y lo que sale es el catálogo completo con costos y márgenes.

La solicitud se envía por correo a info@soportereal.com, desde el dueño o la gerencia. Ese es el canal: no hay que llamar ni esperar en el teléfono, y el correo deja constancia de quién lo pidió y para qué.

Esta llave no se abre desde el sistema Aunque su usuario sea el administrador de la empresa y tenga todos los permisos, esta protección no se activa desde ninguna pantalla: en Configuración → Parámetros de exportación (CF-024) la lista se puede ver, pero solo Soporte Real la modifica. Es a propósito, para proteger los datos de su empresa.
No se habilitan todos los reportes de golpe Justamente por seguridad: se abre el que se necesite.

Mientras tanto

La lista se ve completa en pantalla con todos los filtros. Y para llevarla a papel o a PDF está Inventario → Catálogo de artículos IN-001Imprimir Web, que respeta los filtros y trae las mismas columnas (código, código de barra, nombre, categoría, subcategoría, costo, precio, margen, IVA, neto, stock y unidad de medida). Ese botón no está protegido.

Y cuando sí lo pueda bajar, ¿qué trae el archivo? Un Excel normal: los datos van dentro de las celdas, con los montos como número y las fechas como fecha, y se puede ordenar, filtrar, copiar y sumar. Está explicado en El Excel de los reportes.

Cambios globales MIN-004

El modal Cambios Globales de Artículos permite aplicar una modificación masiva sobre varios artículos a la vez: cambiar familia, IVA, CABYS, marca, precios, costos, visibilidad web, sobregiro, fraccionamiento, estado (activar/eliminar), descargar fotos, etc.

Flujo de selección

  1. Aplique los filtros del buscador (por categoría, marca, IVA, stock, etc.).
  2. Marque los artículos a modificar:
    • Checkbox individual en cada fila — selecciona solo ese artículo.
    • Checkbox del encabezado (☑ "Seleccionar todos") — selecciona TODOS los artículos del filtro completo, no solo los de la página actual. Si hay varias páginas, muestra un indicador "Cargando..." mientras recupera la lista completa.
  3. Cuando hay más de una página de resultados, aparece una barra informativa amarilla bajo el encabezado que indica cuántos artículos están seleccionados (ej: "Seleccionados los 11,681 artículos del filtro (todas las páginas)"). Desde esta barra puede reducir el alcance a "Seleccionar solo esta página".
  4. Haga clic en el botón "Globales" () en la barra superior. Se abre el modal MIN-004 con un contador de artículos seleccionados.
  5. Complete los campos de la acción deseada y presione el botón correspondiente. Confirme la operación.
  6. El resultado aparece en el panel "Resultados" al pie del modal, con timestamp y número de artículos actualizados. El API procesa internamente en lotes de 500 registros.
Selección persistente La selección se mantiene entre filtros/páginas mientras no recargue el módulo. El botón "Globales" siempre opera sobre el Set completo de códigos seleccionados (no solo los checkboxes visibles).

Acciones disponibles (organizadas en 5 pestañas — v2.0.0 · 2026-05-05)

El modal MIN-004 ahora se presenta en pestañas de navegación para encontrar rápidamente la operación buscada. Cada pestaña agrupa cards con una operación cada una.

PestañaAcciónEfecto
📋 IdentificaciónMover a CategoríaCambia Categoría + Subcategoría. Ahora 2 inputs de texto libre con autocompletado desde la base de datos. Al elegir una categoría existente, las subcategorías se filtran automáticamente; también se puede crear una categoría nueva escribiéndola directamente.
Cambiar NaturalezaProducto / Servicio / Receta.
Cambiar Tipo IVATarifa fiscal (01–08).
Cambiar CABYSCódigo Hacienda 13 dígitos.
Fijar MarcaAsigna marca textual.
Actividad EconómicaAsocia código de actividad económica.
Agregar / Quitar TextoAppend o remove del DetalleInterno.
📦 StockEstablecer MínimoDefine punto de reorden mínimo.
Establecer MáximoDefine stock máximo.
Permitir / Quitar SobregirarSobregira = 1/0.
Permitir / Quitar FraccionarFraccionamiento = 1/0.
💰 Precios por nivel (ArticuloPrecios)Desc. Fijo por nivelUPDATE ArticuloPrecios.DescuentoFijo en el nivel P1..Pn elegido.
Desc. Máximo por nivelUPDATE ArticuloPrecios.DescuentoMaximo en el nivel elegido. Tope efectivo del descuento que cualquier cajero podrá aplicar.
Util. Mínima por nivelUPDATE ArticuloPrecios.UtilidadMinima en el nivel elegido. Se respeta SIEMPRE en facturación, incluso para usuarios con permiso 023 (descuento ilimitado).
Margen Sobre por nivelCambia ArticuloPrecios.MargenSobre a COSTO o VENTA. Ahora dispara recálculo del precio desde el margen ancla con la nueva fórmula (antes solo cambiaba el flag y dejaba precios viejos).
Modo de venta por nivelCambia ArticuloPrecios.PrecioAuto a 1 (Auto: recalcula con costo) o 0 (Manual: precio fijo). Ahora pasa por la función central: si cambia a Auto recalcula el Precio desde el Margen; si cambia a Manual recalcula el Margen desde el Precio.
Redondeo de precio por nivelFija el paso de redondeo del Precio + IVA del nivel elegido y re-redondea el precio actual. Desplegable con grupos ↑ Hacia arriba (0.1, Entero, ×5, ×10, ×25, ×50, ×100, ×500, ×1000) y ↓ Hacia abajo (los mismos en negativo), más "2 decimales (sin redondeo)". Ej.: Precio+IVA 84.08 con ↓ ×5 queda en 80.00.
🏷️ Costo & Precio masivoAjustar Precio Venta % NUEVOCard unificada con selector Aumentar / Quitar. Aumentar: Precio × (1 + pct/100). Quitar: Precio ÷ (1 + pct/100) — operación inversa. Útil para revertir un aumento masivo (subiste 5% ayer y hoy le das "Quitar 5%" → vuelve al precio original) o para extraer IVA cuando el precio ya lo incluye (quitar 13% = ÷ 1.13). Actualiza dbo.ArticuloPrecios.
Establecer PrecioFija el nivel de precio (P1..Pn) a un monto específico en ArticuloPrecios.
Actualizar MargenFija el margen % del nivel y recalcula el precio desde el costo, según el modo Costo/Venta del artículo. Escribe en ArticuloPrecios.
Aumentar Costo %Incrementa el costo actual por porcentaje y propaga a todos los niveles de ArticuloPrecios.
Establecer CostoFija el costo a un monto específico y propaga a todos los niveles de ArticuloPrecios.
Sincronización automática con empresas externas: todos los cambios masivos sobre precios/costos/márgenes ahora replican automáticamente a las empresas configuradas en EmpresasSincronizadas (parámetro 239 = 1). Para cambios por nivel se hace un MERGE bulk por destino (un solo statement, rapidísimo). Para cambios de costo se sincroniza artículo por artículo porque afecta todos los niveles.
👁️ Estado & VisibilidadActivar / Eliminar ArtículosCod_Estado = 1 o 3. Los artículos con existencia en inventario no se eliminan (quedan como estaban y el resultado lo avisa).
Mostrar / Ocultar en WebMostrarEnWeb = 1/0.
Descargar FotosGenera ZIP con imágenes existentes.
Buscar y Asignar FotosBusca imágenes usando el endpoint web (DuckDuckGo + SafeSearch estricto) usando el nombre del artículo + Categoría + Marca como hints, y permite asignar la imagen correcta desde una galería de 4 sugerencias.
Niveles de precio dinámicos (P1..Pn) Los selectores de nivel se generan en tiempo real desde SELECT DISTINCT NumeroPrecio FROM dbo.ArticuloPrecios. Si la empresa solo tiene precios P1, P2 y P5, solo verás esos tres niveles. Esto vale para todas las operaciones de precio (pestañas Precios por nivel y Costo & Precio masivo).
Las operaciones de costo y precio usan la lista de precios unificada Las operaciones de Costo & Precio masivo (Aumentar % de Venta, Establecer Precio, Actualizar Margen, Aumentar Costo %, Establecer Costo) ya no escriben en las columnas viejas DBVenta1..10; ahora actualizan directamente la tabla unificada dbo.ArticuloPrecios a través del mismo motor que usa el editor de artículos (con recálculo de margen, redondeo del Neto y soporte multi-moneda). Si algún artículo no tiene definido el nivel elegido, se reporta como aviso y no se interrumpe el resto.
Categoría y Subcategoría como texto libre En la nueva arquitectura, Categoría y Subcategoría se guardan como texto directo en Articulos.Categoria y Articulos.SubCategoria (no más códigos en tablas separadas). El input es un campo de texto libre con autocompletado desde lo ya existente en la BD.

Estilo de botones

Los botones están homologados en estilo Banking Bold (mismo tamaño, tipografía y padding) con dos tonos de azul según la acción:

  • Azul primario #0047AB — Acciones de asignación/activación (Mover, Establecer, Permitir, Activar, Mostrar, Descargar, Agregar).
  • Azul oscuro navy #0a2540 — Acciones de remoción (Quitar Sobregirar, Quitar Fraccionar, Ocultar en Web, Eliminar Artículos, Quita Texto).
Bitácora Cada cambio queda registrado en la bitácora del sistema por artículo individual, con el valor anterior y el nuevo. Se puede consultar desde la ficha del artículo o el módulo de bitácora.
Permiso requerido El API /api/inventarios/cambios_globales_api.php valida el permiso 050 (Artículos, Editar) antes de ejecutar cualquier cambio.

Atajos de teclado

AtajoAcción
Ctrl+SGuardar artículo
Ctrl+NNuevo artículo (limpiar formulario)
Ctrl+VPegar imagen del portapapeles (cuando el foco está en el área de imagen)
Navegar entre filas de la tabla de búsqueda
EnterSeleccionar fila resaltada en la tabla
EscCerrar modales abiertos

Errores comunes

"Debe seleccionar una Categoría" La Categoría es obligatoria. Haga clic en el botón de lápiz () junto al campo Categoría para seleccionar una.
"Debe seleccionar una Naturaleza" La Naturaleza (Producto/Servicio/Receta) es obligatoria. Selecciónela del menú desplegable.
"Debe seleccionar una Tarifa IVA" La Tarifa de IVA es obligatoria. Selecciónela del menú desplegable. Las opciones más comunes son: 08 (13% IVA general) y 01 (Exento).
"Debe seleccionar una Actividad Económica" / "Debe ingresar el Código CABYS" Estos campos son obligatorios cuando el parámetro 125 de la empresa está activado (valor = 1). Hacienda requiere el CABYS para facturación electrónica.
"El código de artículo ya existe" Intentó crear un artículo con un código que ya está en uso. Use un código diferente o deje el campo vacío para código automático.
Los precios no se recalculan al cambiar el costo Verifique que haya seleccionado un Origen del Costo (Manual, Promedio, Último o Bruto). El recálculo usa el costo del origen seleccionado.
La imagen no se guarda La imagen solo se puede agregar a un artículo que ya ha sido guardado al menos una vez. Primero guarde el artículo (para que tenga un código) y luego suba la imagen.

Preguntas frecuentes

1. ¿Cómo cambio el precio de venta con IVA incluido?

Primero ponga ese nivel en M (Manual) con el interruptor A / M de la fila. Luego escriba el precio final en la columna Precio Neto (Venta+IVA) y presione Enter. El sistema calcula el precio sin IVA, el margen y la utilidad.

En A (Automático) esa casilla no se escribe, porque el precio lo manda el margen. Ahí se cambia el margen y el precio se recalcula. Ver Auto / Manual.

2. ¿Puedo tener precios diferentes por cliente?

Sí. Cada cliente puede tener asignada una lista de precios (P1 a P10). Al facturar, el sistema usa automáticamente la lista asignada al cliente.

3. ¿Qué pasa si dejo el costo en 0?

El artículo se guardará con costo cero, pero los cálculos de margen y utilidad no funcionarán correctamente. Se recomienda siempre ingresar un costo, aunque sea estimado.

4. ¿Puedo vender un artículo sin stock?

Solo si el artículo tiene activado el checkbox Sobregira. Si está desactivado, el sistema impedirá facturar cantidades mayores al stock disponible.

5. ¿Cómo veo los movimientos de un artículo?

Al cargar un artículo en el formulario, aparece el botón "Kardex" () en la barra de título. Al hacer clic, se abre el modal MIN-003 filtrado por ese artículo.

6. ¿Qué diferencia hay entre Producto, Servicio y Receta?

  • Producto (1) — Mercancía física que afecta el inventario al vender.
  • Servicio (2) — No afecta inventario. Ideal para mano de obra, fletes, servicios profesionales.
  • Receta (3) — Artículo compuesto. Al vender, se rebaja el stock de sus ingredientes individuales.

7. ¿Cómo sé si un artículo requiere CABYS?

Si los campos Actividad y CABYS tienen un asterisco (*) en su etiqueta, significa que el parámetro 125 de la empresa está activado y son obligatorios. Sin el asterisco, son opcionales.

8. ¿Puedo editar la ubicación del artículo en la bodega?

Sí. En la tabla de Stock por Bodega, el campo Ubicación es editable. Haga clic en él, escriba la ubicación y presione Enter o haga clic fuera del campo para guardar.

9. Antes había un botón para poner el nombre en MAYÚSCULA y ya no lo veo

Dejó de ser un botón: ahora es una configuración de la empresa, el parámetro 37 ("Artículos: guardar el nombre siempre en MAYÚSCULA"), en Configuración → Parámetros, grupo INVENTARIOS (permiso 017). Con el parámetro encendido no hay que acordarse de nada: uno escribe como quiera y el nombre se guarda en mayúscula solo, y el cuadro del Nombre se ve en mayúscula mientras se escribe para que quede claro.

Dos aclaraciones:

  • Actúa al guardar, así que los artículos que ya estaban en minúscula siguen igual hasta que se vuelvan a guardar.
  • Es solo para el nombre. El código se guarda tal como se digita — y no hace falta emparejarlo, porque el sistema busca artículos sin fijarse en mayúsculas ni minúsculas: ab-125 y AB-125 son el mismo artículo en el buscador, en la facturación y al importar listas en Toma Física o en Notas de Entrada/Salida.

Permisos

Los permisos controlan qué acciones puede realizar cada usuario en el catálogo de artículos. Se asignan al grupo de usuarios desde el módulo de Seguridad (SE-001).

PermisoDescripciónAfecta
053Ver catálogo de artículos (IN-001)Acceso a la lista de artículos; sin este permiso redirige al menú
411Crear y editar artículos (IN-002)Botón Nuevo, formulario de creación y edición completa de artículos
050Actualizar artículos en loteGuardar cambios masivos desde la edición en línea del catálogo
055Ver existencias en inventarioColumna stock y tabla de stock por bodega en el formulario
013Ver costos y utilidadesColumnas de costo, margen y utilidad en el catálogo
Botones visibles pero deshabilitados Si no tiene el permiso de edición (411 u 050), los botones de guardar y nuevo aparecen en gris con tooltip indicando que no tiene acceso. Esto es intencional para que sepa que la función existe.

Parámetros de empresa

Los parámetros configuran el comportamiento del formulario de artículos y los campos obligatorios.

ParámetroDescripciónUso en artículos
125CABYS obligatorio (1=sí, 0=no)Si está activo, los campos Actividad y CABYS se vuelven obligatorios al guardar el artículo
249Moneda nacional de la empresa (ej: CRC, USD)Determina el símbolo de moneda mostrado en los precios y costos
62Nombre de la empresaEncabezado del Excel y PDF al exportar el catálogo
42Al dar Enter en un precio, preguntar si copiarlo a los demás niveles (1=sí, 0=no)Viene apagado. Ver Copiar un precio a los demás niveles
201Modo de rebajo de artículos compuestosHabilita la barra Armar en artículos de naturaleza Compuesto
CABYS obligatorio El código CABYS (Clasificador de Actividades, Bienes y Servicios) es requerido por Hacienda para la facturación electrónica. Si el parámetro 125 está activo, no se podrá guardar un artículo sin este código.

Versión móvil

Tanto el Catálogo (IN-001) como el Crear/Editar (IN-002) tienen una versión optimizada para celular. La detección es automática tanto por User-Agent como por ancho de pantalla, y el switch es transparente.

Cómo se decide qué versión cargar

  • User-Agent móvil (iPhone/Android/iPad/etc.) → siempre carga el archivo _movil.php automáticamente.
  • Ancho < 768 px en cualquier UA → JS detecta al primer paint y redirige a la versión móvil.
  • Ancho ≥ 768 px sobre la versión móvil → JS detecta y redirige a la versión desktop.

Flags de override (consumibles)

Si querés forzar una versión específica, agregá a la URL:

  • ?desktop=1 — fuerza desktop esa carga (útil si tenés ventana angosta y querés ver el layout completo).
  • ?mobile=1 — fuerza móvil esa carga (útil para previsualizar desde un desktop).

Importante: el flag se consume al cargar (se elimina del URL automáticamente). Si recargás (F5), la página vuelve a evaluar el ancho real. Esto evita que el flag quede pegado y bloquee la respuesta natural al redimensionar.

Catálogo móvil (IN-001 mobile)

  • Cards con miniatura de imagen (60 px), código (mono azul), badge de estado, nombre 2 líneas, categoría/subcategoría, precio P# y stock con indicador visual (rojo si < 5, gris si 0).
  • 3 filtros siempre visibles: Nombre (busca en nombre/código/barra), Estado (default Activo), Tipo Precio (selector dinámico según niveles configurados en la empresa).
  • Filtros agregables con botón + Agregar filtro: Código, Barra, Categoría, SubCategoría, Naturaleza, Tarifa IVA, Paquetes, Stock (operador + valor).
  • Auto-submit: cambios en selects disparan búsqueda inmediata; inputs de texto con debounce de 600 ms.
  • FAB flotante "+" para crear nuevo artículo (si tenés permiso 411).
  • Tap en card abre el editor móvil (articulos_crear_movil.php?codigo=X).
  • Footer fijo: cantidad de artículos filtrados, stock total sumado, página actual.

Crear/Editar móvil (IN-002 mobile) — v2.0

Versión solo edición (no incluye buscador — para búsqueda usá el catálogo móvil). Desde mayo 2026 maneja la lista de precios multinivel completa (la misma tabla ArticuloPrecios del escritorio), no solo P1. Las cards se pueden colapsar tocando el header.

  • Datos Básicos (abierta por defecto): Código, Cód. Barra, Nombre, Detalle Interno, Categoría / SubCategoría como texto libre con autocompletado (la subcategoría se filtra por la categoría escrita), Naturaleza, Tarifa IVA, CABYS, Actividad, Partida Arancelaria. La moneda del artículo y el estado se cambian con sus badges en el header.
  • Costos y Precios:
    • Los 4 costos (Propio / Promedio / Último / Bruto) con el selector de origen del costo. En edición hay un botón "Guardar costo (recalcula precios)" que actualiza el costo y recalcula automáticamente los precios y redondeos de toda la lista.
    • Lista de precios (solo en edición): una tarjeta por nivel P1, P2, P3… con Costo (solo lectura), Precio sin IVA, Margen % (muestra entre paréntesis el margen real calculado), Sobre (COSTO / VENTA), Precio + IVA y un selector de Redondeo (↑ hacia arriba / ↓ hacia abajo, o "2 dec" sin redondeo). Hay un toggle AUTO / MAN por nivel: en AUTO el precio se recalcula al cambiar el costo; en MAN el precio queda fijo. Al editar Precio / Margen / Precio+IVA los demás se recalculan en vivo y al salir del campo se guarda. Botón "+ Agregar precio" para crear un nivel nuevo y un botón eliminar (🗑) por nivel. Al cambiar la Tarifa IVA se vuelve a buscar el porcentaje.
    • En modo nuevo, primero hay que guardar el artículo: al recargarlo aparece la lista de precios para definir los niveles (mismo flujo que el escritorio).
  • Cuenta Contable (si la empresa tiene la columna habilitada): input de la cuenta de inventario + botón lupa que abre un modal con buscador del catálogo contable.
  • Imagen: tap en el cuadro abre cámara o galería (capture="environment"). En modo edición sube automáticamente; en modo nuevo queda pendiente y se sube tras guardar con el código final.
  • Stock por Bodega (solo en edición + permiso 055): tabla read-only con Bodega, Stock y Ubicación. Para ajustar stock usá la versión desktop.
  • Otros Datos (colapsada): Proveedor, Cód. Universal, Marca, Clase, Unidad, Uds×Med, Mín/Máx, Comisión, P. Sugerido, Orden Compra, Forma Farm., Reg. Sanit., y los 4 checks (Sobregira/Fracción/Serie/Web). Auditoría al final.
  • Estado: badge clickeable en el header abre un modal selector con Activo/Inactivo/Eliminado/Descontinuado.
  • Header: badge de Moneda, badge de Estado, botón Clonar (solo en edición), ir al Catálogo móvil, y Volver (regresa a la pestaña anterior).
  • No incluye (para eso usá el escritorio): wizard de "Nuevo rápido", el modal avanzado de precio (Desc. Fijo / Máx / Util. Mínima), herramientas de IA, detección de duplicados, Kardex y el ajuste de stock.

Auto-generación de código en móvil

Igual que en desktop: si dejás el campo Código vacío al crear, el sistema lo arma con la fórmula Categoría + SubCategoría + consecutivo (4 dígitos) — por eso es obligatorio elegir SubCategoría cuando el código está en blanco. La etiqueta del campo dice "Código (vacío = auto)" para recordártelo.

Clonar artículo (móvil)

El botón del header (solo visible en edición) duplica el artículo actual en un nuevo registro:

  • Mantiene todos los datos: precios, costos, categoría, IVA, naturaleza, proveedor, márgenes, etc.
  • Limpia solo Código, Nombre y Cód. Barra para que ingreses los nuevos.
  • Resetea la imagen (la imagen está atada al código del archivo PNG en disco).
  • Oculta la card de Stock por Bodega (no aplica al artículo nuevo).
  • Aparece un banner amarillo avisando que estás clonando, con botón Cancelar para volver al original.

Forzar desktop con ancho angosto

Si abrís el desktop con ?desktop=1 y la ventana mide menos de 768 px, el body recibe la clase force-desktop que anula los @media queries de mobile: la tabla sigue siendo tabla, los acordeones quedan abiertos, los botones muestran sus labels y el grid de 3 columnas se mantiene. Esto es solo para esa carga; al recargar se re-evalúa el ancho real.

Historial de cambios

Últimas actualizaciones al módulo Crear / Editar Artículo:

2026-09-11
Gráfico de ventas por mes: este año contra el anterior
En el listado, cada fila tiene un ícono de barras que abre un gráfico con la cantidad vendida por mes del artículo: el año anterior en azul y el actual en naranja, con una tabla de números y la comparación de los meses cerrados. El mes en curso va punteado porque todavía no termina. En el celular está en el bloque Ventas por mes. Ver Ventas por mes.
Además, el historial de ventas (botón ) y el total de Ventas del pie de la ficha ahora cuentan todos los tiquetes: antes se les escapaban muchos, así que es normal ver números más altos.
2026-09-11
«Limpiar» se enciende cuando hay filtros puestos
En el buscador, el botón Limpiar se ve amarillo cuando la lista está filtrada por cualquier cosa —la fila visible o Más filtros— y blanco cuando no hay filtros, igual que en Seguridad → Usuarios. Lo que viene de fábrica (Estado Activo, Precio P1) no cuenta. Ver El botón «Limpiar» avisa cuando la lista está filtrada.
2026-09-10
Nuevo filtro «Mostrar en web» para ver lo publicado en la tienda en línea
En el buscador, dentro de Más filtros, hay una casilla nueva Mostrar en web que trae solo los artículos que salen en la tienda en línea. Así se revisa y se le da mantenimiento al catálogo publicado sin buscarlo artículo por artículo. Se combina con los demás filtros, cuenta en el numerito de Más filtros y también aplica al Excel y a Seleccionar los N del filtro. Ver Qué se ve en la tienda en línea.
2026-08-26
Ajuste de stock: el motivo ahora se escoge de una lista
Al sumar o restar existencia en la card Stock por Bodega ya no hay que escribir el motivo cada vez: aparece una lista de motivos y al escoger uno el texto se llena solo. Quien prefiera escribirlo lo sigue haciendo igual, dejando la lista en "-- Escribir el motivo --". Es la misma lista de las Notas de Entrada / Salida — no hay un catálogo aparte —, y se mantiene desde esa pantalla con el botón Motivos. Funciona igual en escritorio y en celular.
2026-05-13
Editor de artículos rediseñado — pantalla dividida ajustable + letra grande + lista de precios en una línea
Rediseño visual completo del editor para que sea más cómodo y predecible en cualquier monitor:
  • Pantalla dividida ajustable: la zona de Datos del artículo (arriba) y la zona de Búsqueda (abajo) ahora ocupan exactamente la mitad de la pantalla cada una. Entre las dos hay una barra fina arrastrable con el mouse — la podés mover hacia arriba o abajo para darle más espacio a la que más uses (por ejemplo 60% Datos / 40% Búsqueda). El sistema recuerda tu preferencia en este navegador. Si querés volver al 50/50, hacé doble-clic sobre la barra divisoria.
  • Letra más grande (16 px) en toda la columna derecha — Stock por Bodega, cantidades, Ubicación, barra "Ajuste de Inventario" (cantidad, justificación, botones + y ). Se ve cómodo sin esforzar la vista.
  • Tabla de precios reescrita en una sola línea por nivel: cada precio se ve como (margen virtual) (ganancia) [margen real] en la columna Margen, y Precio Sin Impuesto / Precio Neto en columnas separadas a la derecha. Toggle AUTO/MAN al inicio (slider con etiqueta). Letra 16 px pareja. Para editar campos avanzados (Desc. Fijo, Desc. Máximo, Utilidad Mínima, Redondeo, Sobre Costo/Venta), hacé doble-clic sobre la fila → se abre el modal "Modificar Precio".
  • Click en una fila de la lista de búsqueda → carga el artículo arriba. Antes a veces había un pequeño "brinco" al recargar la página o al cambiar de artículo — eso se eliminó (era un ajuste automático de zoom que ahora se aplica antes de pintar la pantalla).
  • La lista de búsqueda se ordena al hacer click en el encabezado de cualquier columna (Código, Nombre, Stock, Cantidad, Costo, Precio, Neto, etc.). Aparece una flechita amarilla / en el header. Click otra vez en la misma columna invierte el orden.
  • Nombre del artículo con ancho completo — ya no se trunca con "…", se ve entero. Si toda la fila no entra en la tabla, aparece scroll horizontal dentro de la lista (no afecta al resto de la pantalla).
  • Stock por Bodega con scroll interno — si tu empresa tiene 10+ bodegas, la lista hace scroll adentro del panel; ya no empuja el card de Búsqueda hacia abajo.
  • Cards con borde sutil y separación visible — los dos bloques principales (Datos del artículo y Búsqueda) tienen un marco fino para que se distinga la división.
No cambia ninguna funcionalidad de fondo (mismas validaciones, mismas APIs, mismos permisos). Solo es un rediseño visual para que el uso diario sea más fluido. Si extrañás alguna columna que ya no aparece en la lista de precios principal (Costo, Sobre, Desc.Fijo, Desc.Max, Util.Mín, Redondeo, Precio+IVA), hacé doble-clic sobre la fila del precio para abrir el modal con todos los campos.
2026-05-11
Editor de artículos móvil v2.0 — ahora maneja la lista de precios completa
La versión para celular de Crear / Editar Artículo (IN-002 mobile) se reescribió para ponerse al día con el escritorio:
  • Lista de precios multinivel: una tarjeta por nivel P1, P2, P3… con Precio sin IVA, Margen % (más el margen real entre paréntesis), Sobre (COSTO/VENTA), Precio + IVA, selector de Redondeo (↑/↓) y toggle AUTO/MAN. Editar / agregar / eliminar niveles, igual que el escritorio. Recálculo en vivo al escribir.
  • "Guardar costo (recalcula precios)": botón que actualiza el costo y recalcula los precios y redondeos de toda la lista en un toque.
  • Categoría / SubCategoría como texto libre con autocompletado (la subcategoría se filtra por la categoría escrita).
  • Cuenta contable de inventario con buscador del catálogo contable.
  • Selector de moneda del artículo en el header.
La detección de móvil/escritorio sigue siendo automática (por dispositivo y por ancho de pantalla). No incluye, en móvil: wizard "Nuevo rápido", el modal avanzado de precio (Desc. Fijo / Máx / Util. Mínima), herramientas de IA, duplicados, Kardex ni el ajuste de stock — para eso usá el escritorio.
2026-05-11
Ajuste de stock: la bodega seleccionada ya no se pierde al sumar/restar
En la card Stock por Bodega del editor de artículos: al tocar una bodega y darle + o , la selección "saltaba" a la primera bodega de la lista porque la tabla se vuelve a dibujar con el nuevo stock. Ahora la bodega ajustada queda marcada (con su destello verde), así se pueden encadenar varios ajustes sobre la misma bodega sin tener que volver a tocarla. Si no había ninguna marcada, queda seleccionada la primera (como antes).
2026-05-11
Cambios Globales (MIN-004): el redondeo / cambios de precio en miles de artículos ya no da "Error de red"
Al aplicar operaciones que recorren artículo por artículo (Redondeo por nivel, Establecer / Aumentar Precio, Actualizar Margen, Establecer / Aumentar Costo) sobre selecciones grandes (decenas de miles de artículos), el proceso se cortaba a los ~60 segundos con un "Error de red — Unexpected token" (era el servidor proxy cerrando la conexión por tiempo). Ahora el modal procesa la selección en lotes de 500, mostrando el avance en el registro (Lote 12/103: 500/500 actualizado(s)…) y un resumen al final. No hay que cerrar la pestaña hasta que termine. Si un lote falla, se reporta y el resto continúa.
2026-05-11
Cambios Globales (MIN-004): operaciones de costo/precio sobre la lista unificada + redondeo masivo (↑/↓)
  • Corrección: las operaciones de la pestaña Costo & Precio masivo (Aumentar % de Venta, Establecer Precio, Actualizar Margen, Aumentar Costo %, Establecer Costo) daban error Invalid column name 'DBVenta1' / 'DBVenta3' en las empresas ya migradas a la lista de precios unificada (dbo.ArticuloPrecios), porque seguían escribiendo en las columnas viejas DBVenta1..10. Ahora pasan por el mismo motor central que el editor de artículos: recalculan margen, aplican el redondeo del Neto y soportan multi-moneda. Si un artículo no tiene definido el nivel elegido se reporta como aviso y el resto sigue. En empresas todavía sin migrar se mantiene el comportamiento anterior.
  • Nueva operación "Redondeo de precio por nivel" (pestaña Precios por nivel): fija el paso al cual se redondea el Precio + IVA de un nivel para los artículos seleccionados y re-redondea el precio. Desplegable con grupos ↑ Hacia arriba y ↓ Hacia abajo (0.1, Entero, ×5, ×10, ×25, ×50, ×100, ×500, ×1000), más "2 decimales (sin redondeo)".
  • Redondeo hacia abajo en todo el sistema: el paso de redondeo (RedondeoPrecio) ahora puede ser negativo para redondear el Neto hacia abajo al múltiplo (positivo = hacia arriba, como siempre; 0.01 = sin redondeo). Disponible también en el modal Editar Precio (MAP-001), Agregar Precio (MAP-002) y el selector de redondeo por fila de la tabla de precios del artículo, todos con opciones agrupadas ↑/↓. Ej.: Precio+IVA 84.08 con ↓ ×5 queda en 80.00; con ↓ Entero queda en 84.00.
2026-05-05
MIN-004 v2.0.0: Reorganización por tabs + 5 operaciones nuevas para ArticuloPrecios por nivel
El modal Cambios Globales de Artículos (MIN-004) fue reorganizado en 5 pestañas: Identificación, Stock, Precios por nivel, Costo & Precio masivo y Estado & Visibilidad. Cada pestaña contiene cards independientes en grid de 2 columnas (1 col en móvil) con animación fade-in al cambiar.
  • Categoría / Subcategoría: ahora son 2 inputs de texto libre con autocompletado desde la base de datos. Al elegir una categoría existente, las subcategorías se filtran automáticamente. También permite escribir una categoría/subcategoría nueva.
  • 5 operaciones nuevas para ArticuloPrecios por nivel (tab Precios por nivel): Desc. Fijo, Desc. Máximo, Util. Mínima, Margen Sobre (COSTO/VENTA) y Modo de venta (Auto/Manual). Cada una con selector de nivel P1..Pn dinámico desde SELECT DISTINCT NumeroPrecio FROM ArticuloPrecios.
  • Selectores P1..Pn dinámicos en TODAS las operaciones de precio del modal (también en las legacy: Aumentar % Venta, Establecer Precio, Actualizar Margen). Solo aparecen los niveles que la empresa realmente tiene definidos.
  • Cards Banking Bold con borde gris y header gris claro. Las cards del tab "Precios por nivel" tienen header con gradiente violeta para distinguirlas como ArticuloPrecios.
  • Eliminadas del UI las operaciones legacy duplicadas (Articulos.DescuentoFijo / Descuento_Admitido / DbArticuloOrigenCosto / PrecioVentaManual). Las cases en la API quedan vivas por compatibilidad.
  • Bitácora resumen por lote para cada operación AP: "ArticuloPrecios MargenSobre P3=COSTO en 437 artículo(s)". Procesa en lotes de 500.
2026-04-28
Card Datos Básicos: layout horizontal compacto y auto-ajuste
Rediseño del card Datos Básicos (desktop) buscando densidad y legibilidad:
  • Etiquetas a la izquierda, inputs a la derecha — toda la ficha pasa de label-arriba a label-en-fila. min-width:90px para alineación vertical entre filas.
  • Capitalización solo de la primera letra en las etiquetas del card (CSS text-transform:lowercase + ::first-letter:uppercase). Antes todo era MAYÚSCULA.
  • Nombre y Det. Interno cada uno en su propia fila (full width), con grow para ocupar el ancho disponible. Etiqueta DETALLE INTERNO renombrada a Det. interno.
  • Inputs auto-ajustables al contenido: Código size=15, Cód. Barra size=15, CABYS size=13, Partida Arancel. size=12. Selects de Actividad, Naturaleza y Tarifa IVA con atributo data-autowidth:auto (se miden por el option más largo).
  • Stock y Descuentos (Mín. Stock, Máx. Stock, Desc. Máx %, Descuento, Comisión %) reducidos a 7ch con texto alineado a la derecha — más en línea con su rango típico de valores.
  • Flex-wrap activo en .datos-fila: si los campos no caben, bajan a la siguiente fila sin quebrar la maquetación. Categoría, Nombre y Detalle interno usan campo-grow (flex: 1 1 260px).
  • Check MAYUSC reposicionado al final del input Nombre (antes estaba al lado de la etiqueta).
2026-04-27
Filtros "Mostrar Ventas" y "Fecha de Creación" en buscador
  • Mostrar Ventas: nuevo checkbox que al activarse despliega rangos de fecha (default: mes actual) y agrega la columna Vendido a la tabla con la cantidad de unidades vendidas en ese período. NC se restan automáticamente; solo cuenta documentos procesados (Estado 1/2/4).
  • Fecha de Creación: dos inputs Creado Desde / Creado Hasta independientes para filtrar artículos por su FechaCreado. Útil para auditar altas en períodos específicos. Funcionan también al exportar a Excel.
  • Toggle dinámico: al marcar/desmarcar el check de Ventas, los inputs de fecha aparecen/desaparecen sin recargar.
  • Subquery con WITH (NOLOCK) sobre vista_venta_hija+vista_venta_madre; placeholders SQL ordenados correctamente para no romper otros filtros existentes.
2026-04-27
Búsqueda inline mejorada en módulos de inventario
En los 4 módulos de edición que buscan artículos (Toma Física, Requisiciones, Notas E/S, Traslados Empresas):
  • El PASO 3 de la cascada (búsqueda multi-palabra) ahora incluye DetalleInterno además de código + barra + nombre. Esto permite encontrar artículos por sus notas internas.
  • Si la búsqueda devuelve una sola coincidencia (en cualquier paso de la cascada — código exacto, barra exacta o multi-palabra), el cursor se posiciona automáticamente en el campo Cantidad sin abrir el modal MBA-002. Antes solo el match exacto disparaba esto; ahora cualquier resultado único lo hace.
  • Solo se abre el modal de búsqueda reutilizable cuando hay 0 o más de 1 coincidencia.
2026-04-27
Versión móvil del Catálogo (IN-001) y del Editor (IN-002)
Nuevos archivos articulos_lista_movil.php y articulos_crear_movil.php en estilo Banking Bold optimizado para celular.
  • Catálogo móvil: cards con miniatura, 3 filtros base (Nombre/Estado/Precio) + filtros agregables, auto-submit con debounce, FAB para crear.
  • Editor móvil: formulario en 5 cards colapsables (Datos Básicos / Costos y Precios / Imagen / Stock por Bodega / Otros Datos), recálculo reactivo de precios, cámara directa, modal selector de estado, sin buscador.
  • Botón Clonar móvil: duplica el artículo, limpia código/nombre/barra y muestra banner amarillo con opción cancelar.
  • Auto-generación de código: dejar el campo vacío ejecuta la lógica del API (Categoría + SubCategoría + consecutivo), ahora también disponible en móvil.
  • Detección automática: redirige por User-Agent (móvil) o por ancho < 768 px (JS). Flags ?desktop=1 y ?mobile=1 consumibles para forzar una vista solo esa carga (se eliminan del URL automáticamente, así el reload re-evalúa).
  • Force desktop: body class force-desktop anula los @media de mobile cuando se fuerza desktop con ancho angosto.
  • Subcategoría dependiente: en móvil se construye el mapa desde la tabla canónica SubTipo_Articulo (no la vista) y se trimean los códigos para evitar mismatches al editar.
2026-04-20
Encabezados y alineación en "Stock por Bodega"
Se agregaron los títulos de columna Bodega / Stock / Ubicación sobre la lista, con estilo Banking (barra azul inferior, 10px uppercase). Las columnas ahora se alinean exactamente con los datos usando CSS Grid con anchos fijos (1fr 70px 120px), corrigiendo el desfase que provocaba el input de ubicación.
2026-04-20
Ubicación editable inline en "Stock por Bodega"
El campo Ubicación de cada bodega ahora es un input editable directamente en la lista. Guarda al salir del campo (blur) o al presionar Enter, con feedback visual (flash verde) y rollback automático si falla. Requiere permiso 411.
2026-04-20
Homologación botones modal Cambios Globales (MIN-004)
Botones del modal unificados en estilo Banking Bold: mismo alto (24px), ancho mínimo (180px), tipografía Inter 10px uppercase. Se quitaron las variantes verde/rojo/blanca. Los botones de acción de remoción (Quitar, Eliminar, Ocultar, Quita Texto) pasan a #0a2540 (azul oscuro navy) en lugar de rojo; los demás usan el azul primario #0047AB.
2026-04-20
"Seleccionar todos" aplica a TODO el filtro
El checkbox del encabezado de la tabla ahora selecciona todos los artículos que coinciden con los filtros activos, incluso en páginas no visibles (vía endpoint ?get_codes=1). Banner amarillo indica el total seleccionado con opción "Seleccionar solo esta página" para reducir el alcance. El botón Globales ahora lee del Set completo window.codigosSeleccionados — antes solo leía los checkboxes visibles de la página actual (máx 500).
2026-04-18
Check "MAYUSC" para nombre
Nuevo check sutil junto al campo Nombre que convierte a mayúsculas al guardar y al consultar. La preferencia se persiste en localStorage por computadora.
2026-04-17
Migración a Flat Moderno
Todo el módulo refactorizado al estilo Flat Modern: inputs con radius 0 y texto azul corporativo, fichas internas aplanadas, header de cards gris oscuro con texto blanco, botones del carousel de imágenes con borde visible, modal de imagen grande con colores semánticos.
2026-04-14
Columna "Stock Destino" (traslados)
En módulos relacionados (traslados entre empresas) se consulta el stock de la bodega destino en la empresa remota, con fallback por dbcontrol.dbnegocio para encontrar el servidor correcto.
2026-04-10
Subcategorías con márgenes NOT NULL
El INSERT a SubTipo_Articulo ahora exige Porcentaje1..10 y Redondeo (valor inicial 30%). Evita subcategorías sin margen configurado.
2026-04-01
Modal Nueva Categoría (MIN-002)
Modal unificado para crear Categoría + Subcategoría juntas o solo una Subcategoría nueva. Auto-código de 3 dígitos con padding.
2026-03-25
Búsqueda de fotos web por categoría
Botón "Fotos" que busca imágenes en Bing para múltiples artículos de una categoría. Grid 2×2, selección con un clic, descarga automática al servidor.
2026-03-24
Rediseño a layout 3 columnas
Editor reorganizado en grid de 3 columnas: Datos+Precios / Otros / Imágenes+Stock. Cada card con acordeón colapsable en móvil. Kardex como modal reutilizable.

Exportar a Excel: permiso 926

Si el botón Excel aparece gris, no es una falla: exportar este reporte se habilita persona por persona con su propio permiso:

  • Permiso 926 — Inventarios · Crear/Editar IN-002
Cómo se asigna Lo asigna quien administre los permisos de usuario de su empresa, en Seguridad → Usuarios SE-001: elegir a la persona, escribir el número del permiso (o la palabra Excel) en el buscador de permisos y marcar la casilla. Toma efecto recargando la pantalla, sin cerrar sesión.

Al pasar el mouse sobre el botón gris, el sistema dice qué le falta. Que a un compañero sí le funcione no significa que esté habilitado para todos: el permiso es por persona (por ejemplo, el usuario del contador suele ser uno aparte y necesita el suyo). Si el mensaje dice en cambio que la exportación está apagada para la empresa, esa no se abre desde el sistema: la solicita el dueño o la gerencia a Soporte Real. Ver el reporte en pantalla no pide este permiso; solo la descarga a Excel. Más detalles en El Excel de los reportes.