xenon/multicourier

This package is abandoned and no longer maintained. No replacement package was suggested.

This is a courier api endpoints library for interacting such as e-courier, pathao, paperfly etc

Fund package maintenance!
Patreon

v1.0.3 2022-06-14 19:47 UTC

This package is auto-updated.

Last update: 2023-09-15 19:08:19 UTC


README

This is a courier api endpoints library for interacting such as e-courier, pathao etc

Installation

Step 1:

composer require xenon/multicourier

Step 2:

Then, publish the package

php artisan vendor:publish --provider=Xenon\MultiCourier\MultiCourierServiceProvider

Step 3:

Set .env configuration for individual couriers

PATHAO_CLIENT_SECRET="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
PATHAO_USERNAME="xxxx@example.com"
PATHAO_PASSWORD="xxxxxx"
PATHAO_GRANT_TYPE="password"

ECOURIER_API_KEY='xxx'
ECOURIER_API_SECRET='xxx'
ECOURIER_USER_ID='xxxx'
ECOURIER_ENVIRONMENT='xxxx'

Otherwise, if you want more control, you can use the underlying sender object. This will not touch any laravel facade or service provider.

Sample Code Requesting to E-courier

use Xenon\MultiCourier\Provider\ECourier;
use Xenon\MultiCourier\Courier;


$courier = Courier::getInstance();
$courier->setProvider(ECourier::class, 'local'); /* local/production */
$courier->setConfig([
    'API-KEY' => 'xxx',
    'API-SECRET' => 'xxxx',
    'USER-ID' => 'xxxx',
]);
$courier->setParams(['city'=>'Dhaka']);
$thanas = $courier->getThanas(); //get thana
$cities = $courier->getCities(); //get city
//place order
use Xenon\MultiCourier\Provider\ECourier;
use Xenon\MultiCourier\Courier;


$courier = Courier::getInstance();
$courier->setProvider(ECourier::class, 'local'); /* local/production */
$courier->setConfig([
    'API-KEY' => 'xxx',
    'API-SECRET' => 'xxx',
    'USER-ID' => 'xxx',
]);
$orderData = array(
    'recipient_name' => 'XXXXX',
    'recipient_mobile' => '017XXXXX',
    'recipient_city' => 'Dhaka',
    'recipient_area' => 'Badda',
    'recipient_thana' => 'Badda',
    'recipient_address' => 'Full Address',
    'package_code' => '#XXXX',
    'product_price' => '1500',
    'payment_method' => 'COD',
    'recipient_landmark' => 'DBBL ATM',
    'parcel_type' => 'BOX',
    'requested_delivery_time' => '2019-07-05',
    'delivery_hour' => 'any',
    'recipient_zip' => '1212',
    'pick_hub' => '18490',
    'product_id' => 'DAFS',
    'pick_address' => 'Gudaraghat new mobile',
    'comments' => 'Please handle carefully',
    'number_of_item' => '3',
    'actual_product_price' => '1200',
    'pgwid' => 'XXX',
    'pgwtxn_id' => 'XXXXXX'
);

$courier->setParams($orderData);
$response = $courier->placeOrder();


Sample Code Requesting to Pathao

use Xenon\MultiCourier\Courier;
use Xenon\MultiCourier\Provider\Pathao;

$courier = Courier::getInstance();
$courier->setProvider(Pathao::class, 'local'); /* local/production */
$courier->setMethod('get');
$courier->setRequestEndpoint('cities/1/zone-list', []); //second param should be array. its optional. you should form params here
$response = $courier->send();

Available Methods to Interact with Provider's Api

getInstance()

getConfig()

setConfig()

getParams()

setParams()

getProvider()

setProvider()

getCities()

getThanas()

trackOrder()

trackChildOrder()

getPackages()

placeOrder()

cancelOrder()

cancelChildOrder()

fraudStatusCheck()

getAreas()

getPostCodes()

getBranches()

printLabel()

boostSms()

topupSms()

topTransactionStatus()

topupOtp()

Currently Supported Courier Gateways

  • ECourier
  • Pathao

ecourier.png pathao.png

We are continuously working in this open source library for adding more Bangladeshi courier companies. If you feel something is missing then make a issue regarding that. Your can pull request to dev branch. If you want to contribute in this library, then you are highly welcome to do that.... read blog from here
https://dev.to/arif98741/bangladeshi-courier-company-api-integration-in-laravel-using-xenon-multicourier-package-4m12