- List Available Providers
- Test credentials
- Initialize the shipping provider
- Get Shipping Provider Metadata
- Create a parcel
- Get Parcel Details
- Retrieving a label
- Get Create Parcel Validation Rules
- Get Rates
// Ecotrack providers
$credentials = ['token' => '****'];
// Procolis providers ( ZREXPRESS )
$credentials = ['id' => '****', 'token' => '****'];
// Yalidine providers
$credentials = ['token' => '****', 'key' => '****'];
// Mayestro Delivery providers
$credentials = ['token' => '****'];
$shipping_provider = CourierDZ::provider(ShippingProvider::ZREXPRESS, $credentials);
// or
$shipping_provider = new XyzProvider($credentials); // where Xyz is the provider name
/*
* return array of provider response
* Note : results may vary depending on the provider
*/
$result = $shipping_provider->createOrder([
'Tracking' => 'CourierDz-123',
'TypeLivraison' => 1,
'TypeColis' => 0,
'Confrimee' => 0,
'Client' => 'Mohamed',
'MobileA' => '0990909090',
'MobileB' => '0880808080',
'Adresse' => 'Rue 39',
'IDWilaya' => "09",
'Commune' => 'Maraval',
'Total' => "2000",
'Note' => 'test test',
'TProduit' => 'Article1',
"id_Externe" => 'CourierDz-123',
"Source" => 'CourierDz',
]))
To know the required fields for the order creation depend on the provider requirements, use
$rules = $shipping_provider->getCreateOrderValidationRules();
/*
* return array of label data ( base64 encoded string or url )
*/
$label = $shipping_provider->orderLabel('CourierDz-123');
Output :
[
[type] => 'pdf'
[data] => 'base64 encoded string'
]
-- OR --
[
[type] => 'url'
[url] => 'https://example.com/label.pdf'
]
use CourierDZ\CourierDZ;
$providersMetaData = CourierDZ::providers();
Output :
$rules = $shipping_provider->getCreateOrderValidationRules();
Output :
$metadata = $shipping_provider->metadata();
Output :
/*
* Check if the provided credentials are valid.
*
* return bool
*/
echo $shipping_provider->testCredentials() ? 'Valid.' : 'Invalid.';
/*
* return array of rates of shipping from one wilaya to another
* or all rates depending on the parameters / provider api.
*/
$rates = $shipping_provider->getRates(); // all rates
$rates = $shipping_provider->getRates(null , $to_wilaya_id); // rates to specific wilaya
$rates = $shipping_provider->getRates($from_wilaya_id , $to_wilaya_id); // Yalidine require $from_wilaya_id , $to_wilaya_id
/*
* return array of order details
* Note : results may vary depending on the provider
*/
$result = $shippingService->getOrder('CourierDz-123');
`