betocampoy/jadlog-sdk

SDK PHP para integrar Jadlog (frete, pedidos, tracking, DACTE, PUDOs, QRCode)

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/betocampoy/jadlog-sdk

v0.1.0 2025-10-14 16:42 UTC

This package is auto-updated.

Last update: 2025-10-14 19:17:56 UTC


README

SDK PHP (compatível com Symfony 7.2+) para integração com a Jadlog:

  • Cálculo de frete
  • Criação e cancelamento de pedidos (ordens de coleta)
  • Rastreamento (tracking completo e simples)
  • DACTE XML
  • PUDOs (pickup points)
  • QRCode pickup/dropoff

🧩 Instalação

composer require betocampoy/jadlog-sdk

Ou durante testes locais (sem Packagist):

{
  "repositories": [
    { "type": "path", "url": "../jadlog-sdk", "options": {"symlink": true} }
  ],
  "require": {
    "betocampoy/jadlog-sdk": "*@dev"
  }
}

⚙️ Uso básico

use BetoCampoy\JadlogSdk\JadlogClient;
use BetoCampoy\JadlogSdk\Builders\QuoteBuilder;

$token = 'SEU_TOKEN_JADLOG';
$sdk = JadlogClient::create($token);

$payload = QuoteBuilder::make()
    ->cepOrigem('14801000')
    ->cepDestino('04094002')
    ->modalidade(3)
    ->cnpj('00000000000000')
    ->conta('000000')
    ->peso(750) // em gramas
    ->valorDeclarado(120.00)
    ->build();

$result = $sdk->quote($payload, pesoEmGramas: true);

print_r($result);

🔍 Métodos principais

Método Descrição
quote($payload, pesoEmGramas=false) Cotação de frete
createOrder($payload, pesoEmGramas=false) Inclusão de ordem de coleta
cancelOrderByShipmentId($id) Cancela pedido pelo ShipmentId
cancelOrderByCodigo($codigo) Cancela pedido pelo código Jadlog
track($consulta, $simples=false) Consulta tracking
getDacteXml($dacte) Retorna XML do DACTE
listPudosByCep($cep) Lista PUDOs próximos
getPickupDropoffQrCode($id) Retorna QRCode em base64
getLastRequestJson() Último request (JSON)
getLastResponseRaw() Último response (texto)

🧪 Testes

./vendor/bin/phpunit --testdox

🔄 Fallback e contingência

Cada endpoint tem um host principal e um backup. Se o principal falhar (timeout, DNS, HTTP 5xx), o SDK tenta automaticamente o backup (.com.com.br).

⚖️ Licença

MIT License © Beto Campoy