mindgoner/laravel-orlen-paczka is a Laravel package.
It currently has 0 GitHub stars and 27 downloads on Packagist.
Install it with composer require mindgoner/laravel-orlen-paczka.
Discover more Laravel packages by mindgoner
or browse all Laravel packages to compare alternatives.
Last updated
This package provides integration with the Orlen Paczka API, allowing you to manage receivers, senders, returns, and business packs. Below are examples of how to use the models and requests provided by the package.
To install the package, use Composer:
composer require mindgoner/laravel-orlen-paczka
To publish configuration files, type command:
php artisan vendor:publish --tag=config
Sending parcels requires configuring OPSender, OPReceiver, OPReturn, OPBusinessPack objects.
You can create a new pracel receiver using the OPReceiver model:
use Mindgoner\LaravelOrlenPaczka\Models\OPReceiver;
$OPReceiver = new OPReceiver();
$OPReceiver->EMail = '[email protected]';
$OPReceiver->FirstName = 'Mind';
$OPReceiver->LastName = 'Goner';
$OPReceiver->CompanyName = 'CompanyName';
$OPReceiver->StreetName = 'Example st.';
$OPReceiver->BuildingNumber = '1';
$OPReceiver->FlatNumber = '';
$OPReceiver->City = 'New York';
$OPReceiver->PostCode = '10069';
$OPReceiver->PhoneNumber = '123123123';
Alternatively, you can set the properties by passing dictionary (works with each model):
use Mindgoner\LaravelOrlenPaczka\Models\OPReceiver;
$OPReceiver = new OPReceiver(
'EMail' => '[email protected]',
'FirstName' => 'Mind',
'LastName' => 'Goner',
'CompanyName' => 'CompanyName',
'StreetName' => 'Example st.',
'BuildingNumber' => '1',
'FlatNumber' => '',
'City' => 'New York',
'PostCode' => '10069',
'PhoneNumber' => '123123123'
);
To create a new sender, use the OPSender model:
use Mindgoner\LaravelOrlenPaczka\Models\OPSender;
$OPSender = new OPSender();
$OPSender->SenderEMail = '[email protected]';
$OPSender->SenderFirstName = 'Mind';
$OPSender->SenderLastName = 'Goner';
$OPSender->SenderCompanyName = 'CompanyName';
$OPSender->SenderStreetName = 'Another Example st.';
$OPSender->SenderBuildingNumber= '1';
$OPSender->SenderFlatNumber = '';
$OPSender->SenderCity = 'New York';
$OPSender->SenderPostCode = '10000';
$OPSender->SenderPhoneNumber = '321321321';
$OPSender->SenderOrders = 'order-number'; // Optionally
OPReturn model is required to configure where to forward package, if parcel coudn't be delivered to receiver.
use Mindgoner\LaravelOrlenPaczka\Models\OPReturn;
$OPReturn = new OPReturn();
$OPReturn->ReturnAvailable = 0;
$OPReturn->ReturnQuantity = 0;
$OPReturn->ReturnFirstName = 'John';
$OPReturn->ReturnLastName = 'Doe';
$OPReturn->ReturnCompanyName = 'ExampleCorp';
$OPReturn->ReturnStreetName = '123 Example Rd';
$OPReturn->ReturnBuildingNumber= '1A';
$OPReturn->ReturnFlatNumber = '5B';
$OPReturn->ReturnCity = 'ExampleCity';
$OPReturn->ReturnPostCode = '12345';
$OPReturn->ReturnPhoneNumber = '555-1234';
$OPReturn->ReturnPack = 0;
$OPReturn->ReturnDestinationCode = 'BD-105772-DB-12',
To create a new business pack, use the OPBusinessPack model:
use Mindgoner\LaravelOrlenPaczka\Models\OPBusinessPack;
$OPBusinessPack = new OPBusinessPack([
'DestinationCode' => 'BD-105772-DB-12',
'AlternativeDestinationCode' => 'BD-105772-DB-12',
'BoxSize' => 'C',
'PackValue' => 100,
'CashOnDelivery' => false,
'AmountCashOnDelivery' => 0,
'Insurance' => 0,
'PrintAddress' => '123 Business St.',
'PrintType' => 'Label',
'TransferDescription' => 'Business pack for delivery'
]);
use Mindgoner\LaravelOrlenPaczka\Requests\GenerateBusinessPack;
$GenerateBusinessPack = new GenerateBusinessPack(
$OPSender,
$OPBusinessPack,
$OPReturn,
$OPReceiver,
);
$response = $GenerateBusinessPack->send(); // Send method returns OP server's Response
Get data from response:
$GenerateBusinessPack->success(); // Returns true if success
$GenerateBusinessPack->getPackCode(); // Returns PackCode
$GenerateBusinessPack->getDestinationCode(); // Returns DestinationCode
$GenerateBusinessPack->getDestinationId(); // Returns DestinationId
$GenerateBusinessPack->getPackPrice(); // Returns PackPrice
$GenerateBusinessPack->getPackPaid(); // Returns PackStatus
use Mindgoner\LaravelOrlenPaczka\Requests\LabelPrintDuplicate;
$LabelPrintDuplicate = new LabelPrintDuplicate(
new OPPack(['PackCode' => '2101077997326'])
);
$LabelPrintDuplicate->get();
$LabelPrintDuplicate->base64(); // Returns label in base64 format
// or
$LabelBinary = $LabelPrintDuplicate->pdf(); // Return label in binary format
return response($LabelBinary)
->header('Content-Type', 'application/pdf')
->header('Content-Disposition', 'inline; filename="label.pdf"');
To order a pickup, use the CallPickup request:
use Mindgoner\LaravelOrlenPaczka\Requests\CallPickup;
$CallPickup = new CallPickup([
'packList' => [
new OPPack(['PackCode' => '2101077997326'])
],
//'readyDate' => date('Y-m-d\T9:00:00', strtotime('+1 day')), // Alternatively (must be in the future)
//'pickupDate' => date('Y-m-d\T17:00:00', strtotime('+1 day')), // Alternatively (must be in the future)
]);
$CallPickup->send();
If you'd like to store DestinationPoints at your server to increase performance, feel free to use following code to publish migrations and setup scheduler, that will update DestinationPoint states at specified time.
Use following code to publish migration files:
php artisan vendor:publish --tag=migrations
Migrate file to database:
php artisan migrate
Publish command:
php artisan vendor:publish --tag=commands
Setup scheduled command executing in app/Console/Kernel.php:
use App\Console\Commands\OPUpdateLocationsList;
$schedule->command('op:update-locations')->dailyAt('05:00');
To implement map widget, use button that should appear, when user selected delivery to PickupMachine:
<button class="orlen-widget">Znajdź na mapie</button> <!-- Modal opening -->
<div class="orlen-widget" data-target="#outputDeliveryPointNameToMyId" style="height: 100%;"></div> <!-- Widget -->
<input id="outputDeliveryPointNameToMyId" name="destinationMachineCode">
Then add to <head> section following:
@OPMap()
Create new variable in your .env file:
OP_MAPTOKEN='put-token-here'