brew / intelipost
Laravel package for Intelipost shipping quote integration
Installs: 1 158
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/brew/intelipost
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.8
- illuminate/database: ^11.0 || ^12.0
- illuminate/http: ^11.0 || ^12.0
- illuminate/support: ^11.0 || ^12.0
Requires (Dev)
- orchestra/testbench: ^9.0 || ^10.0
- pestphp/pest: ^3.5
- pestphp/pest-plugin-laravel: ^3.0
README
Esta é uma package Laravel para integração com a API de cotação de fretes da Intelipost.
Instalação
- Instale via Composer:
composer require brew/intelipost
- Publique os arquivos de configuração e migrations:
php artisan vendor:publish --provider="Brew\Intelipost\Providers\IntelipostServiceProvider"
- Execute as migrations:
php artisan migrate
- Configure suas credenciais no arquivo
.env:
INTELIPOST_API_KEY=sua-chave-api INTELIPOST_DEFAULT_ORIGIN_ZIP_CODE=seu-cep-padrao
Uso
Exemplo Básico
use Brew\Intelipost\Facades\Intelipost; use Brew\Intelipost\DTO\{ QuoteRequestData, VolumeData, AdditionalInformationData, IdentificationData }; // Crie o volume $volume = new VolumeData( weight: 0.5, volume_type: 'BOX', cost_of_goods: 100, width: 10, height: 10, length: 25 ); // Informações adicionais $additionalInfo = new AdditionalInformationData( free_shipping: false, extra_cost_absolute: 0, extra_cost_percentage: 0, lead_time_business_days: 0, sales_channel: 'hotsite', tax_id: '22337462000127', client_type: 'gold', payment_type: 'CIF', is_state_tax_payer: false ); // Informações de identificação $identification = new IdentificationData( session: uniqid(), page_name: 'carrinho', url: 'http://seu-site.com.br/checkout/cart/' ); // Crie a requisição de cotação $quoteRequest = new QuoteRequestData( destination_zip_code: '04037-003', volumes: [$volume], additional_information: $additionalInfo, identification: $identification ); // Faça a cotação try { $quote = Intelipost::quote($quoteRequest); // Acesse os resultados foreach ($quote['content']['delivery_options'] as $option) { echo "Método: {$option['delivery_method_name']}\n"; echo "Prazo: {$option['delivery_estimate_business_days']} dias úteis\n"; echo "Custo: R$ {$option['final_shipping_cost']}\n"; } } catch (\Brew\Intelipost\Exceptions\IntelipostException $e) { echo "Erro: " . $e->getMessage(); }
Logs
A package automaticamente registra todas as requisições e respostas na tabela intelipost_logs. Você pode acessá-las através do modelo IntelipostLog:
use Brew\Intelipost\Models\IntelipostLog; // Buscar todos os logs $logs = IntelipostLog::all(); // Buscar logs específicos $logs = IntelipostLog::where('endpoint', 'quote') ->where('status_code', 200) ->get();
Personalização
Você pode substituir o CEP de origem padrão durante a requisição:
$quoteRequest = new QuoteRequestData( destination_zip_code: '04037-003', origin_zip_code: '01153-000', // Sobrescreve o CEP padrão volumes: [$volume] );
Testes
A package inclui testes usando o framework Pest. Para executar os testes:
vendor/bin/pest
Requisitos
- PHP 8.2 ou superior
- Laravel >=11.0
Contribuindo
Contribuições são bem-vindas! Por favor, sinta-se à vontade para submeter um Pull Request.
Licença
Esta package é um software open-source licenciado sob a licença MIT.