tsekka / omniva
Quick way to connect your php app with Omniva, a Baltic carrier serving Estonia, Latvia and Lithuania. Sends XML data via SOAP. Generates an Omniva order, outputs tracking number & orders package label via email to your email.
Requires
- php: ^8.0
- ext-soap: *
- ext-xmlwriter: *
- guzzlehttp/guzzle: ^7.2
Requires (Dev)
- laravel/pint: ^1.2
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-11-09 08:06:07 UTC
README
Omniva is a shipping carrier serving Baltic countries Estonia, Latvia and Lithuania. With this package, you'll be able to generate parcels and request shipping labels.
Features
- Generate shipments (type of request responds to businessToClientMsgRequest) and get the shipment's barcode.
- Get the shipment's barcode (can be used to show tracking code or to get shipping label).
- Request shipping label to be sent via email from Omniva's server.
- Get parcel label as file.
Installation
You can install the package via composer:
composer require tsekka/omniva
Usage examples
Generating the shipment
This example assumes you'll use the Omniva's parcel machine as the destination and that you know its zip code.
The list of parcel machines is easily available in json, xml and csv formats. Please see the Omniva's manual to get the list of destination points and service codes used in this example.
use Tsekka\Omniva\Client; use Tsekka\Omniva\Parcel; use Tsekka\Omniva\Address; use Tsekka\Omniva\PickupPoint; /** * Set your authentication details. */ $client = new Client( username: 'your Omniva web service username', password: 'your Omniva web service password' ); /** * Set & define delivery service, * pickup point's information * and additional services. */ $parcel = new Parcel( deliveryService: 'PA' ); $pickupPoint = new PickupPoint( offloadPostcode: 96094, type: 0 ); $parcel ->addAdditionalService('ST') ->addAdditionalService('SF'); /** * Set & define receiver and returnee. */ $receiver = new Address(); $receiver->pickupPoint = $pickupPoint; $receiver->name = 'Jane Doe'; $receiver->mobile = '+3725511223'; $receiver->email = 'client@example.com'; $returnee = new Address(); $returnee->country = 'EE'; $returnee->name = 'John Roe'; $returnee->mobile = '+3725566778'; $returnee->email = 'returnee@example.com'; $returnee->postcode = '80040'; $returnee->deliverypoint = 'PARNU'; $returnee->street = 'Savi 20'; $returnee->country = 'EE'; $parcel->receiver = $receiver; $parcel->returnee = $returnee; /** * Generate the shipment & get the barcode */ $barcode = $client->createShipment($parcel);
Getting the shipping label
/** * Request the label to be emailed to you from Omniva's server */ $client->sendLabel($barcode, 'business@example.com'); /** * Or get the content of pdf file & save or output it */ $fileData = $client->getLabel($barcode); $fileName = "label_{$barcode}.pdf"; file_put_contents(storage_path() . "/{$fileName}", base64_decode($fileData)); header('Content-type: application/pdf'); header('Content-Disposition: attachment; filename="' . $fileName . '"'); echo base64_decode($fileData);
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Contributions are welcome and will be credited.
Security Vulnerabilities
Please report security vulnerabilities by email pintek@pintek.ee
.
Credits
License
The MIT License (MIT). Please see License File for more information.