PHPackages                             elcuro/qdl-php-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. elcuro/qdl-php-client

ActiveLibrary

elcuro/qdl-php-client
=====================

Simple PHP client for QDL

05[5 PRs](https://github.com/elcuro/qdl-php-client/pulls)PHP

Since May 23Pushed 1y ago1 watchersCompare

[ Source](https://github.com/elcuro/qdl-php-client)[ Packagist](https://packagist.org/packages/elcuro/qdl-php-client)[ RSS](/packages/elcuro-qdl-php-client/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (6)Used By (0)

PHP QDL Client
==============

[](#php-qdl-client)

About
-----

[](#about)

A simple PHP client for the [QDL](https://www.qdl.sk/) (Slovak logistics company)

Installation
------------

[](#installation)

Install this package as a dependency using [Composer](https://getcomposer.org).

```
composer require elcuro/qdl-php-client
```

Usage
-----

[](#usage)

### Create QDL client

[](#create-qdl-client)

The client is not dependent on any specific HTTP client. It supports any PSR-18 compatible client. E.g.: [Buzz client](https://github.com/kriswallsmith/Buzz)

You do also need to install a PSR-17 request/response factory. It uses that factory to create PSR-7 requests and responses. E.g.: [nyholm/psr7](https://github.com/Nyholm/psr7)

```
use Elcuro\QdlPhpClient\Client\Client;
use Nyholm\Psr7\Factory\Psr17Factory;
use Buzz\Client\Curl;

// We will use Buzz client and nyholm/psr7 factories
$factory = new Psr17Factory();

$client = new Client(
    new Curl($factory),
    $factory,
    $factory,
    'QDL_USERNAME',
    'QDL_PASSWORD'
);
```

### Add/order/cancel shipments

[](#addordercancel-shipments)

```
use Elcuro\QdlPhpClient\Shipping\Shipment\Shipment;
use Elcuro\QdlPhpClient\Shipping\Shipment\ShipmentPackage;
use Elcuro\QdlPhpClient\Shipping\ShipmentManager;

// Create shipment manager
$shipmentManager = new ShipmentManager($client, new AddedShipmentFactory());

// Create shipment
$shipment = new Shipment();
$shipment
    ->setSenderId(1)
    ->setRecipientName('Fake user')
    //...
    ->addPackage(new ShipmentPackage(1))
;

// Add shipment
$addedShipment = $shipmentManager->addShipment($shipment);

// Order unordered shipments
$shipmentManager->order();

// Cancel shipment
$shipmentManager->cancelShipment($addedShipment->getId());
```

### Labels and handover protocols

[](#labels-and-handover-protocols)

```
use Elcuro\QdlPhpClient\Document\DocumentFactory;
use Elcuro\QdlPhpClient\Document\DocumentFetcher;
use Elcuro\QdlPhpClient\Document\Label\LabelType;

// Create document fetcher
$documentFetcher = new DocumentFetcher($client, new DocumentFactory());

// Show label PDF
echo $documentFetcher->fetchLabel([30124122200010], LabelType::A4)->getPDF();

// or show handover protocol
echo $documentFetcher->fetchHandoverProtocol([30124122200010])->getPDF();
```

### Tracking

[](#tracking)

```
use Elcuro\QdlPhpClient\Tracking\TrackLog\TrackLogsFactory;
use Elcuro\QdlPhpClient\Tracking\Tracker;

// Create tracker
$tracker = new Tracker($client, new TrackLogsFactory());

// Fetch track logs
$trackLogs = $tracker->trackShipment(30124122200010);

// Show track logs
foreach ($trackLogs as $trackLog) {
    sprintf(
        "Date: %s, Status: %s\n",
        $trackLog->getDate()->format('Y-m-d'),
        $trackLog->getName()
    );
}
```

Contributing
------------

[](#contributing)

Contributions are welcome! To contribute, please familiarize yourself with [CONTRIBUTING.md](CONTRIBUTING.md).

Copyright and License
---------------------

[](#copyright-and-license)

elcuro/qdl-php-client is copyright © [Juraj Jancuska](mailto:jjancuska@gmail.com)and licensed for use under the terms of the MIT License (MIT). Please see [LICENSE](LICENSE) for more information.

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance28

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity24

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/0325b289c373d03cc450df9e662c86cf8975872864e6fd48ab469199003a2bc3?d=identicon)[elcuro](/maintainers/elcuro)

---

Top Contributors

[![elcuro](https://avatars.githubusercontent.com/u/69106?v=4)](https://github.com/elcuro "elcuro (2 commits)")

### Embed Badge

![Health badge](/badges/elcuro-qdl-php-client/health.svg)

```
[![Health](https://phpackages.com/badges/elcuro-qdl-php-client/health.svg)](https://phpackages.com/packages/elcuro-qdl-php-client)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
