O ficheiro zip e um script de verificação reproduzível estão incluídos na versão candidata.
Instalação
Obtenha o ficheiro saazly-chat.zip através do canal de distribuição indicado pela Saazly.
Abra Plugins no WordPress Admin, selecione Adicionar novo e Carregar plugin.
Instale o ficheiro zip e ative o Saazly Chat.
Abra Definições e Saazly Chat. Cole o Widget ID da Saazly e guarde.
Abra a página pública da loja e confirme que o botão do chat é apresentado.
Para permitir a leitura de encomendas, um administrador do WooCommerce cria uma chave da REST API com permissão read e liga a loja em Definições e Ligações de encomendas na Saazly.
Permissões e scopes
Apenas os utilizadores com manage_options podem alterar o Widget ID.
O plugin não necessita de permissões específicas do WooCommerce e não utiliza chaves da REST API.
A ligação separada ao servidor utiliza uma chave da WooCommerce REST API com permissão read. A Saazly não escreve dados de encomendas, pagamentos, fulfillment ou clientes.
Um e-mail ou número de encomenda isolado nunca produz uma correspondência verificada. O número da encomenda tem de ser combinado com o nome ou e-mail que consta na encomenda do fornecedor.
Dados lidos e escritos
O Widget ID público guardado. A página de definições pode ler o nome público do widget a partir da Saazly.
Um único valor de opção do WordPress com o Widget ID público.
O widget pode ler os produtos, as quantidades, o preço e a moeda do carrinho atual do visitante. Trata-se de contexto comportamental, não de dados de encomenda verificados.
O adaptador do servidor lê o ID da encomenda, o número de encomenda visível para o cliente, o montante, a moeda, o estado do pagamento, o estado do fulfillment, as entregas, as datas e horas do fornecedor, a fonte e a atualidade dos dados.
Webhooks
A versão 1.0.0 do plugin do widget não regista nem recebe webhooks.
A ligação ao servidor regista order.created e order.updated. Cada entrega é verificada com HMAC SHA 256, desduplicada através do delivery id e reconciliada com a hora modified do fornecedor.
Uma execução assinada no servidor lê as encomendas alteradas no WooCommerce e repõe os webhooks em falta, sem permitir que eventos mais antigos substituam dados mais recentes.
O widget carregado utiliza a configuração pública do widget e o serviço de chat da Saazly, de acordo com a política de privacidade da Saazly.
Armazenamento de tokens
O plugin do widget não armazena access tokens, refresh tokens, chaves de API ou palavras-passe.
A consumer key, o consumer secret e o webhook secret são encriptados com AES 256 GCM antes de serem escritos na base de dados. Os clientes autenticados não têm acesso aos valores na tabela.
O Widget ID é um identificador público e é armazenado como valor de opção do WordPress.
Desinstalação
Desative o Saazly Chat em Plugins.
Elimine o plugin se pretender removê-lo por completo.
Ao eliminar, o uninstall.php remove a chave de opção saazly_chat_widget_id de uma instalação normal, de cada site numa rede WordPress multisite e das site options da rede.
A limpeza dos dados do navegador é gerida pelo processo habitual de eliminação de dados da Saazly e não é afetada pela remoção dos ficheiros do WordPress.
A ligação às encomendas é desativada separadamente na Saazly. As credenciais encriptadas são eliminadas, o acesso local é bloqueado e os webhooks de encomendas registados são removidos no WooCommerce quando a loja responde.
Resolução de problemas
Copie o valor UUID completo da Saazly. Os espaços são removidos, mas os valores incompletos não são guardados.
Confirme que o plugin está ativo, que o Widget ID foi guardado e que a Content Security Policy da página permite cdn.saazly.com.
O Widget ID é guardado mesmo que a verificação do nome falhe temporariamente. Confirme as ligações HTTPS de saída do servidor WordPress.
Confirme que a chave tem permissão read, que o endereço HTTPS é exato e que o estado do sistema apresenta o mesmo endereço do site.
Consulte o estado da integração na Saazly. A repetição de webhooks é segura e a reconciliação obtém as encomendas alteradas desde o último cursor.
Envie o domínio da loja, a data e hora e a mensagem de erro. Nunca envie tokens nem palavras-passe.