Resumen
La clienta llevaba todo el negocio en planillas, así que las reemplacé por una app. Funciona offline first con SwiftData y sincroniza el catálogo con listeners de Firestore, así que lo que cambia desde el teléfono aparece al tiro en las dos tiendas online. Cubre CRUD completo para 7 categorías de productos y lleva el control de mermas, lotes de ingreso, gastos y cuentas bancarias. Las ventas pasan por transacciones atómicas de Firestore, así que la misma unidad no se puede vender dos veces en dos lados. Superó los 2M CLP en ventas durante el primer mes usándola.