LaravelPackages.net
Acme Inc.
Toggle sidebar
agenta/agentanovaposhta

Nova Poshta regions, cities, warehouses updater and search

48
0
About agenta/agentanovaposhta

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

Agent-A NovaPoshta

Импорт справочников Новой Почты (регионы, города, отделения), обновление справочника отделений из консоли. Компонент Livewire для выбора отделения (область, город, отделение).

Установка

Требования

Laravel 8
PHP 8.x
  1. Добавить через composer:
composer require agenta/agentanovaposhta
  1. Публикация файлов библиотеки daaner/novaposhta:
php artisan vendor:publish --provider="Daaner\NovaPoshta\NovaPoshtaServiceProvider"
  1. Публикация файла конфигурации (config/agentanovaposhta.php):
php artisan vendor:publish --tag=config
  1. Добавить в файл .env
#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],
  1. Запуск миграции:
php artisan migrate
  1. Запустить первичный импорт данных (может занимать 10-30 минут и более):
#импорт областей и населенных пунктов
php artisan np:import_cities
#импорт отделений
php artisan np:update_warehouses

Использование

Обновление данных

"Новая Почта" рекомендует обновлять справочник отделений один раз в сутки. Для этого следует запускать команду консоли (данные будут только добавляться, без удаления уже существующих — если отделение не работающее, то модели будет установлен active = false):

php artisan np:update_warehouses

Также можно обновлять справочник населенных пунктов и областей (без удаления, только создание и обновление):

php artisan np:import_cities

Компонент Livewire

  1. Опубликуйте шаблон компонента и оформите его нужными стилями:
php artisan vendor:publish --tag="views-agentanovaposhta"
  1. Добавьте в свой blade-шаблон
... @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'), ])

Автор

Star History Chart