Laravel PostNL API package
Intergrates the PostNL API with Laravel 5 & 6 via a ServiceProvider and Facade.
Instalation
composer require MedSpec/laravel-postnl-api
Add a ServiceProvider to your providers array in config/app.php
:
'providers' => [
//other things here
MedSpec\LaravelPostNLAPI\PostNLAPIServiceProvider::class,
];
Add the facade to the facades array:
'aliases' => [
//other things here
'PostNLAPI' => MedSpec\LaravelPostNLAPI\Facades\PostNLAPI::class,
];
Finally, publish the configuration files:
php artisan vendor:publish --provider="MedSpec\LaravelPostNLAPI\PostNLAPIServiceProvider"
Configuration
Please set your API: url
, key
and Customer code
, number
, location
, email
and address
in the config/postnlapi.php
Usage
To generate a barcode
you can use the following call. To find which type
and serie
to use please check PostNL documentation
$barcode = PostNLAPI::generateBarcode('3S', '00000000000-99999999999');
To generate a label
you can use the following call. To find which PrinterType
, AddressType
and ProductCodeDelivery
to use please check PostNL documentation
use MedSpec\LaravelPostNLAPI\Entities\{Address, Contact};
$label = PostNLAPI::generateLabel(
$barcode,
'GraphicFile|PDF',
[Address::create([
'AddressType' => '01',
'City' => "Testdorp",
'CompanyName' => "Crusty Crab BV",
'Countrycode' => "NL",
'HouseNr' => "1",
'Street' => "Teststraat",
'Zipcode' => "1111AA",
'FirstName' => "Meneer",
'Name' => "Krabs"
]),
Address::create([
'AddressType' => '09',
'City' => "Testdorp",
'CompanyName' => "Crusty Crab BV",
'Countrycode' => "NL",
'HouseNr' => "1",
'Street' => "Teststraat",
'Zipcode' => "1111AA",
'FirstName' => "Meneer",
'Name' => "Krabs"
])],
[Contact::create([
'ContactType' => "01",
'Email' => 'test@meneer.nl',
'SMSNr' => '061111111',
'TelNr' => '061111111'
])],
'01',
'3085',
'This is a reference',
'This is a remark'
);
Note: Watch the Array which needs to be passed in the second and third parameter! Without this it will simply not work!
To get an array of the nearest PostNL locations you can use the following call. You have to pass the CountryCode
and PostalCode
as parameters.
$locations = PostNLAPI::nearestLocations('NL', '1111AA');