FernandoAcosta.Netdocs

REST API

2 min de leituraAtualizado há 5 dias

O WC JadLog adiciona o campo jadlog_tracking_code ao endpoint padrão de pedidos do WooCommerce. Não há rotas próprias do plugin — você usa a REST API do WooCommerce com autenticação normal.

Autenticação

A autenticação é a padrão do WooCommerce: gere um par de chaves em WooCommerce → Configurações → Avançado → API REST e use Basic Auth ou query string ?consumer_key=...&consumer_secret=....

Ler um código de rastreio

GET /wp-json/wc/v3/orders/123

Resposta (campos relevantes):

{
  "id": 123,
  "status": "processing",
  "jadlog_tracking_code": "12345678901234",
  ...
}

Se o pedido não tem código gravado, o campo vem vazio ("").

Definir ou atualizar

PUT /wp-json/wc/v3/orders/123
Content-Type: application/json

{
  "jadlog_tracking_code": "12345678901234"
}

Setar o campo via API tem o mesmo efeito que adicionar manualmente pelo metabox:

  • Dispara o e-mail "código de rastreio" pro cliente.
  • Aplica Status após informar rastreio, se configurado.
  • Registra uma nota interna no pedido.
  • Inclui o pedido no cron de verificação de status.

Múltiplos códigos no mesmo pedido

Se o pedido tem mais de um pacote, separe os códigos por vírgula numa string só:

{
  "jadlog_tracking_code": "12345678901234,98765432109876"
}

O plugin trata cada código independentemente. O pedido só vai para Status após entrega realizada quando todos forem reportados como entregues pela JadLog.

Remover um código

Mande o campo como string vazia:

PUT /wp-json/wc/v3/orders/123
Content-Type: application/json

{
  "jadlog_tracking_code": ""
}

Exemplos

cURL

curl -u ck_xxx:cs_xxx \
  -X PUT https://sua-loja.com/wp-json/wc/v3/orders/123 \
  -H "Content-Type: application/json" \
  -d '{"jadlog_tracking_code":"12345678901234"}'

PHP (cliente HTTP)

wp_remote_request( 'https://sua-loja.com/wp-json/wc/v3/orders/123', array(
    'method'  => 'PUT',
    'headers' => array(
        'Authorization' => 'Basic ' . base64_encode( 'ck_xxx:cs_xxx' ),
        'Content-Type'  => 'application/json',
    ),
    'body'    => wp_json_encode( array(
        'jadlog_tracking_code' => '12345678901234',
    ) ),
) );

PHP (mesmo site, sem HTTP)

Se você está rodando dentro do mesmo WordPress, prefira a função utilitária:

wc_jadlog_update_tracking_code( 123, '12345678901234' );

Mais detalhes em funções utilitárias.

Casos de uso

  • Integração com ERP: ao gerar etiqueta no ERP, faça PUT no pedido WooCommerce com o código retornado.
  • Webhook reverso: quando seu sistema recebe um update de status da JadLog por outro canal, atualize o pedido via REST.
  • Migração: ao importar pedidos antigos com códigos de rastreio existentes, popule o campo em massa via API.
Performance em massa

Cada PUT dispara e-mail ao cliente. Em migração de muitos pedidos, considere desabilitar temporariamente os e-mails de rastreio em WooCommerce → Configurações → E-mails para evitar uma enxurrada de notificações.

Foi útil?