Encomendas no Google Calendar (dfordercalendar)
Instalar e configurar o envio automático das encomendas PrestaShop para o Google Calendar: credenciais do Google Cloud, ligação OAuth 2.0, personalização dos eventos e resolução de problemas.
Apresentação
O Encomendas no Google Calendar (dfordercalendar) cria automaticamente um evento no seu calendário Google a cada encomenda validada na sua loja PrestaShop 8 ou 9. O evento contém a referência, o cliente, o total, o meio de pagamento, a transportadora, a lista de produtos e a morada de entrega. A ligação utiliza OAuth 2.0 com as suas próprias credenciais do Google Cloud: nenhum dado passa por um servidor de terceiros.
Instalação
- No back-office, abra Módulos e depois Gestor de módulos.
- Clique em Instalar um módulo e selecione o ficheiro dfordercalendar.zip.
- Depois de instalado o módulo, clique em Configurar.
Pré-requisitos: PrestaShop 8.0 a 9.x, PHP 7.4 a 8.3 com a extensão cURL ativa (presente na quase totalidade dos alojamentos).
Criar as credenciais Google (Google Cloud Console)
O módulo liga-se à API do Google Calendar com credenciais OAuth 2.0 que cria uma única vez, em cerca de dez minutos.
1. Criar um projeto e ativar a API
- Abra console.cloud.google.com e inicie sessão com a conta Google dona do calendário de destino.
- Crie um projeto (por exemplo, «Loja PrestaShop»).
- No menu, abra API e serviços e depois Biblioteca, procure «Google Calendar API» e clique em Ativar.
2. Configurar o ecrã de consentimento
- Abra API e serviços e depois Ecrã de consentimento OAuth.
- Escolha o tipo Externo (ou Interno, se estiver no Google Workspace), indique o nome da aplicação e o seu e-mail e grave.
Enquanto a aplicação estiver no estado «Em teste», a Google faz expirar a ligação ao fim de 7 dias. Duas soluções: publicar a aplicação (botão Publicar aplicação, não é exigida qualquer validação para este tipo de utilização) ou acrescentar a sua própria conta à lista de utilizadores de teste e publicar mais tarde. Para uma utilização em produção, publique a aplicação.
3. Criar a credencial OAuth 2.0
- Abra API e serviços e depois Credenciais, clique em Criar credenciais e a seguir em ID de cliente OAuth.
- Tipo de aplicação: Aplicação Web.
- Em «URI de redirecionamento autorizados», cole exatamente o URL apresentado no painel Ligação Google da configuração do módulo (termina em controller=oauth).
- Valide: a Google apresenta o seu Client ID e o seu Client Secret.
O URI de redirecionamento tem de ser copiado tal e qual, incluindo o protocolo https. É a causa número um do erro redirect_uri_mismatch.
Ligação do módulo
- Na configuração do módulo, cole o Client ID e o Client Secret e grave.
- Clique em Ligar a conta Google: a Google pede a autorização de acesso aos seus calendários.
- Valide: uma mensagem confirma a ligação; regresse depois à configuração.
- Em Calendário de destino, escolha o calendário que receberá as encomendas (são listados todos os calendários a que tem acesso de escrita, incluindo os partilhados) e grave.
O token de acesso é renovado automaticamente, pelo que a ligação só é feita uma vez. O botão Desligar elimina os tokens a qualquer momento.
Configuração dos eventos
Modelo de título
O título do evento é composto livremente com as seguintes variáveis:
{reference}: referência da encomenda{customer}: nome próprio e apelido do cliente{total}: total com IVA formatado na moeda da encomenda{payment}: meio de pagamento{carrier}: transportadora{shop}: nome da loja
Exemplo: Encomenda {reference} - {customer} ({total})
Tipo e conteúdo do evento
- Tipo de evento: com data e hora da encomenda (duração ajustável em minutos, fuso horário da loja) ou de dia inteiro.
- Incluir a lista de produtos: acrescenta cada linha com a sua quantidade à descrição.
- Incluir a morada de entrega: acrescentada à descrição e ao campo de local do evento.
- Incluir o e-mail e o telefone do cliente: contactos acrescentados à descrição.
- Atualizar o evento na mudança de estado: acrescenta o estado atual ao título em cada mudança de estado da encomenda.
Funcionamento no dia a dia
Assim que uma encomenda é validada, o evento é criado no calendário de destino. Na ficha da encomenda no back-office, uma caixa Google Calendar apresenta a ligação direta para o evento, ou o estado de sincronização em caso de problema.
O botão «Criar um evento de teste a partir da última encomenda» permite verificar toda a cadeia sem esperar por uma encomenda real.
Falhas e nova tentativa
Uma falha de chamada à API da Google nunca bloqueia a validação da encomenda. A falha é registada com a mensagem de erro exata devolvida pela Google e aparece no painel Sincronizações falhadas da configuração. O botão Repetir os eventos falhados recria com um clique todos os eventos em falta. Os erros ficam também registados nos registos do PrestaShop (Parâmetros avançados e depois Registos).
Resolução de problemas
redirect_uri_mismatch
O URI de redirecionamento declarado na Google Cloud Console não corresponde exatamente ao apresentado pelo módulo. Copie-o novamente a partir da configuração, sem espaços nem caracteres em falta, e verifique o https.
access_denied ou ligação expirada ao fim de 7 dias
A sua aplicação OAuth está no estado «Em teste». Publique-a a partir do ecrã de consentimento OAuth (ver acima) e volte a ligar a conta.
Erro 403: Google Calendar API has not been used
A API do Google Calendar não está ativada no projeto. Regresse à Biblioteca, ative-a, aguarde um minuto e repita os eventos falhados.
Um calendário não aparece na lista
Só são listados os calendários em que a conta ligada tem permissão de escrita. Num calendário partilhado, peça ao proprietário a permissão «Fazer alterações a eventos».
Dados e desinstalação
Os tokens OAuth e o registo de sincronização são guardados na base de dados da sua loja. Os dados da encomenda circulam apenas entre o seu servidor e a API da Google, em HTTPS. A desinstalação do módulo elimina os tokens, a configuração e a tabela de registo; os eventos já criados permanecem no seu calendário Google.