DPD Portugal for WooCommerce FAQ

Esta FAQ é apresentada em Português tendo em conta que a maior parte dos clientes deste plugin são de Portugal.

1) Como transferir a licença de domínio?

Pedir na sua área de cliente, junto à encomenda original, a mudança de domínio

Depois de receber a resposta da Webdados que a licença está libertada, deve ir à configuração do plugin no website antigo, remover a chave e gravar. Depois ir à configuração do plugin no site novo, inserir a mesma chave e gravar. Se o website foi transferido já com a chave na base de dados, deve remover a chave, gravar, inserir de novo e gravar de novo.

2) Porque é que não posso emitir guias de várias encomendas de úma única vez (em bulk)?

Existem várias razões para isso não ser possível, mas as duas principais são:

  • Performance: Não temos como garantir que o seu servidor aguenta fazer tantas chamadas HTTP ao webservice da DPD de uma única vez sem dar timeout.
  • Confirmação de dados: muitas vezes o cliente da sua loja insere mais caracteres do que aqueles que são possíveis de colocar numa guia, ou coloca dados incorrectos, pelo que é importante uma confirmação visual dos dados antes da emissão da mesma.

3) É um método de envio do WooCommerce?

Não. Terá de utilizar os métodos de envio nativos do WooCommerce, ou de plugins de terceiros, para calcular os custos de envio. Este plugin permite apenas a emissão das guias de expedição no sistema da DPD Portugal. Não faz sentido ser este plugin a definir custos de envio porque cada loja tem assim a liberdade de fazer os cálculos como quiser.

5) Estou a ter problemas de conexão e não consigo emitir a guia ou marcar recolhas. O que fazer?

A DPD usa portos TCP não convencionais para os webservices, pelo que terá de solicitar ao seu fornecedor de alojamento web para abrir regras de saída na firewall:

  • URL: cliente.chronopost.pt, TCP: 10003
  • URL: webservices.chronopost.pt, TCP: 7554

6) É possível emitir a guia de expedição automaticamente, em vez de utilizar o formulário no ecrã da encomenda?

Sim, mas apenas com developer hooks, nomeadamente o woo_dpd_portugal_issue_label mencionado em baixo.

Developer hooks disponíveis

Action: woo_dpd_portugal_label_issued

Corre quando é emitida uma guia de expedição, com sucesso.
Parâmetros: $order_id

Action: woo_dpd_portugal_label_issued_error

Corre quando falha a emissão de uma guia de expedição.
Parâmetros: $order_id, $error_message

Action: woo_dpd_portugal_issue_label

Esta acção pode ser corrida por developers para emitir guias de expedição programaticamente, em vez de utilizarem a metabox no ecrã de encomenda. É aconselhável a utilização do filtro woo_dpd_portugal_shipment_data para definição, por exemplo, do serviço / conta de envio a utilizar. Esta acção não verifica se a guia já foi emitida anteriormente, pelo que é prudente verificar antes de correr a mesma, por exempo consultando o order meta woo_dpd_portugal_tracking_number.
Parâmetros: $order_id
Exemplo de utilização: ver GitHub Gist

Action: woo_dpd_portugal_return_issued

Corre quando é emitida uma guia de devolução, com sucesso.
Parâmetros: $order_id

Action: woo_dpd_portugal_return_issued_error

Corre quando falha a emissão de uma guia de devolução.
Parâmetros: $order_id, $error_message

Action: woo_dpd_portugal_issue_return

Esta acção pode ser corrida por developers para emitir guias de devolução programaticamente, em vez de utilizarem a metabox no ecrã de encomenda. É aconselhável a utilização do filtro woo_dpd_portugal_return_data para definição, por exemplo, do serviço / conta de devolução a utilizar. Esta acção não verifica se a guia já foi emitida anteriormente, pelo que é prudente verificar antes de correr a mesma, por exempo consultando o order meta woo_dpd_portugal_return_tracking_number.
Parâmetros: $order_id
Exemplo de utilização: ver GitHub Gist

Action: woo_dpd_portugal_requested_pickup

Corre quando é efectuado um pedido de recolha, com sucesso.
Parâmetros: $pickup_request

Action: woo_dpd_portugal_request_pickup_error

Corre quando falha o pedido de recolha.
Parâmetros: $error

Action: woo_dpd_portugal_request_pickup

Esta acção pode ser corrida por developers para fazer pedidos de recolha nas instalações da loja programaticamente, em vez de usarem ecrã de recolhas. É aconselhável a utilização do filtro woo_dpd_portugal_request_pickup_data para controlar os dados do pedido.
Parâmetros: nenhum

Action: woo_dpd_portugal_request_return_pickup

Esta acção pode ser corrida por developers para fazer pedidos de recolha na morada do cliente programaticamente, em vez de fazerem o pedido juntamente com a emissão da guia de devolução. É aconselhável a utilização do filtro woo_dpd_portugal_request_return_pickup_data para controlar os dados do pedido.
Parâmetros: $order_id

Filter: woo_dpd_portugal_available_services

Permite manipular a lista de serviços DPD disponíveis para configuração das contas de envio e para escolha no momento da emissão das guias de remessa.
Parâmetros: $services
Exemplo de utilização: ver GitHub Gist

Filter: woo_dpd_portugal_default_shipment_service_for_order

Permite alterar o serviço por omissão para uma determinada encomenda.
Parâmetros: $default_service, $order
Exemplo de utilização: ver GitHub Gist (exemplo de criação de novo serviço com o filtro anterior e escolha por omissão com este filtro)

Filter: woo_dpd_portugal_shipment_data

Permite manipular os dados da guia de expedição antes de serem apresentados na metabox no ecrã de encomenda, ou passados para a função de emissão quando é feito de forma programática com a action woo_dpd_portugal_issue_label.
Parâmetros: $shipment_data, $order_id

Filter: woo_dpd_portugal_return_data

Permite manipular os dados da guia de devolução antes de serem apresentados na metabox no ecrã de encomenda, ou passados para a função de emissão quando é feito de forma programática com a action woo_dpd_portugal_issue_return.
Parâmetros: $return_data, $order_id

Filter: woo_dpd_portugal_available_for_order

Devolvendo false permite não mostrar a metabox para emissão de guias de expedição no ecrã de encomendas e prevenir a emissão das mesmas (também programaticamente). Pode ser útil para evitar que sejam emitidas guias, por exemplo, para encomendas cujo método de entrega não é via DPD Portugal.
Parâmetros: bool = true, $order_id

Filter: woo_dpd_portugal_prevent_issue_label

Devolvendo true permite evitar a emissão da guia de expedição, com base em regras definidas pelo dono da loja e com o facto do pedido de emissão ter sido feito programaticamente (com a action woo_dpd_portugal_issue_label) ou não.
Parâmetros: bool = false, $order_id, $programmatically

Filter: woo_dpd_portugal_prevent_issue_return

Devolvendo true permite evitar a emissão da guia de devolução, com base em regras definidas pelo dono da loja e com o facto do pedido de emissão ter sido feito programaticamente (com a action woo_dpd_portugal_issue_return) ou não.
Parâmetros: bool = false, $order_id, $programmatically

Filter: woo_dpd_portugal_tracking_on_emails_html

Permite manipular o HTML (ou plain text) da informação de seguimento que é adicionado aos emails enviados após a emissão da guia de expedição.
Parâmetros: $html, $tracking_numbers, $order, $sent_to_admin, $plain_text