# Virtual Clerk
## :memo: Descriçao
O Virtual Clerk é uma solução de suporte à venda online que pretende simular ao máximo a experiência de compra em loja física.
O âmbito da solução inclui a noção de senhas e de fila de espera, uma ligação video com audio que conecta o cliente e o operador, o processo de materialização e efectivação da venda e a integração da anteriores operações com a plataforma eCommerce.
A solução deverá simular todos os momento de uma venda em loja física. Entenda-se a recepção do cliente em contacto pessoa-a-pessoa, prestação de esclarecimentos, demonstração ou apresentação de produto, formalização do fecho da venda, entre outras actividades possíveis.
A solução Virtual Clerk deverá ser disponibilizada dentro de uma plataforma de eCommerce, tirando partido do cliente já se encontrar identificado, validado e de já ter formas de pagamento autorizadas, aumentando a propensão para a compra.
O facto da solução Virtual Clerk estar disponível na plataforma de eCommerce, permite mais facilmente que os períodos de espera possam ser convertidos em vendas online, através da apresentação de campanhas ou de publicidade direcionada.
As vendas via plataforma eCommerce (venda online) e as vendas via Virtual Clerk apresenta os mesmos desafios de cobrança e de logística de entrega. Pelo que estes temas deveram ser integrados numa visão unida e tratados na própria plataforma de eCommerce.
A aplicação Clerk deverá ter a capacidade de gerir diversas câmeras, dando ao operador um maior grau de liberdade durante o atendimento. Permitindo que seja utilizada, por exemplo, uma câmera especifica para um contacto pessoa-a-pessoa e outra câmera para a demonstração ou apresentação de produto. O número de câmeras e as suas características dependerá em grande medida das características do negócio em causa. Tendo a solução que estar preparada para mediante configuração ser selecionada a câmera em uso.
#### :telescope: Possíveis Evoluções
Pode ser interessante incluir para um conceito de agendamento, onde o cliente poderá selecionar um determinado slot de tempo disponível.
Existem negócios, onde o atendimento tem de ser agendado, como é o exemplo dos psicólogos, advogados e outros especialistas. Ou até mesmo alguns serviço de vendas mais premium, caracterizados por processos de venda demorados e altamente personalizados.
Seria interessante que a solução Virtual Clerk pudesse permitir a coexistência dos dois métodos de atendimento:
- Atendimento por ordem de chegada
- Atendimento por marcação
O virtual Clerk poderia funcionar como uma espécie de “concierge” para marcas ou serviços premium. Um assistente virtual para nos acompanhar durante as compras ou nos prestar auxilio.
#### :busts_in_silhouette: Personagens
- Operador, pessoa que irá atender os clientes via clerk
- Cliente, pessoa que irá realizar efectuar as suas compras por via online
#### :card_index: Meios
- Sistema de gravação audiovisual
- óculos cam, gopro, smartphone
- Emissor audiovisual
- equipamente informático responsável por transmitir audiovisual até ao cliente via web
- Loja online eCommerce ou App para Smartphone
- ponte de acesso ao Virtual Clerk
***
## :paperclip: Integração
Existindo a possibilidade do vendedor conter uma Loja online ou App, Virtual Clerk pode ser integrado no sistema existente. No entanto, para um funcionamente correto do Virtual Clerk são necessário os seguinte componentes:
* Autenticação singular
* Ficha de cliente
* Cesto de compras
* Sistema de faturação
##### É ainda facultativo a integração de:
* Sistema de senhas
* Histórico de compras
#### :arrows_counterclockwise: Diagrama de compra
```sequence
User->UI: User Login
Note right of User: User access to basket & VC
User->UI: Start new purchase
UI-->VirtualClerk: Ticket number
Note left of VirtualClerk: Clerk responds
User->VirtualClerk: Iteraction
VirtualClerk -->UI: New products into basket
User->UI: Checkout basket
```
## :clipboard: Acções
1. Utilizador entra na plataforma e-Commerce do seu distribuidor e autentica-se com as suas credenciais
2. Utilizador acede à secção na qual pretende assistência "Virtual Clerk" (ex. frescos frutaria, talho, peixaria)
3. É-lhe atribuido uma senha que entra na mesma fila de espera presencial
4. Quando chegada a sua vez, utilizador será atendido por um profissional da área que irá acompanha-lo durante a sua escolha
* A primeira iteração será cordeal, da mesma forma como um atendimento pessoal
* Através do histórico do cliente, o profissional poderá aconselhar a sua escolha
* Após escolha, e pesagem se necessário, o produto é registado no "cesto de compras" online e guardado para posterior recolha
5. Após realizada a compra através VitualClerk, o utilizador pode continuar a sua compra ou proceder à finalização da mesma
6. O utilizador tem um periodo máximo de 4h para pagamento, caso contrário a compra fica sem efeito
***
## :computer: Tecnologias
* Capacidade de Streaming (Publish, Server e Client)
* Integrações com sistemas externos (API, Listeners, etc)
* Multi-plataforma (Web, Android e iOS)
* C#/React
## :electric_plug: Componentes Hardware
* Servidor streaming
* Servidor publicador (outcoming video)
* Capturaçao de video (oculos, mini camera, telemovel)
```sequence
CapVideo->Publicador: Video
Note right of Publicador: tratamento de video
Note right of Publicador: identificação Cod. Barras
Publicador->ServidorStream: Streaming Video
ServidorStream->UI: delivery to end-user
```
## :heavy_plus_sign: Vantagens
A solução Virtual Cleck deverá ser encarada como um complemento às soluções mais tradicionais de venda online, apresentado um conjunto de vantagens:
1. Suporta todas aquelas vendas que dificilmente eram concretizadas via site de compras tradicional, por o cliente ter alguma dúvida, por necessitar de algum esclarecimento adicional, ou por sentir a necessidade de ver o produto;
2. Permite a um operador experiente fazer um engagement com o cliente, potencializando o upselling e o cross-selling;
Quando comparamos a solução Virtual Clerk com outras plataformas que permitem chamadas de video, como o WhatsApp ou o Zoom, identificamos um conjunto de vantagens:
1. O Virtual Clerk está disponível via plataforma eCommerce, o que permite concluir a venda durante o contacto com o cliente, utilizado os métodos de pagamento da plataforma.
2. O cliente, mesmo antes de ser atendido, já é conhecido do sistema, é possível informar o operador do histórico de compras, do método de pagamento configurado, ou até mesmo do processo logístico de entrega escolhido pelo cliente.
3. É possível tratar os momentos de pausa, por exemplo, enquanto o cliente espera pela sua vez de ser atendido, é possível apresentar material promocional para aprofundar a relação com a marca ou potencializar vendas.
4. Permite a combinação de diferentes câmeras, complementado a visão pessoa-a-pessoa com a apresentação dos produtos comercializados.
5. A ligação entre o cliente e o operador é uma ligação directa e segura sem o envolvimento de terceiros
## :link: Links Úteis
* WebRTC
* https://github.com/mgiuliani/webrtc-demo
* https://github.com/muaz-khan/WebRTC-ASPNET-MVC
* https://github.com/webrtc/samples/tree/e6a21017382ac5826556e1be6431733ab348660a/src/content/peerconnection
* Glasses
* https://www.llvision.com/en/col.jsp?id=107 (has is own SDK)
* https://www.axon.com/products/axon-flex-2
* https://iristick.com/products/iristick-z1-essential
* https://www.google.com/glass/start/
* NopCommerce
* https://github.com/nopSolutions/nopCommerce-plugin-template-VS/blob/nopCommerce-4.20/Nop.Plugin%20Template%204.20/Data/CustomObjectContext.cs
*