Pular para o conteúdo principal
Versão: 1.x

Arquitetura

Esta página explica a arquitetura técnica do WCPOS para desenvolvedores e usuários avançados.

Sistema em Duas Partes

O WCPOS é projetado como um sistema em duas partes:

  1. Plugin PHP: Hospedado em seu servidor, este é um plugin relativamente pequeno que estende a API REST do WooCommerce.

  2. Cliente JavaScript: Este roda localmente em seu navegador ou no aplicativo de desktop, e posteriormente nos aplicativos iOS e Android.

Você pode pensar nisso como dois mundos separados:

  • O mundo PHP é onde a gestão de dados acontece usando WordPress e WooCommerce.
  • O mundo JavaScript replica sua loja WooCommerce localmente, otimizado para pesquisa rápida e uso offline.
SVG not found

Sincronização de Dados

Os dados são buscados do WooCommerce usando a API REST do WooCommerce. Isso significa que o POS precisa baixar cada produto, variação, categoria de produto, cliente, taxa de imposto e mais para armazená-los localmente.

Embora isso possa ser demorado inicialmente, uma vez baixados, eles estão disponíveis instantaneamente sem a necessidade de buscar continuamente do servidor.

O que é Sincronizado?

  • Produtos e variações
  • Categorias e tags de produtos
  • Clientes
  • Taxas de imposto e classes de imposto
  • Gateways de pagamento (para o checkout)
  • Pedidos (para histórico de pedidos no Pro)

Estratégia de Sincronização

O WCPOS usa uma estratégia de sincronização incremental:

  1. Sincronização inicial: Baixa todos os dados na primeira carga
  2. Atualizações incrementais: Apenas busca as alterações desde a última sincronização
  3. Sincronização em segundo plano: Verifica periodicamente por atualizações
  4. Sincronização manual: O usuário pode acionar uma sincronização a qualquer momento

Prós e Contras da Arquitetura

Bom 😊Ruim 😟
A pesquisa de dados locais é instantâneaManter os dados sincronizados é desafiador
Dados em cache disponíveis offlineLimitado pela API REST do WooCommerce
Capacidade de criar melhores aplicativos nativos para desktop, iOS e AndroidTemas e hooks do WordPress não podem personalizar o aplicativo POS

Banco de Dados Local

O cliente JavaScript armazena dados no IndexedDB, um banco de dados baseado em navegador. Isso fornece:

  • Persistência: Os dados sobrevivem a reinicializações do navegador
  • Performance: Consultas rápidas sem latência de rede
  • Navegação offline: Dados em cache permanecem acessíveis sem internet

Arquitetura de Checkout

O processo de checkout usa um iframe/webview que carrega a página de Pagamento do Pedido do WooCommerce. Esta abordagem:

  • Aproveita gateways de pagamento existentes: Qualquer gateway de pagamento do WooCommerce pode funcionar no POS
  • Mantém segurança: O processamento de pagamentos ocorre através da infraestrutura segura do WooCommerce
  • Reduz complexidade: Não há necessidade de reimplementar integrações de gateways de pagamento

Extensões da API

O plugin PHP estende a API REST do WooCommerce com endpoints adicionais para funcionalidade específica do POS. Veja a API REST do WooCommerce para detalhes.