PHPackages                             gdinko/dynamicexpress - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. gdinko/dynamicexpress

ActiveLibrary[API Development](/categories/api)

gdinko/dynamicexpress
=====================

Laravel Dynamic Express API Wrapper

v1.0.4(3y ago)0930MITPHPPHP ^7.4|^8.0

Since May 10Pushed 3y ago1 watchersCompare

[ Source](https://github.com/gdinko/dynamicexpress)[ Packagist](https://packagist.org/packages/gdinko/dynamicexpress)[ Docs](https://github.com/gdinko/dynamicexpress)[ RSS](/packages/gdinko-dynamicexpress/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (11)Versions (6)Used By (0)

Laravel DynamicExpress API Wrapper
==================================

[](#laravel-dynamicexpress-api-wrapper)

[![Latest Version on Packagist](https://camo.githubusercontent.com/62e786cc824b0ae4a670c29f964edaaa4e93b6e0c93b048e8cb8874b5fccb710/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6764696e6b6f2f64796e616d6963657870726573732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/gdinko/dynamicexpress)[![GitHub Tests Action Status](https://camo.githubusercontent.com/18c442c62b0e0f9267a4ec9c8a21c4f2ed11df4fe496cbb552adc23282902209/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f6764696e6b6f2f64796e616d6963657870726573732f72756e2d74657374733f6c6162656c3d7465737473)](https://github.com/gdinko/dynamicexpress/actions?query=workflow%3Arun-tests+branch%3Amaster)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/47b591d546d306730c274c6a7dd3845b68cb3858223e724770365fd9d9680954/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f6764696e6b6f2f64796e616d6963657870726573732f436865636b253230262532306669782532307374796c696e673f6c6162656c3d636f64652532307374796c65)](https://github.com/gdinko/dynamicexpress/actions?query=workflow%3A%22Check+%26+fix+styling%22+branch%3Amaster)[![Total Downloads](https://camo.githubusercontent.com/221b825694864b542c4868db3b657837e623ed551f3207e76ada38414e489549/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6764696e6b6f2f64796e616d6963657870726573732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/gdinko/dynamicexpress)

Laravel DynamicExpress API Wrapper

[DynamicExpress API Documentation](https://www.dynamicexpress.eu/soap_info/classes/DSoapServerClass.html)

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require gdinko/dynamicexpress
```

If you plan to use database for storing nomenclatures:

```
php artisan migrate
```

If you need to export configuration file:

```
php artisan vendor:publish --tag=dynamicexpress-config
```

If you need to export migrations:

```
php artisan vendor:publish --tag=dynamicexpress-migrations
```

If you need to export models:

```
php artisan vendor:publish --tag=dynamicexpress-models
```

If you need to export commands:

```
php artisan vendor:publish --tag=dynamicexpress-commands
```

Configuration
-------------

[](#configuration)

```
DYNAMICEXPRESS_API_USER=
DYNAMICEXPRESS_API_PASS=
DYNAMICEXPRESS_API_WSDL= #default = https://system.dynamicexpress.eu/schema.wsdl
```

Usage
-----

[](#usage)

Runtime Setup

```
DynamicExpress::setAccount('user', 'pass');

DynamicExpress::addAccountToStore('AccountUser', 'AccountPass');
DynamicExpress::getAccountFromStore('AccountUser');
DynamicExpress::setAccountFromStore('AccountUser');
```

Multiple Account Support In AppServiceProvider add accounts in boot method

```
public function boot()
{
    DynamicExpress::addAccountToStore(
        'AccountUser',
        'AccountPass'
    );

    DynamicExpress::addAccountToStore(
        'AccountUser_XXX',
        'AccountPass_XXX'
    );
}
```

Commands

```
#sync countries with database (use -h to view options)
php artisan dynamic-express:sync-countries

#sync cities with database (use -h to view options)
php artisan dynamic-express:sync-cities

#sync offices with database (use -h to view options)
php artisan dynamic-express:sync-offices

#create cities map with other carriers in database  (use -h to view options)
php artisan dynamic-express:map-cities

#sync all nomenclatures with database (use -h to view options)
php artisan dynamic-express:sync-all

#get payments (use -h to view options)
php artisan dynamic-express:get-payments

#get dynamic express api status (use -h to view options)
php artisan dynamic-express:api-status

#track parcels (use -h to view options)
php artisan dynamic-express:track
```

Models

```
CarrierDynamicExpressCountry
CarrierDynamicExpressCity
CarrierDynamicExpressOffice
CarrierDynamicExpressPayment
CarrierDynamicExpressApiStatus
CarrierDynamicExpressTracking
```

Events

```
CarrierDynamicExpressTrackingEvent
CarrierDynamicExpressPaymentEvent
```

Parcels Tracking
----------------

[](#parcels-tracking)

1. Subscribe to tracking event, you will recieve last tracking info, if tracking command is schduled

```
Event::listen(function (CarrierDynamicExpressTrackingEvent $event) {
    echo $event->account;
    dd($event->tracking);
});
```

2. Before use of tracking command you need to create your own command and define setUp method

```
php artisan make:command TrackCarrierDynamicExpress
```

3. In app/Console/Commands/TrackCarrierDynamicExpress define your logic for parcels to be tracked

```
use Gdinko\DynamicExpress\Commands\TrackCarrierDynamicExpressBase;

class TrackCarrierDynamicExpressSetup extends TrackCarrierDynamicExpressBase
{
    protected function setup()
    {
        //define parcel selection logic here
        // $this->parcels = [];
    }
}
```

4. Use the command

```
php artisan dynamic-express:track
```

Examples
--------

[](#examples)

Calculate price

```
$data = [

    // value is taken with getServices Method. Here 1 is ->
    // -> "Бързи градски услуги" (fast urban services)
    'service' => 1,

    // value is taken with getSubServices Method. ->
    // -> Here 18 is "48 часа икономична" (48h economical)
    'subservice' => 18,

    // 0(zero) or 1 (1 if there will be fixed delivery, 0 if not)
    'fix_chas' => 0,

    // 0(zero) or 1 (1 if there will be return reciept, 0 if not)
    'return_receipt' => 0,

    // 0(zero) or 1 (1 if there will be return document, 0 if not)
    'return_doc' => 0,

    // COD(cash on delivery). 0(zero) if there is no COD. ->
    // -> USE "."(dot) for decimals!
    'nal_platej' => 50,

    // Insurance Value. 0(zero) if there is no insurance. ->
    // -> USE "."(dot) for decimals!
    'zastrahovka' => 50,

    // Weigth in kg. CAN'T be 0(zero). Use "."(dot) for decimals.
    'teglo' => 2.5,

    // ID of the country(ISO standart). ->
    // -> Required only for international delivery
    'country_b' => 100,

];

$priceData = DynamicExpress::calculate($data);

dd($priceData);
```

You can use all methods from the WDSL Schema Like this:

```
DynamicExpress::getMyObjectInfo();
DynamicExpress::getMyObjects();
DynamicExpress::getOfficesCity();
DynamicExpress::getOfficesCord(100);
DynamicExpress::getSoapCouriers();

//and so on , see the documentation
```

### Testing

[](#testing)

```
composer test
```

### Changelog

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

### Security

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Dinko Georgiev](https://github.com/gdinko)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~51 days

Total

5

Last Release

1310d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f408c26073a07cc3190b341d6c9deee83d57841262fa5be6fa2cc0512deb5575?d=identicon)[gdinko](/maintainers/gdinko)

---

Top Contributors

[![gdinko](https://avatars.githubusercontent.com/u/2735905?v=4)](https://github.com/gdinko "gdinko (16 commits)")

---

Tags

laravelgdinkodynamicexpressdynamicexpress laravel

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/gdinko-dynamicexpress/health.svg)

```
[![Health](https://phpackages.com/badges/gdinko-dynamicexpress/health.svg)](https://phpackages.com/packages/gdinko-dynamicexpress)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)[defstudio/telegraph

A laravel facade to interact with Telegram Bots

815320.5k3](/packages/defstudio-telegraph)[neuron-core/neuron-laravel

Official Neuron AI Laravel SDK.

11337.8k1](/packages/neuron-core-neuron-laravel)[riclep/laravel-storyblok

A Laravel wrapper around the Storyblok API to provide a familiar experience for Laravel devs

6279.6k5](/packages/riclep-laravel-storyblok)[simplestats-io/laravel-client

Analytics for Laravel. Track visitors, registrations, and payments. Discover which channels actually drive revenue, not just traffic. Server-side, GDPR compliant, ad-blocker proof.

5019.3k](/packages/simplestats-io-laravel-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
