Contenido del curso
Exploración y relaciones
User experience
Apariencia y low code
Automatizaciones
Validaciones y gráficas
Permisos y restricciones
Configurar ventas y folios en AppSheet
Resumen
La vista de ventas es el corazón de cualquier aplicación comercial, y en FerreShop representa el módulo donde Maximiliano registra sus ingresos. Aprenderás a configurar la vista de ventas en AppSheet, personalizar folios con fórmulas, ocultar relaciones innecesarias y mejorar la experiencia visual para que tanto el dueño como su equipo trabajen sin fricciones.
Cómo debe quedar el menú principal de la app
Antes de avanzar con ventas, conviene revisar que el menú esté bien organizado. La distribución refleja la lógica del negocio y evita que Maximiliano confunda secciones.
En la parte superior del menú deben aparecer los catálogos: clientes, productos, proveedores, unidades de medida y usuarios. En la parte inferior se ubican los movimientos: ventas y entrada de material. Un detalle práctico es asignar un ícono de candado a usuarios, porque visualmente los diferencia de clientes y refuerza que es una sección administrativa [1:08].
¿Cómo cambio el ícono de una vista en AppSheet? Entra a View, baja hasta la sección Display y selecciona el nuevo ícono desde el selector. El cambio se refleja de inmediato en el menú.
Qué columnas mostrar en cada catálogo
Cada vista debe enseñar solo lo esencial. En proveedores, por ejemplo, basta con proveedor ID, nombre, teléfono y estatus. El tipo de vista puede ser tabla o deck, según la preferencia visual, y la posición middle funciona bien para los módulos centrales [2:30].
Cómo crear folios automáticos con concatenate y row number
Maximiliano pidió que cada cliente tenga un folio único con prefijo, no el código aleatorio que genera Google por defecto. Aquí entra una fórmula clave para profesionalizar la app.
La solución vive en la propiedad Initial value de la columna ID. Vas a Table, eliges Clientes, abres View columns y editas el campo cliente ID. Dentro del pop-up borras la fórmula que viene por default y aplicas una combinación de concatenate, right y row number [4:15].
- El concatenate une la cadena de texto fija (por ejemplo cli) con el número.
- El right define cuántas posiciones tendrá el consecutivo, en este caso cuatro.
- El row number toma la fila actual de la hoja para autoincrementar.
¿Qué hace row number en AppSheet? Devuelve el número de fila donde se está creando el registro. Sirve como base para generar consecutivos automáticos en folios.
El resultado es un folio limpio tipo cli0002, mucho más legible que el código alfanumérico original. La misma lógica se replica con prefijos PR para proveedores, US para usuarios, VE para ventas (en venta folio, no en venta ID) y EM para entrada de material [7:20].
Cómo ocultar relaciones que ensucian la vista
Cuando seleccionas un cliente, AppSheet muestra automáticamente las ventas relacionadas. Eso satura la pantalla y Maximiliano no necesita esa información dentro del catálogo de clientes.
La solución es entrar a Table, abrir las propiedades de la tabla y desactivar la opción Show en la relación correspondiente. Lo mismo aplica para proveedores y para cualquier otra tabla donde aparezcan referencias inversas que no aporten valor [10:05].
Cómo configurar valores iniciales en ventas
La vista de ventas se vuelve mucho más potente cuando los campos vienen prellenados. En View columns defines tres valores por default que aceleran cada registro.
- Cliente: usa el cliente 003, que representa la venta mostrador para compradores no registrados.
- Fecha: aplica la función today para capturar la fecha del día.
- Hora: aplica la función now en un campo separado, porque manejar fecha y hora independientes mejora la trazabilidad [12:40].
Un detalle visual importante: cuando seleccionas el cliente, por defecto aparece el código cli003 en lugar del nombre. Para corregirlo vas a la tabla clientes, deshabilitas el label en cliente ID y lo activas en la columna nombre. Ahora el formulario muestra Venta Mostrador en lugar del código.
Cómo identificar al cajero autenticado en cada venta
Cada venta debe registrar quién la procesó. Esto es trazabilidad pura: saber qué cajero atendió cada operación.
En la columna cajero de la tabla ventas, dentro de Initial value, se aplica una fórmula que busca en la tabla usuarios el correo del usuario autenticado y devuelve su usuario ID. Para probarlo sin cerrar sesión, AppSheet ofrece Preview app as, donde pegas el correo del perfil que quieres simular, por ejemplo maria@gmail, y la app se comporta como si esa persona estuviera dentro [16:30].
¿Para qué sirve Preview app as en AppSheet? Permite ver la app desde el perfil de cualquier usuario sin cerrar sesión. Es ideal para probar permisos, valores iniciales y vistas personalizadas según el rol.
Igual que con clientes, conviene cambiar el label en la tabla usuarios para que se muestre el nombre y no el ID. Así, cuando María Martínez registra una venta, su nombre aparece directamente en el formulario.
Cómo conectar ventas con venta detalles usando is part of
Una venta sin productos no es una venta. La relación entre ventas y venta detalles se configura activando la opción is part of en la columna que las relaciona.
Entras a venta detalle, abres la columna de relación y habilitas is part of. Esto le indica a AppSheet que los productos pertenecen a una venta específica y deben crearse junto con ella, no como registros independientes [19:10]. El resultado es un formulario de ventas que ya pide los productos asociados al momento de registrar la operación.
La configuración de entrada de material y entrada de material detalles queda como reto: aplicar la misma lógica de folios EM, valores iniciales y la relación is part of. Cuéntame en los comentarios cómo te quedó tu primera venta de prueba y qué fórmula te dio más batalla.