New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

sergeevpasha/laravel-dpd

Tiny DPD API wrapper for Laravel
2,394 1
Install
composer require sergeevpasha/laravel-dpd
Latest Version:v2.0.3
PHP:^8.0
Laravel:8 · 9 · 10
License:MIT
Last Updated:Mar 12, 2024
Links: GitHub  ·  Packagist
Maintainer: sergeevpasha

Maintainability Test Coverage CodeFactor Generic badge Generic badge

IMPORTANT UPDATE

DPD made lots of changes, so the best way I see it is having DPD API as a service, so starting from now on this package will have only a few basic functionality required for it, consider using it (will be available later) instead.

Laravel DPD API Wrapper

Allows you to:

  • Get all DPD cities
  • Get all DPD Terminals
  • Calculate a delivery

Pre-requirements

You need to get DPD API key, user, login and password. Key can be obtained in your cabinet at https://www.dpd.ru/ols/order/personal/integrationKey.do2

Installation

composer require sergeevpasha/laravel-dpd

Configuration

This package has a few configuration values:

'key'        => env('DPD_KEY'),
'user'       => env('DPD_USER'),
'login'      => env('DPD_LOGIN'),
'password'   => env('DPD_PASSWORD'),
'prefix'     => 'dpd',
'middleware' => ['web']
php artisan vendor:publish --provider="SergeevPasha\DPD\Providers\DPDServiceProvider" --tag="config"

After installing, you may just import the client

use SergeevPasha\DPD\Libraries\DPDClient;
/* 
    You may find your User ID by entering DPD Cabinet.
    Here we are initializing the client.
*/
$client = new DPDClient('user', 'key');

Now we can use these methods:

$client->getCountryCities(string $country)
$client->getTerminals()
$client->findByTrackNumber(string $trackNumber)  
/* This one requires a Delivery Object, see next to see how to build it */
$client->getPrice(Delivery $delivery)

Delivery Object

To build a Delivery object you will need to pass an array to fromArray() method just like that:

Delivery::fromArray([
    arrival_city_id     => 123456, // Arrival City ID from findCity() method
    derival_city_id     => 123456, // Derival City ID from findCity() method
    arrival_terminal    => 1, // Set 1 if you are delivering to terminal
    derival_terminal    => 0, // Set 1 if you send from terminal
    parcel_total_weight => 20, // Total parcel weight, KG
    parcel_total_volume => 0.5, // Total parcel volume, M3
    parcel_total_value  => 1000500.50, // Total parcel volume, RUB
    pickup_date         => 2020-10-10, // YYYY-MM-DD Format, when your parcel should be picked up for delivery
    max_delivery_days   => 15, // Show only options that can be delivered for that or less amount of days
    max_delivery_price  => 1000.10, // Show only options that costs that or less price
    services => [
        'ECU',
        'CUR'
    ], // List of available services
])

Available countries

If you need to specify a country you need to use one of these codes:

RU - Russia
KZ - Kazakhstan
AM - Armenia
BY - Belarus
KG - Kyrgyzstan

Available services

If you need to specify a service you need to use one of these codes:

BZP = '18:00';
ECN - ECONOMY
ECU - ECONOMY CU
CUR - CLASSIC
NDY - EXPRESS
CSM - Online Express
PCL - OPTIMUM
PUP - SHOP
DPI - CLASSIC international IMPORT
DPE - CLASSIC international EXPORT
MAX - MAX domestic
MXO - Online Max

Related Packages

bernhardk/laravel-dpd

Laravel package for using DPD Webservices to submit shipment to dpd und retrieve...

3,651 14
doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

651,963,193 9,701
laravel/framework

The Laravel Framework.

604,216,237 34,982
laravel/tinker

Powerful REPL for the Laravel framework.

518,004,183 7,444
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

435,097,283 607

Version History

Version Released PHP Laravel License
v2.0.3 ^8.0 ^8.40.0 || ^9.0.0 || ^10.0.0 MIT
v2.0.2 ^8.0 ^8.40.0 || ^9.0.0 MIT
v2.0.1 ^8.0 ^8.40.0 || ^9.0.0 MIT
v2.0.0 ^8.0 ^8.40.0 MIT
v1.3.2 ^8.0 ^8.40.0 MIT