Tengo la experiencia de uso de bases de datos remotas, distribuidas y en linea con manejo de mercaderías.
Fui parte del equipo de desarrollo de Venezia un programa de retail que se usan varios supermercados en América, por comentarte alguno, SuperISSSTE en México (3300 POS aprox.) y Supermaxi en Ecuador (1200 POS) la aplicación principal esta desarrollada en VB, del mismo modos fui parte del equipo de desarrollo del programa de contabilidad PACIOLI 3000 y Mondial desarrollados también en VB, también vendidos al rededor del mundo.
El uso de bases de datos en linea es posible usando una red privada pero esto consume mucho ancho de banda y correo el riesgo de que en algún punto se pierda la comunicación y se quede la aplicación sin base de datos lo que en una linea de cajas es catastrófico, se puede crear una replica de base de datos por tiempo, pero esto puede crear un problema si se desincronizan mas que nada en cuestión de precios y promociones, se puede usar un aplicativo web (pagina web) o un proceso de carga en una base de datos remota que puede estar en las oficinas centrales de las tiendas o en otro punto. Esta base se actualiza conforme se realicen transacciones (ventas, devoluciones, entrega de mercancía. etc.)
Considerando lo que describes de tu aplicativo se podrían manejar dos esquemas posibles:
1) Manejo de la aplicación en Web, con el riesgo de alguna falla de comunicación en la línea de cajas. La aplicación Web no creemos que sea la mejor opción ya que puede ser inestable y puede dejar la tienda sin forma de cobro.
2) Manejo del aplicativo como está con el uso de un servicio web que reciba las transacciones que se vayan realizando desde cada punto de venta. El servicio Web no consume mucho ancho de banda y no requiere que existan conexiones abiertas por mucho tiempo.
Si hay algún problema de comunicación se deberán reenviar las transacciones pendientes existan una vez que se restablezca la comunicación.
Esto se desarrollará en un nuevo modulo de trasferencia de datos, el cual generaría la información necesaria para que la aplicación actual siga funcionando como hasta hoy sin muchos cambios.
Para esto consideramos 3 grandes fases:
1) Análisis del código y base de datos actual con la finalidad de extraer lo necesario para hacer el modulo de carga y recepción de transacciones entre otros (carga de artículos, baja de artículos, inventario, precios, promociones, ventas, devoluciones).
2) Desarrollo de la aplicación de distribución y servicios web.
3) Implementación del nuevo módulo a la aplicación actual.
Obvio cada parte estaría formada por tareas mas específicas.
El tiempo que se requiere, depende del detalle vez revisada la base de datos y la aplicación actual, pero consideramos que se requieren de 3 a 4 semanas para el nuevo modulo, posterior al análisis y previo a la implementación/prueba.
Opcional se puede hacer un servicio que muestre los resultados en un smartphone o tableta
Esperando que la solución propuesta sea de su agrado, quedamos a sus órdenes.