Bom dia Marcio,
Esse cenário local/webservice é muito mais comum do que vc imagina. Pode-se mudar as regras de negócio, o objetivo do aplicativo, mas em resumo, todos fazem algo local pra depois enviar pra algum lugar. É o "modelo padrão" de software hoje em dia, se é que existe algum...rs
Se quiser mais algumas dicas, eu vou te dizer o que uso no meu cenário:
- Retrofit para abstrair a API: Basicamente vc cria uma interface no java, anotando os métodos com url e parâmetros, depois ele faz uma "automágica" e acessa a api através de OO, e já conta com um mecanismo para gestão do cache automático, vc só precisa escolher se quer salvar no banco, no disco ou na memória;
- OkHttp para multiplexar as requisições HTTP, c/ suporte a SPDY: Quando vc tem muitas requisições HTTP ele pode dar um ganho de, no mínimo, 40% no tempo total. Francamente, ainda não achei motivo pra não usar;
- GSON para serialização: Já ouvi benchmarks dizendo que ele até é bom, mas força muito GC na máquina virtual, o que além de deixar o app lento, pode comsumir mais bateria. Eu uso pq é do Google, é confiável e estável;
- Robospice para gerenciar as requisições HTTP: Vc consegue enfileirar dezenas de requisições e com o uso do OkHttp, isso tudo explode em threads, muito rápido. O melhor é q é tudo transparente, vc nem importa uma Thread ou AsyncTask;
- OrmLite para ORM com o banco;
- E um SyncAdapter: não precisamos reinventar a roda. Sério.
No caso desse último, a documentação oficial é bem abrangente, mas não existe um "best practices" sobre como fazer a sincronização, mas eu recomendo que vc dê uma boa olhada e estude esse parte do Android, pois permite que vc elimine completamente a activity com o botão "atualizar": isso fica totalmente automático.
Vc pode deixar somente sincronização em segundo plano, em períodos ou ainda, disparar a sincronização a cada pedido gravado, deixando um delay mínimo. Assim, imagino q não haveria a necessidade dos vendedores "integrarem os pedidos no fim do dia".
Um bônus: Vc também pode usar uma queue como o GCM, RabbitMQ ou Redis e criar um Service no aplicativo que recebe uma "push notification" sobre novos produtos, promoções, etc., e vc baixa pela API apenas o que interessa, com delay de segundos, talvez minutos. ;)
Sobre queda de conexão, etc, vc teria que tratar isso através dos exceptions já fornecidos pelo Retrotif, OkHttp, Robospice e o próprio Android. Vc só precisa checar se o aparelho tem conectividade e "pingar" a API antes de começar.
Se quiser trocar mais ideias, me mande um email.