A simple FanCourier implementation for Laravel.
Install the package through Composer.
Run the Composer require command from the Terminal:
composer require seniorprogramming/fancourier
Now all you have to do is add the service provider of the package and alias the package. To do this open your config/app.php
file.
Add a new line to the providers
array:
SeniorProgramming\FanCourier\Providers\ApiServiceProvider::class,
And optionally add a new line to the aliases
array:
'FanCourier' => SeniorProgramming\FanCourier\Facades\FanCourier::class,
Important, add in .env FanCourier credentials:
FANCOURIER_USERNAME=
FANCOURIER_PASSWORD=
FANCOURIER_CLIENT_ID=
Now you're ready to start using the FanCourier API Client in your application.
Look at one of the following topics to learn more about FanCourier API Clien
The FanCourier API Client gives you the following methods to use:
Retrieves cities based on county if specificed and other info.
FanCourier::city()
The city()
method will return an array of objects with: judet, localitate, agentie, km, cod_rutare, id_localitate_fan.
Retrieves streets based on county or city if specificed and other info.
FanCourier::streets()
The streets()
method will return an array of objects with: judet, localitate, strada, de_la, pana_la, paritate, cod_postal, tip, cod_cartare, numar_depozite.
Retrieve price based on service, package and distance
FanCourier::price()
The price()
method will return a double.
Track expedition using AWB code.
FanCourier::trackAwb()
The trackAwb()
method will return a plain text.
Send orders to generate AWB
FanCourier::generateAwb()
The generateAwb()
method will return an array of objects with: line, awb, send_params, error_message.
Place a order to a FanCourier Agent. The agent will come a pick-up the package at requested hour, in the same day
FanCourier::order()
**The order()
method will return a plain message if the request is made successfully **
All FanCourier AWB with errors.
FanCourier::exportAwbErrors()
The exportAwbErrors()
method will return an empty array or with objects containing: nume, judet, localitate, telefon, plicuri, colete, greutate, descriere.
Deletes AWB only if the shipping process is not finished.
FanCourier::deleteAwb()
The deleteAwb()
method will return an int if the request is made successfully or the error message.
Returns documents containing shipping details.
FanCourier::getAwb()
The getAwb()
method will return a html page containing documents that can be printed if the request is made successfully or the error message.
Returns AWB document in jpg format.
FanCourier::downloadAwb()
The downloadAwb()
method will return a jpg if the request is made successfully or the error message.
All orders made within selected date through FanCourier::order method.
FanCourier::exportOrders()
The exportOrders()
method will return an empty array or with objects containing: nr._crt., data_ridicare_comanda, ora_de_la, ora_pana_la, persoana_contact, telefon, email, colete, numar_comanda, status.
All orders made within selected date through FanCourier::generateAwb method.
FanCourier::exportBorderou()
The exportBorderou()
method will return an empty array or with objects containing: nr._crt., awb, ridicat, status, data_confirmarii, restituire, tip_serviciu, continut...
Returns all expeditions that have placed the total amount in the deposit account within selected date for the bank transfer.
FanCourier::exportReports()
The exportReports()
method will return an empty array or with objects containing: oras_destinatar, dat_awb, suma_incasata, numar_awb, numar_awb, expeditor, destinatar, continut, persoanaD, data_virament, persoanaE, ramburs_la_awb, awb_retur
Returns all observations that can be set when an expedition is requested.
FanCourier::exportObservations()
The exportObservations()
method will return an empty array or with objects containing: observatii_fan_courier
Will close all orders made for the current date.
FanCourier::endBorderou()
**The endBorderou()
method will return a html **
The FanCourier package will throw exceptions if something goes wrong. This way it's easier to debug your code using the FanCourier package or to handle the error based on the type of exceptions. The FanCourier packages can throw the following exceptions:
Exception |
---|
FanCourierInstanceException |
FanCourierInvalidParamException |
FanCourierUnknownModelException |
FanCourier::city() To fetch specific county
FanCourier::city(['judet'=>'Constanta', 'language'=>'RO'])
or to fetch all counties
FanCourier::city()
FanCourier::streets() To fetch specific county
FanCourier::streets(['judet'=>'Bucuresti', 'localitate'=>'Bucuresti', 'language'=>'RO'])
or to fetch all streets from Romania
FanCourier::streets()
FanCourier::price() Internal service
FanCourier::price([
'serviciu' => 'standard',
'localitate_dest' => 'Targu Mures',
'judet_dest' => 'Mures',
'plicuri' => 1,
'colete' => 2,
'greutate' => 5,
'lungime' => 10,
'latime' => 10,
'inaltime' => 10,
'val_decl' => 600,
'plata_ramburs' => 'destinatar',
'plata_la' => 'destinatar',
])
External service
FanCourier::price([
'serviciu' => 'export',
'modtrim' => 'rutier', //aerian
'greutate' => 10.22,
'pliccolet' => 3,
's_inaltime' => 50,
's_latime' => 67,
's_lungime' => 48,
'volum' => 400,
'dest_tara' => 'Bulgaria',
'tipcontinut' => 1,
'km_ext' => 400,
'plata_la' => 'destinatar',
])
FanCourier::order() Internal service
FanCourier::generateAwb(['fisier' => [
[
'tip_serviciu' => 'standard',
'banca' => '',
'iban' => '',
'nr_plicuri' => 1,
'nr_colete' => 0,
'greutate' => 1,
'plata_expeditie' => 'ramburs',
'ramburs_bani' => 100,
'plata_ramburs_la' => 'destinatar',
'valoare_declarata' => 400,
'persoana_contact_expeditor' => 'Test User',
'observatii' => 'Lorem ipsum',
'continut' => '',
'nume_destinar' => 'Test',
'persoana_contact' => 'Test',
'telefon' => '123456789',
'fax' => '123456789',
'email' => 'example@example.com',
'judet' => 'Galati',
'localitate' => 'Tecuci',
'strada' => 'Lorem',
'nr' => '2',
'cod_postal' => '123456',
'bl' => '',
'scara' => '',
'etaj' => '',
'apartament' => '',
'inaltime_pachet' => '',
'lungime_pachet' => '',
'restituire' => '',
'centru_cost' => '',
'optiuni' => '',
'packing' => '',
'date_personale' => ''
],
[
'tip_serviciu' => 'Cont colector',
'banca' => 'Test',
'iban' => 'XXXXXX',
'nr_plicuri' => 0,
'nr_colete' => 1,
'greutate' => 1,
'plata_expeditie' => 'ramburs',
'ramburs_bani' => 400,
'plata_ramburs_la' => 'destinatar',
'valoare_declarata' => 400,
'persoana_contact_expeditor' => 'Test User',
'observatii' => 'Lorem ipsum',
'continut' => 'Fragil',
'nume_destinar' => 'Test',
'persoana_contact' => 'Test',
'telefon' => '123456789',
'fax' => '123456789',
'email' => 'example@example.com',
'judet' => 'Galati',
'localitate' => 'Tecuci',
'strada' => 'Lorem',
'nr' => '2',
'cod_postal' => '123456',
'bl' => '',
'scara' => '',
'etaj' => '',
'apartament' => '',
'inaltime_pachet' => '',
'lungime_pachet' => '',
'restituire' => '',
'centru_cost' => '',
'optiuni' => '',
'packing' => '',
'date_personale' => ''
]
]])
FanCourier::trackAwb()
FanCourier::trackAwb([
'AWB'=>'2337600120003',
'display_mode' => 3 //1 – last status, 2 – last record from history route, 3 – all history of the expedition
])
FanCourier::order() Internal service
FanCourier::order([
'nr_colete' => 1, // or 'nr_plicuri' => 1
'pers_contact' => 'Test',
'tel' => 123456789,
'email' => 'example@example.com',
'greutate' => 1,
'inaltime' => 10,
'lungime' => 10,
'latime' => 10,
'ora_ridicare' => '18:00',
'observatii' => '',
'client_exp' => 'Test',
'strada' => 'Test',
'nr' => 1,
'bloc' => 2,
'scara' => 3,
'etaj' => 7,
'ap' => 78,
'localitate' => 'Constanta',
'judet' => 'Constanta',
])
FanCourier::exportServices()
FanCourier::exportServices()
FanCourier::exportAwbErrors()
FanCourier::exportAwbErrors()
FanCourier::getAwb()
FanCourier::getAwb([
'nr'=>'2337600120003', //AWB
])
FanCourier::downloadAwb()
FanCourier::downloadAwb([
'AWB'=>'2337600120003',
])
FanCourier::exportOrders()
FanCourier::exportOrders(['data'=>'09.12.2016'])
FanCourier::exportBorderou()
FanCourier::exportBorderou(['data'=>'09.12.2016', 'mode'=> 0])
FanCourier::exportReports()
FanCourier::exportReports(['data'=>'09.12.2016'])
FanCourier::exportObservations()
FanCourier::exportObservations()
FanCourier::endBorderou()
FanCourier::endBorderou()