Contributte Czech-post
Czech Post (opens new window) API client
# Content
# Setup
Require package
composer require contributte/czech-post
Configure extension
extensions:
contributte.czechpost: Contributte\CzechPost\DI\CzechPostExtension
contributte.czechpost:
http:
base_uri: https://online3.postservis.cz/dopisonline/
auth: [dreplech, dreplech]
config:
tmp_dir: '../../some/tmp/dir/path/'
2
3
4
5
6
7
8
9
Note: dreplech/dreplech are CzechPost testing credentials.
# Usage
CpostRootquestor -> *Requestor(s) -> endpoint method
For better usage explanation please see tests/Cases/UsageTest.php
In order to create the consignment you must instantiate Consignment entity.
By passing this entity object to sendConsignment method you should get Dispatch entity as the response.
Among others Dispatch has getId() and getTrackingNumber() methods,
which should be used for calling getConsignmentsOverview and getConsignmentLabel methods.
# Errors
In case of invalid request the RequestException is being thrown.
When there is some problem with getting response or unexpected response data format, the ResponseException is thrown.
# Rootquestor
This is high-level way how to manage API.
/** @var CpostRootquestor @inject */
public $cpost;
public function magic(): void
{
$this->cpost->consignment->sendConsignment($consignment);
$this->cpost->history->status('RRXXYYZZ');
}
2
3
4
5
6
7
8
You can directly pick one of the rootquestor and access his requestors.
# Requestors
You could also directly access individual requestors
/** @var ConsignmentRequestor @inject */
public $consignmentRequestor;
/** @var ParcelHistoryRequestor @inject */
public $parcelHistoryRequestor;
2
3
4
5
ConsignmentRequestor
| Method | API path | Type |
|---|---|---|
| send(Consignment $consignment): Dispatch | .../donApi.php | POST |
| detail(string $id): Dispatch | .../donPrehledZak.php | POST |
| findByDate(DateTime $date): Dispatch[] | .../donPrehledZak.php | POST |
| printLabel(string $trackingNumber): string | .../podlist.php | POST |
| listCancelable(): CancelableDispatch[] | .../donStorno.php | POST |
| cancel(string $id): void | .../donStorno.php | POST |
| fetchPayOffTypes(): string[] | .../vratCiselnik.php | POST |
| fetchPaymentTypes(): string[] | .../vratCiselnik.php | POST |
| fetchIsoCodes(): string[] | .../vratCiselnik.php | POST |
Note: the string returned by getConsignmentLabel method is the content of pdf file.
ParcelHistoryRequestor
Allows you to track the parcel. history() returns the full parcel state history whereas status() returns the last parcel state.
| Method | API path | Type |
|---|---|---|
| isDelivered(string $trackingNumber): bool | https://b2c.cpost.cz/services/ParcelHistory/getDataAsJson?idParcel=%s (opens new window) | GET |
| history(string $trackingNumber): []State | https://b2c.cpost.cz/services/ParcelHistory/getDataAsJson?idParcel=%s (opens new window) | GET |
| status(string $trackingNumber): State | https://b2c.cpost.cz/services/ParcelHistory/getDataAsJson?idParcel=%s (opens new window) | GET |
# Client
This is very low-level of managing API. It's basically only configured Guzzle client with credentials, timeout settings etc.
Official documentation for Guzzle is here (opens new window).
/** @var GuzzleClient @inject */
public $cpostClient;
public function magic(): void
{
$client = $this->cpostClient->get('unprefixed/url/to/resource');
}
2
3
4
5
6
7