PS PrestaShop Iniciante

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.

Atualizado Versão do módulo 1.0.0

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

  1. No back-office, abra Módulos e depois Gestor de módulos.
  2. Clique em Instalar um módulo e selecione o ficheiro dfordercalendar.zip.
  3. 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

  1. Abra console.cloud.google.com e inicie sessão com a conta Google dona do calendário de destino.
  2. Crie um projeto (por exemplo, «Loja PrestaShop»).
  3. No menu, abra API e serviços e depois Biblioteca, procure «Google Calendar API» e clique em Ativar.

2. Configurar o ecrã de consentimento

  1. Abra API e serviços e depois Ecrã de consentimento OAuth.
  2. 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

  1. Abra API e serviços e depois Credenciais, clique em Criar credenciais e a seguir em ID de cliente OAuth.
  2. Tipo de aplicação: Aplicação Web.
  3. 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).
  4. 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

  1. Na configuração do módulo, cole o Client ID e o Client Secret e grave.
  2. Clique em Ligar a conta Google: a Google pede a autorização de acesso aos seus calendários.
  3. Valide: uma mensagem confirma a ligação; regresse depois à configuração.
  4. 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.

Esta página foi útil?

Ainda com dúvidas? Contacte o suporte