rp-reviews
Objetivo
O sistema de avaliações da loja, em três tabelas que respondem a três perguntas diferentes.
— o que um cliente disse, o que a loja respondeu e se isso estáreviews
no site. A moderação acontece aqui: uma avaliação que veio de fora nasce comoe fica visível apenas dentro do console até que alguém a publique.pending— um link pessoal e de uso único por pedido, e o que aconteceureview_invites
com ele: enviado, aberto, respondido, expirado. Este é o funil que a loja acompanha.— uma linha de JSON: as plataformas externas, o limite, osreview_settings
modelos de e-mail, os atrasos e a permissão para enviar lembretes.
Limite de responsabilidade
É responsável pelas avaliações, convites e configurações do funil. Não sabe nada
sobre pedidos: e Review.orderId são strings opacas, e associá-lasReviewInvite.orderId
a pedidos reais é responsabilidade de (que faz a solicitação) ewf-order-review-request (que exibe). Não é responsável por conversas da comunidade.sf-reviews
Duas portas
O acesso é feito por tag, como em todo lugar: uma avaliação publicada carrega , qualquer outrapublic
carrega mais authenticated, o que permite que a loja ajamoderator
sobre uma avaliação que ninguém da loja escreveu.
A porta do cliente é diferente. , getInviteByToken emarkInviteOpened são autorizados pelo próprio token — uma capacidade, não umasubmitByToken
sessão — para que o formulário público funcione sem nenhum login. Eles retornam uma
visão restrita que não contém nem o contato nem o id do convite, e consome o link condicionalmente, para que duas submissões do mesmo e-mail produzamsubmitByToken
uma avaliação e uma recusa, em vez de duas avaliações.
Controle das avaliações
altera a ênfase do formulário público e nada mais:positiveThreshold
no limite ou acima dele, o autor recebe primeiro as plataformas externas; abaixo dele, recebe
primeiro um contato com a loja. Os links das plataformas continuam visíveis de qualquer forma,
porque mostrar o caminho para uma avaliação pública apenas a clientes satisfeitos é algo que o Google
e várias outras plataformas proíbem. O comportamento seguro é o padrão.
Dependências diretas do módulo
- Nenhuma
Participação na solução
production
Origem
modules/repositories/business/rp-reviews