Nova Poshta regions, cities, warehouses updater and search
agenta/agentanovaposhta is a Laravel package for nova poshta regions, cities, warehouses updater and search.
It currently has 0 GitHub stars and 48 downloads on Packagist.
Install it with composer require agenta/agentanovaposhta.
Discover more Laravel packages by agenta
or browse all Laravel packages to compare alternatives.
Last updated
Импорт справочников Новой Почты (регионы, города, отделения), обновление справочника отделений из консоли. Компонент Livewire для выбора отделения (область, город, отделение).
Laravel 8
PHP 8.x
composer require agenta/agentanovaposhta
php artisan vendor:publish --provider="Daaner\NovaPoshta\NovaPoshtaServiceProvider"
php artisan vendor:publish --tag=config
#API-кей "Новой почты" (см. в личном кабинете)
NP_API_KEY=
#кол-во объектов на странице API (по опыту - максимум 100, иначе периодически таймаут)
AGENTA_NP_CHUNK_SIZE=100
В конфиге можно настроить какие типы отделений импортировать в базу данных:
'import_warehouse_type' => [$NORMAL, $SHOP, $CARGO, $POSTOMAT, $POSTOMAT_PB],
и какие типы отделений доступны для выбора пользователем:
'allowed_warehouse_type' => [$NORMAL, $SHOP, $CARGO, $POSTOMAT, $POSTOMAT_PB],
php artisan migrate
#импорт областей и населенных пунктов
php artisan np:import_cities
#импорт отделений
php artisan np:update_warehouses
"Новая Почта" рекомендует обновлять справочник отделений один раз в сутки. Для этого следует запускать команду консоли (данные будут только добавляться, без удаления уже существующих — если отделение не работающее, то модели будет установлен active = false):
php artisan np:update_warehouses
Также можно обновлять справочник населенных пунктов и областей (без удаления, только создание и обновление):
php artisan np:import_cities
php artisan vendor:publish --tag="views-agentanovaposhta"
...
@livewireStyles
</head>
<body>
@livewire('novaposhta-select-warehouse')
...
@livewireScripts
</body>
компоненту можно передавать параметр 'cargo' => true для отображения только тех городов и отделений, которые являются грузовыми (для грузов свыше 30 кг), а также предыдущие выбранные значения области, города и отделения для отображения в случае перезагрузки страницы
@livewire('novaposhta-select-warehouse', [
'cargo' => true,
'selectedRegion' => old('np_region_id'),
'selectedCity' => old('np_city_id'),
'selectedWarehouse' => old('np_warehouse_id'),
])