PHPackages                             dobrys/econt-laravel13 - 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. dobrys/econt-laravel13

ActiveLibrary

dobrys/econt-laravel13
======================

Laravel Econt API Wrapper (Laravel 11-13 compatible fork)

v1.0.1(yesterday)02↑2900%MITPHP ^8.2|^8.3|^8.4

Since Jul 22Compare

[ Source](https://github.com/dobrys/econt-laravel13)[ Packagist](https://packagist.org/packages/dobrys/econt-laravel13)[ Docs](https://github.com/dobrys/econt-laravel13)[ RSS](/packages/dobrys-econt-laravel13/feed)WikiDiscussions Synced today

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

Laravel Econt API Wrapper
=========================

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

[![Latest Version on Packagist](https://camo.githubusercontent.com/fdf1e58e02dc4f3481feb9d3615c39fb25b010b79841941841fcaf5c68019b93/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f646f627279732f65636f6e742d6c61726176656c31332e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/dobrys/econt-laravel13)[![Total Downloads](https://camo.githubusercontent.com/d1e70763c0ef8221d66500990701be0949520c84e35b605bf98caaca8de027e9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f646f627279732f65636f6e742d6c61726176656c31332e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/dobrys/econt-laravel13)

[Econt JSON API Documentation](http://ee.econt.com/services/)

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

[](#installation)

You can install the package via composer:

```
composer require dobrys/econt-laravel13
```

If you plan to use database for storing nomenclatures:

```
php artisan migrate
```

If you need to export configuration file:

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

If you need to export migrations:

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

If you need to export models:

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

If you need to export commands:

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

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

[](#configuration)

```
ECONT_ENV=test|production #default=test
ECONT_API_USER= #default=iasp-dev
ECONT_API_PASS= #default=iasp-dev
ECONT_API_TEST_BASE_URI= #default=https://demo.econt.com/ee/services
ECONT_API_PRODUCTION_BASE_URI= #default=https://ee.econt.com/services
ECONT_API_TIMEOUT= #default=5
```

Usage
-----

[](#usage)

Runtime Setup

```
Econt::setAccount('user', 'pass');
Econt::setBaseUrl('endpoint');
Econt::setTimeout(99);
Econt::addAccountToStore('AccountUser', 'AccountPass');
Econt::getAccountFromStore('AccountUser');
Econt::setAccountFromStore('AccountUser');
```

Multiple Account Support In AppServiceProvider add accounts in boot method

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

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

Methods

```
//Nomenclatures
Econt::getCountries();
Econt::getCities();
Econt::getOffices();
Econt::getStreets();
Econt::getQuarters();

//Labels
Econt::createLabel();
Econt::createLabels();
Econt::updateLabel();
Econt::deleteLabels();

//Misc
Econt::requestCourier();
Econt::getRequestCourierStatus();
Econt::getShipmentStatuses();
Econt::getClientProfiles();
Econt::paymentReport();
```

Commands

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

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

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

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

#sync querters with database (use -h to view options)
php artisan econt:sync-quarters

#sync stretts with database (use -h to view options)
php artisan econt:sync-streets

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

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

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

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

Models

```
CarrierEcontCountry
CarrierEcontCity
CarrierEcontOffice
CarrierEcontStreet
CarrierEcontQuarter
CarrierEcontPayment
CarrierEcontApiStatus
CarrierEcontTracking
CarrierCityMap
```

Events

```
CarrierEcontTrackingEvent
CarrierEcontPaymentEvent
```

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

[](#parcels-tracking)

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

```
Event::listen(function (CarrierEcontTrackingEvent $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 TrackCarrierEcont
```

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

```
use Dobrys\Econt\Commands\TrackCarrierEcontBase;

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

4. Use the command

```
php artisan econt:track
```

Examples
--------

[](#examples)

Address Validation

```
try {
    $address = new Address([
        'city' => [
            'name' => 'София'
        ],
        'street' => 'България',
        'num' => '100'
    ]);

    dd(Econt::validateAddress($address));
} catch (EcontValidationException $eve) {
    echo $eve->getMessage();
    echo $eve->getCode();
    print_r($eve->getErrors());
} catch (EcontException $ee) {
    echo $ee->getMessage();
    echo $ee->getCode();
    print_r($ee->getErrors());
}
```

Get Nearest Offices to Address

```
try {
    $address = new Address([
        'city' => [
            'name' => 'София'
        ],
        'street' => 'България',
        'num' => '100'
    ]);

    dd(Econt::getNearestOffices($address));
} catch (EcontValidationException $eve) {
    echo $eve->getMessage();
    echo $eve->getCode();
    print_r($eve->getErrors());
} catch (EcontException $ee) {
    echo $ee->getMessage();
    echo $ee->getCode();
    print_r($ee->getErrors());
}
```

Calculcate Price

```
$labelData = [
    'senderClient' => [
        'name' => 'Иван Иванов',
        'phones' => [
            0 => '0888888888',
        ],
    ],
    'senderAddress' => [
        'city' => [
            'country' => [
                'code3' => 'BGR',
            ],
            'name' => 'София',
            'postCode' => 1000,
        ],
    ],
    'senderOfficeCode' => '1127',
    'receiverAddress' => [
        'city' => [
            'country' => [
                'code3' => 'BGR',
            ],
            'name' => 'София',
            'postCode' => 1000,
        ],
        'street' => 'България',
        'num' => '100',
    ],
    'packCount' => 1,
    'shipmentType' => ShipmentType::PACK,
    'weight' => 3.4,
    'shipmentDescription' => 'обувки',
    'services' => [
        'cdAmount' => 122.59,
        'cdType' => 'get',
        'cdCurrency' => 'BGN',
        'smsNotification' => true,
    ],
    'payAfterAccept' => false,
    'payAfterTest' => false,
];

$label = new Label(
    $labelData,
    LabelMode::CALCULATE
);

$result = Econt::createLabel($label);
```

Create Label

```
$labelData = [
    'senderClient' => [
        'name' => 'Иван Иванов',
        'phones' => [
            0 => '0888888888',
        ],
    ],
    'senderAddress' => [
        'city' => [
            'country' => [
                'code3' => 'BGR',
            ],
            'name' => 'София',
            'postCode' => 1000,
        ],
    ],
    'senderOfficeCode' => '1127',
    'receiverClient' =>
    [
        'name' => 'Димитър Димитров',
        'phones' =>
        [
            0 => '0876543210',
        ],
    ],
    'receiverAddress' => [
        'city' => [
            'country' => [
                'code3' => 'BGR',
            ],
            'name' => 'София',
            'postCode' => '1000',
        ],
        'street' => 'България',
        'num' => 100,
    ],
    'packCount' => 1,
    'shipmentType' => ShipmentType::PACK,
    'weight' => 3.4,
    'shipmentDescription' => 'обувки',
    'services' => [
        'cdAmount' => '122.59',
        'cdType' => 'get',
        'cdCurrency' => 'BGN',
        'smsNotification' => true,
    ],
    'payAfterAccept' => false,
    'payAfterTest' => false,
    'holidayDeliveryDay' => 'workday',
];

$label = new Label(
    $labelData,
    LabelMode::CREATE
);

$result = Econt::createLabel($label);
```

Request Courier

```
try {
    $curierRequest = [
        'requestTimeFrom' => '2022-05-05 16:00:00',
        'requestTimeTo' => '2022-05-05 17:00:00',
        'shipmentType' => 'PACK',
        'shipmentPackCount' => '1',
        'shipmentWeight' => '2',
        'senderClient' => [
            'name' => 'Иван Иванов',
            'phones' => [
                0 => '0888888888',
            ],
        ],
        'senderAddress' => [
            'city' => [
                'country' => [
                    'code3' => 'BGR',
                ],
                'postCode' => '7012',
                'name' => 'Русе',
            ],
            'fullAddress' => 'Алея Младост 7',
        ],
    ];

    dd(
        Econt::requestCourier(
            new Courier($curierRequest)
        )
    );
} catch (EcontValidationException $eve) {
    echo $eve->getMessage();
    echo $eve->getCode();
    print_r($eve->getErrors());
} catch (EcontException $ee) {
    echo $ee->getMessage();
    echo $ee->getCode();
    print_r($ee->getErrors());
}
```

Get Payments

```
try {
    dd(
        Econt::paymentReport(new Payment([
            'dateFrom' => '2022-05-01',
            'dateTo' => '2022-05-05'
        ]))
    );
} catch (EcontValidationException $eve) {
    echo $eve->getMessage();
    echo $eve->getCode();
    print_r($eve->getErrors());
} catch (EcontException $ee) {
    echo $ee->getMessage();
    echo $ee->getCode();
    print_r($ee->getErrors());
}
```

### 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)

- [dobrys-work](https://github.com/dobrys)
- Originally based on [gdinko/econt](https://github.com/gdinko/econt) by [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

42

—

FairBetter than 88% of packages

Maintenance100

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

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 ~0 days

Total

2

Last Release

1d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/882bf6f849f12c92d350ee81566ab172cb5294e975451ca3028d92456a0888de?d=identicon)[dobrys](/maintainers/dobrys)

---

Tags

laravelecontecont laraveldobrys

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/dobrys-econt-laravel13/health.svg)

```
[![Health](https://phpackages.com/badges/dobrys-econt-laravel13/health.svg)](https://phpackages.com/packages/dobrys-econt-laravel13)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M3.2k](/packages/craftcms-cms)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5022.6k](/packages/simplestats-io-laravel-client)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

293.1k](/packages/eslazarev-wildberries-sdk)

PHPackages © 2026

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