Abrasel-Nacional / docs

https://abrasel-nacional.github.io/docs/
Apache License 2.0
11 stars 4 forks source link

[e-Deploy] Melhorar especificação das responsabilidades de "Ordering Application", "Software Service" e Merchant #82

Closed eduardoalmeida closed 2 years ago

eduardoalmeida commented 2 years ago

Melhorar a especificação do processo esperado para integração entre "Ordering Application" e "Software Service" definindo as responsabilidades de cada lado e também do dono do estabelecimento.

Pelo meu entendimento o processo seria algo parecido com: 1 - Dono do estabelecimento (cliente) descobre o App-Id e a URL base do Ordering Application (através de documentação, tela de cadastro). A responsabilidade de prover essas informações para o cliente seria do "Ordering Application". 2 - Cliente cadastra o "Ordering Application" no sistema do "Software Service" e obtem API-KEY e URL base do "Software Service" ( para webhook e atualização de cardápio) daquele parceiro 3 - Cliente cadastra a API-KEY do "Software Service" no "Ordering Application" (Opcional pois cardápio pode ser aberto) Como temos um loop ("Orderng Application" precisa de API-KEY e URL base para cadastrar "Software Service" e "Software Service" precisa de App-Id e URL base para cadastar "Ordering Application") ambos deveriam deixar o cadastro aberto (sem obrigatoriedade de todas as informações) para que o cliente possa começar o cadastro de qualquer um dos lados. 4 - Cliente obtem o client_id e client_secret das lojas que deseja integrar do "Ordering Application" 5 - Cliente cadastra client_id e client_secret das lojas que desja integrar no "Software Services"

Cada "Ordering Application" e "Software Service" escolheria a melhor forma de prover as informações necessárias para o cliente e cadastrar as informações que o cliente obteve do outro lado. A responsabilidade de trafegar as informações de um lado para o outro ficaria com o cliente.

Dessa forma o cliente conseguiria ligar e desligar as integrações da maneira que desejasse sem a necessidade de de que "Ordering Application" e "Software Service" entrem em contato para habilitar a integração.

Esse entendimento das responsabilidades não está claro na documentação e alguns cenários podem ser entendidos: Como no issue https://github.com/Abrasel-Nacional/docs/issues/57 onde o entendimento de que o App-Id seria por integração e de responsabilidade do "Software Service" gerar é válido.

Em integração com a DeliveryVIP a responsabilidade de obter o client_id e client_secret acabou ficando para o "Software Service": foi feito um cadastro de aplicações e o client_id e client_secret é por aplicação. Como foi especificado que essa informação seria por loja, foi sugerido criar uma aplicação por loja. Este pode ser um entendimento válido também mas a resposabilidade de obter as informações acaba ficando para o "Software Service" ao invés do cliente o que aumentaria a dificuldade de integração.

É preciso definir as responsabilidade de gerar, cadastrar e transportar as informações para que todos sigam da mesma forma.

Minha sugestão de responsabilidades está acima pois é o fluxo que não há trabalho nem para o "Software Service" nem para o "Ordering Application" dando total independência ao cliente para ligar e desligar as integrações da maneira que desejar.

gui-camargo commented 2 years ago

Olá @eduardoalmeida, conforme conversamos no comitê, vou criar uma seção nova na documentação, onde vou procurar definir as responsabilidades de cada um dos lados da integração. Assim que estiver pronto coloco aqui na issue, para avaliação de todos.

gui-camargo commented 2 years ago

Conforme discutido na reunião do comitê do dia 03/02/2022, foi adicionada uma nova seção chamada How to Start, para auxiliar as empresas nas implementações e parametrizações.

Já está disponível na versão rc-10.