agenta / agentanovaposhta
Nova Poshta 地区、城市、仓库更新器和搜索
dev-master
2022-09-30 09:23 UTC
Requires
- php: ^7.4|^8.0
- daaner/novaposhta: ^0.75.0
- illuminate/support: ^8.0
- rahul900day/laravel-console-spinner: ^1.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-29 06:08:42 UTC
README
导入 Nova Poshta 目录(地区、城市、邮局),从控制台更新邮局目录。Livewire 组件用于选择邮局(区域、城市、邮局)。
安装
要求
Laravel 8
PHP 8.x
- 通过 composer 添加
composer require agenta/agentanovaposhta
- 发布 daaner/novaposhta 库文件
php artisan vendor:publish --provider="Daaner\NovaPoshta\NovaPoshtaServiceProvider"
- 发布配置文件 (config/agentanovaposhta.php)
php artisan vendor:publish --tag=config
- 添加到 .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],
- 运行迁移
php artisan migrate
- 运行初始数据导入(可能需要 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 组件
- 发布组件模板并应用所需样式
php artisan vendor:publish --tag="views-agentanovaposhta"
- 将其添加到 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'),
])