Wallogit.com
2017 © Pedro Peláez
AlleKurier api
Composer:, (*1)
composer require allekurier/api_v1
Zip:, (*2)
require __DIR__ . '/my_path/allekurier/api_v1/AutoLoader.php'; allekurier\api_v1\AutoLoader::init(__DIR__ . '/my_path');
$credentials = new allekurier\api_v1\Credentials('login', 'hasło');
$api = new allekurier\api_v1\AKAPI($credentials);
Funkcja zwraca HID zlecenia, numer listu przewozowego, aktualny status, koszt przesyłki., (*3)
Poprawnym wyjściem jest status ready. W sytuacji gdy zwrócony status będzie równał się processing należy zapisać HID zlecenia i w określonym interwale czasowym sprawdzać (funkcja getStatus) czy zlecenie zostało już przetworzone, aby kontynuować przetwarzanie (pobranie i wydruk dokumentów). Przyczyną stanu processing może np. być awaria systemu przewoźnika., (*4)
$order = new allekurier\api_v1\model\Order(
'nazwa usługi',
'typ opakowania',
'opis przesyłki',
'metoda odbioru',
'kwota pobrania',
'kwota ubezpieczenia',
'numer referencyjny',
'wartość towaru',
'voucher'
);
$sender = new allekurier\api_v1\model\Sender(
'nazwa nadawcy',
'osoba kontaktowa',
'kod pocztowy',
'adres',
'miasto',
'telefon',
'email',
'kod państwa',
'punkt przewoźnika',
'numer konta bankowego'
);
$recipient = new allekurier\api_v1\model\Recipient(
'nazwa odbiorcy',
'osoba kontaktowa',
'kod pocztowy',
'adres',
'miasto',
'telefon',
'email',
'kod państwa',
'punkt przewoźnika',
'kod stanu'
);
// Wymagany gdy Order - metoda odbioru = register
$pickup = new allekurier\api_v1\model\Pickup(
'data odbioru',
'od godz',
'do godz'
);
$packages = new allekurier\api_v1\model\Packages([
new allekurier\api_v1\model\Package('waga', 'szerokość', 'wysokość', 'długość', 'czy standardowa')
]);
$additionalServices = [
'sms',
'email_notif_delivered'
];
$action = new allekurier\api_v1\action\CreateOrderAction(
$order,
$sender,
$recipient,
$packages,
$pickup,
$additionalServices
);
$response = $api->call($action);
if ($response->hasErrors()) {
var_dump($response->getErrors());
} else {
echo $response->number();
echo $response->hid();
echo $response->cost();
echo $response->status();
}
curl -X POST \
https://allekurier.pl/api_v1/order_create \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'User%5Bemail%5D=*email*
&User%5Bpassword%5D=*haslo*
&Order%5Bpackage%5D=*typ_opakowania*
&Order%5Bcod%5D=*kwota_pobrania*
&Order%5Binsurance%5D=*kwota_ubezpieczenia*
&Order%5Bdelivery%5D=*metoda_odbioru*
&Order%5Bservice%5D=*nazwa_uslugi*
&Order%5Bdescription%5D=*opis_przesylki*
&Order%5Bvalue%5D=*wartosc_towaru*
&Sender%5Bcountry%5D=*kod_kraju*
&Sender%5Bphone%5D=*telefon*
&Sender%5Baddress%5D=*adres*
&Sender%5Bpostal_code%5D=*kod_pocztowy*
&Sender%5Bperson%5D=*osoba_kontaktowa*
&Sender%5Bcity%5D=*miasto*
&Sender%5Bemail%5D=*email*
&Sender%5Bname%5D=*nadawca*
&Sender%5Bbank_account%5D=*numer_banku_do_zwrotu_pobrania*
&Sender%5Bdropoff_point%5D=*kod_punktu_przewoznika*
&Recipient%5Bcountry%5D=*kod_kraju*
&Recipient%5Bpostal_code%5D=*kod_pocztowy*
&Recipient%5Bphone%5D=*telefon*
&Recipient%5Bcity%5D=*miasto*
&Recipient%5Bname%5D=*odbiorca*
&Recipient%5Bperson%5D=*osoba_kontaktowa*
&Recipient%5Baddress%5D=*adres*
&Recipient%5Bemail%5D=*email*
&Packages%5B0%5D%5Bweight%5D=*waga_paczki*
&Packages%5B0%5D%5Bheight%5D=*wysokosc_paczki*
&Packages%5B0%5D%5Bwidth%5D=*szerokosc_paczki*
&Packages%5B0%5D%5Blength%5D=*dlugosc_paczki*
&Packages%5B0%5D%5Bcustom%5D=*czy_standardowa*
&Pickup%5Bdate%5D=*data*
&Pickup%5Bfrom%5D=*od_godz*
&Pickup%5Bto%5D=*do_godz*
&Services%5B0%5D=*nazwa_uslugi*'
{
"Error":[],
"Response":{
"hid":"",
"number":null,
"cost":"12.76",
"status":"processing"
}
}
Zwraca podstawowe informacja o zleceniu na podstawie jego numeru. Służy do pobierania ostatniego zdarzenia z historii zlecenia (statusu), numeru przesyłki i śledzenia, oraz dat (utworzenie, nadanie, doręczenie)., (*5)
$action = new allekurier\api_v1\action\GetOrderStatusAction('hid przesyłki');
$response = $api->call($action);
if ($response->hasErrors()) {
var_dump($response->getErrors());
} else {
echo $response->hid();
echo $response->number();
echo $response->traceNumber();
echo $response->created();
echo $response->sent();
echo $response->delivered();
echo $response->date();
echo $response->name();
echo $response->status();
}
curl -X POST \
https://allekurier.pl/api_v1/order_status \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'User%5Bemail%5D=*email*
&User%5Bpassword%5D=*haslo*
&hid=*hid*'
{
"Error": [],
"Response": {
"Order": {
"hid": "",
"number": null,
"trace_number": null,
"created": "2017-11-16 13:39:58",
"sent": null,
"delivered": null,
"status": "canceled"
},
"Event": {
"date": "2017-11-16 13:41:06",
"status": "canceled",
"name": "Anulowane"
}
}
}
Pobieranie dokumentów do wydruku. Funkcja zwraca zakodowany (base64) pdf z listami przewozowymi. W przypadku DPD domyślnie zwracany jest protokół przekazania towaru. Dokumenty można drukować tylko gdy status zlecenia ustawiony jest na ready., (*6)
$action = new allekurier\api_v1\action\GetOrderLabelAction(
'numer przesyłki',
'czy pobierać małe etykiety?' // true/false (parametr opcjonalny)
);
$response = $api->call($action);
if ($response->hasErrors()) {
var_dump($response->getErrors());
} else {
file_put_contents('my_path/label.pdf', $response->label());
}
curl -X POST \
https://allekurier.pl/api_v1/order_label \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'User%5Bemail%5D=*email*
&User%5Bpassword%5D=*haslo*
&number=*numer_przesylki*'
{
"Error":[],
"Response":{
"Order":{
"hid":"",
"number":"",
"status":"ready"
},
"label":""
}
}
Śledzenie przesyłki. Zwracana jest data każdego zdarzenia, kod oraz opis. Dodatkowo podawane są HID zlecenia, data utworzenia, faktycznego nadania oraz doręczenia (lub zwrotu do nadawcy). Zwraca tablicę zdarzeń Event, (*7)
$action = new allekurier\api_v1\action\GetOrderHistoryAction('numer przesyłki');
$response = $api->call($action);
if ($response->hasErrors()) {
var_dump($response->getErrors());
} else {
foreach ($response->history() as $event) {
echo $event->date();
echo $event->name();
echo $event->status();
}
}
curl -X POST \
https://allekurier.pl/api_v1/order_history \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'User%5Bemail%5D=*email*
&User%5Bpassword%5D=*haslo*
&number=*numer_przesylki*'
{
"Error": [],
"Response": {
"Order": {
"hid": "",
"number": "",
"created": "2017-11-14 11:49:11",
"sent": null,
"delivered": null
},
"Event": [
{
"date": "2017-11-14 11:49:11",
"status": "created",
"name": "Zlecenie utworzone"
},
...
]
}
}
Anulowanie zlecenia na podstawie numeru. Listy przewozowe UPS należy bezwzględnie anulować, nawet w sytuacji gdy kurier nie odbierze przesyłki (mimo to naliczana jest opłata za transport!). Przyjmujemy że bez względu na przewoźnika list przewozowy należy anulować. Anulowanie listu powoduje anulowanie zlecenia odbioru z danej lokalizacji., (*8)
$action = new allekurier\api_v1\action\CancelOrderAction('numer przesyłki');
$response = $api->call($action);
if ($response->hasErrors()) {
var_dump($response->getErrors());
} else {
if ($response->isCanceled()) {
echo 'Anulowane';
}
}
curl -X POST \
https://allekurier.pl/api_v1/order_cancel \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'User%5Bemail%5D=*email*
&User%5Bpassword%5D=*haslo*
&number=*numer_przesylki*'
{
"Error": [],
"Response": {
"status": 1
}
}
Metoda zwraca dostępne usługi wraz z kwotami dla podanych danych. Zwraca tablicę usług Service, (*9)
$order = allekurier\api_v1\model\Order::createForPricing(
'typ opakowania',
'kwota pobrania',
'kwota ubezpieczenia'
);
$sender = allekurier\api_v1\model\Sender::createForPricing(
'kod państwa',
'kod pocztowy tylko dla palet'
);
$recipient = allekurier\api_v1\model\Recipient::createForPricing(
'kod państwa',
'kod pocztowy tylko dla palet'
);
$packages = new allekurier\api_v1\model\Packages([
new allekurier\api_v1\model\Package('waga', 'szerokość', 'wysokość', 'długość', 'czy standardowa')
]);
$action = new allekurier\api_v1\action\GetServicesAction($order, $sender, $recipient, $packages);
$response = $api->call($action);
if ($response->hasErrors()) {
var_dump($response->getErrors());
} else {
foreach ($response->services() as $service) {
echo $service->carrierCode();
echo $service->carrierName();
echo $service->code();
echo $service->name();
echo $service->net();
echo $service->gross();
}
}
Metoda zwraca dostępne dodatkowe usługi danej usługi wraz z kwotami dla podanych danych. Zwraca tablicę usług dodatkowych AdditionalService, (*10)
$action = new allekurier\api_v1\action\GetAdditionalServicesAction('nazwa uslugi', 'typ opakowania');
$response = $api->call($action);
if ($response->hasErrors()) {
var_dump($response->getErrors());
} else {
foreach ($response->services() as $service) {
echo $service->code();
echo $service->name();
echo $service->net();
}
}
curl -X POST \
https://allekurier.pl/api_v1/additional_services \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'User%5Bemail%5D=*email*
&User%5Bpassword%5D=*haslo*
&service=*kod_uslugi*
&package=*typ_opakowania*'
{
"Error": [],
"Response": {
"cod_instant": {
"name": "Pobranie Natychmiastowe (1 dzień)",
"price": "2.00"
},
"rod": {
"name": "Zwrot dokumentów",
"price": "13.00"
}
}
}
Metoda zwraca możliwe godziny odbioru przesyłki przez danego przewoźnika dla zadanego kodu pocztowego. Tablica „from” określa godziny startowe okienka na odbiór, tablica „to” zawiera możliwe końce okienek, Wartości liczone w sekundach od północy np. godzina 11:00 = 11 * 3600 = 39600. Zwaraca tablicę dat PickupDate, (*11)
$action = new allekurier\api_v1\action\GetPickupDatesAction('przewoźnik', 'kod pocztowy', 'kod państwa');
$response = $api->call($action);
if ($response->hasErrors()) {
var_dump($response->getErrors());
} else {
foreach ($response->dates() as $date) {
echo $date->date();
echo $date->description();
var_dump($date->from());
var_dump($date->to());
}
}
curl -X POST \
https://allekurier.pl/api_v1/pickup_dates \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'User%5Bemail%5D=*email*
&User%5Bpassword%5D=*haslo*
&carrier=*przewoznik*
&postal_code=*kod_pocztowy*
&country=*kod_kraju*'
{
"Error": [],
"Response": [
{
"date": "2017-11-16",
"description": "Dzisiaj",
"from": {
"41400": "11:30",
"43200": "12:00"
},
"to": {
"57600": "16:00"
},
"to_minima": {
"41400": 57600,
"43200": 57600
},
"call_to": 43200,
"class": "todayPickupDate",
"call_to_formatted": "12:00"
},
...
]
}
Metoda zwraca punkty wybranego przewoźnika w okolicy od podanego kodu pocztowego. Zwraca tablicę punktów DropoffPoint, (*12)
$action = new allekurier\api_v1\action\GetDropoffPointsAction('przewoźnik', 'kod pocztowy');
$response = $api->call($action);
if ($response->hasErrors()) {
var_dump($response->getErrors());
} else {
foreach ($response->points() as $point) {
echo $point->id();
echo $point->latitude();
echo $point->longitude();
echo $point->name();
echo $point->code();
echo $point->address();
echo $point->postalCode();
echo $point->image();
echo $point->openHours();
echo $point->isSupportCod();
}
}
curl -X POST \
https://allekurier.pl/api_v1/access_points \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'User%5Bemail%5D=*email*
&User%5Bpassword%5D=*haslo*
&carrier=*przewoznik*
&postal_code=*kod_pocztowy*'
{
"Error":[],
"Response":{
"Coordinates":{
"longitude":"",
"latitude":""
},
"AccessPoints":[
{
"AccessPoints":{
"id":"",
"latitude":"",
"longitude":"",
"code":"",
"name":"",
"address":"",
"address2":null,
"postal_code":"",
"city":"",
"image_url":null,
"open_hours":null,
"cod":"0"
},
"0":{
"diff":""
}
},
...
]
}
}
Metoda zwraca stan konta użytkownika, (*13)
$action = new allekurier\api_v1\action\GetUserBalanceAction;
$response = $api->call($action);
if ($response->hasErrors()) {
var_dump($response->getErrors());
} else {
echo $response->balance();
}
curl -X POST \
https://allekurier.pl/api_v1/user_balance \
-H 'accept: application/json' \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'User%5Bemail%5D=*email*
&User%5Bpassword%5D=*haslo*'
{
"Error": [],
"Response": [
{
"User": {
"hid": "XXXXXX",
"balance": "0.00",
"free": "0.00"
}
}
]
}
| Pole | Opis | Wymagane | Typ | Opis |
|---|---|---|---|---|
| service | Nazwa usługi | tak | string | dpdclassic, dhlstandard, upsexpresssaver, upsstandard, kexstandard, inpostcourier, paczkawruchu |
| package | Typ opakowania | tak | string | parcel, envelope, europallet, isopallet, bigpallet |
| description | Opis przesyłki | tak | string | |
| delivery | Metoda odbioru | tak | string | register - Zamawiam kuriera po odbiór przesyłki, br/ none - Dostarczę przesyłkę do punktu przewoźnika. |
| cod | Kwota pobrania | nie | float | |
| insurance | Kwota ubezpieczenia | nie | float | |
| reference | Numer referencyjny | nie | string | np. numer faktury, zamówienia |
| value | Wartość towaru | nie | float | Wymagane przy przesyłkach poza Unię Europejską |
| voucher | Kod vouchera | nie | string | |
| Pole | Opis | Model | Wymagane | Typ | Opis |
|---|---|---|---|---|---|
| name | Odbiorca / Nadawca | S & R | tak | string | imię nazwisko / nazwa firmy |
| person | Osoba kontaktowa | S & R | tak | string | imię nazwisko osoby kontakowej |
| postal_code | Kod pocztowy | S & R | tak | string | |
| address | Adres | S & R | tak | string | ulica, numer domu / mieszkania |
| city | Miasto | S & R | tak | string | |
| phone | Telefon | S & R | tak | string | |
| S & R | tak | string | |||
| country | Kod kraju | S & R | tak | string | ISO 3166-1 alfa-2 |
| dropoff_point | Kod punktu przewoźnika | S & R | nie | string | Punkty przewoźników |
| bank_account | Numer konta bankowego | S | nie | string | wymagane gdy podano Order.cod |
| state | Kod stanu | R | nie | string | wymagane dla USA i Kanady |
| Pole | Opis | Wymagane | Typ | Przykład |
|---|---|---|---|---|
| date | Data | tak | string | 2017-01-20 |
| from | Od godz | tak | string | 12:00:00 |
| to | Do godz | tak | string | 16:00:00 |
| Pole | Opis | Wymagane | Typ | Opis |
|---|---|---|---|---|
| weight | Waga | tak | float | |
| width | Szerokość | tak | float | |
| height | Wysokość | tak | float | |
| length | Długość | tak | float | |
| custom | Czy standard | tak | bool | Paczka standardowa / niestandardowa |
| Pole | Opis | Typ |
|---|---|---|
| carrierCode | Kod przewoźnika | string |
| carrierName | Nazwa przewoźnika | string |
| code | Kod usługi | string |
| name | Nazwa usługi | string |
| net | Koszt netto | float |
| gross | Koszt brutto | float |
| Pole | Opis | Typ |
|---|---|---|
| code | Kod usługi | string |
| name | Nazwa usługi | string |
| net | Koszt netto | float |
| Pole | Opis | Typ |
|---|---|---|
| id | Id punktu | int |
| latitude | string | |
| longitude | string | |
| name | Nazwa punktu | string |
| code | Kod punktu | string |
| address | Adres punktu | string |
| postalCode | Kod pocztowy | string |
| image | Zdjęcie punktu | string |
| openHours | Godziny otwarcia | string |
| isSupportCod | Czy obsługuje pobrania | bool |
| Pole | Opis | Typ |
|---|---|---|
| date | Data | string |
| description | Opis | string |
| from | Tablica godz podjazdu od godz | array |
| to | Tablica godz podjazdu do godz | array |
| Pole | Opis | Typ |
|---|---|---|
| name | Nazwa zdarzenia | string |
| date | Data zdarzenia | string |
| status | Status zdarzenia | string |
| Kod | Nazwa | Max waga | Szerokość | Długość | Wysokość |
|---|---|---|---|---|---|
| parcel | Paczka | 70 | 1 > && < 270 | 1 > && < 300 | 1 > && < 270 |
| envelope | List | 0,5 | - | - | - |
| europallet | Paleta 120x80 cm | 900 | - | - | < 180 |
| isopallet | Paleta 120x100 cm | 900 | - | - | < 180 |
| bigpallet | Paleta 120x120 cm | 900 | - | - | < 180 |
| Kod | Nazwa | Kod usług |
|---|---|---|
| dpd | Dpd | dpdclassic |
| ups | Ups | upsstandard, upsexpresssaver, upsexpress |
| dhl | Dhl | dhlstandard |
| inpostcourier | Inpost Kurier | inpostcourier |
| ruch | Ruch | paczkawruchu |
| poczta | Poczta Polska | |
| inpost | Inpost Paczkomaty | paczkomat |
| fedex | Fedex Polska | fedex |
| geis | Geis Parcel | kexstandard |