freeline / pdv
Pacote Laravel do Simples PDV para uso standalone ou integrado ao ERP Freeline.
Requires
- php: ^8.2
- laravel/framework: ^12.0
- notagil/integration-sdk: ^0.4.3
README
Pacote Laravel do PDV Freeline para uso dentro do SimplesLaravel ou em uma
instalacao standalone. O pacote registra rotas, views, assets, middlewares e
migrations pelo Freeline\Pdv\PdvServiceProvider.
Requisitos
- PHP 8.2 ou superior.
- Laravel 12.
notagil/integration-sdkna versao exigida pelo pacote.- Acesso ao pacote Composer
freeline/pdv.
Instalacao no SimplesLaravel
No diretorio raiz do SimplesLaravel, instale ou atualize o pacote:
composer require freeline/pdv:^0.2.3 notagil/integration-sdk:^0.4.3 -W
Se o Composer ainda nao conhecer o repositorio do pacote, registre o repositorio
VCS antes do require:
composer config repositories.freeline-pdv vcs https://github.com/Freeline-Informatica/pdv composer require freeline/pdv:^0.2.3 notagil/integration-sdk:^0.4.3 -W
Depois limpe caches e confirme a descoberta do provider:
php artisan optimize:clear php artisan package:discover
Configuracao para ERP
Publique a configuracao:
php artisan vendor:publish --tag=pdv-config
No SimplesLaravel, o arquivo config/pdv.php deve manter o pacote em modo ERP e
desabilitar as migrations standalone:
return [ 'mode' => env('PDV_MODE', 'erp'), 'load_migrations' => true, 'load_standalone_migrations' => false, 'load_standalone_routes' => false, 'web_session_auth' => true, 'access_permission' => env('PDV_ACCESS_PERMISSION', 'pdv.acessar'), 'web_middleware' => ['web', 'auth', 'verified', 'pdv.web.access'], 'models' => [ 'user' => App\Models\User::class, 'product' => App\Domain\Produtos\Models\Produto::class, 'produto' => App\Domain\Produtos\Models\Produto::class, 'estabelecimento' => App\Domain\Pessoas\Models\Estabelecimento::class, ], 'adapters' => [ 'product_catalog' => App\Infrastructure\Pdv\Adapters\ErpProductCatalogRepository::class, 'stock_movement' => App\Infrastructure\Pdv\Adapters\ErpStockMovementService::class, 'operator' => App\Infrastructure\Pdv\Adapters\ErpOperatorResolver::class, 'company_context' => App\Infrastructure\Pdv\Adapters\ErpCompanyContextResolver::class, 'fiscal_config' => App\Infrastructure\Pdv\Adapters\ErpFiscalConfigProvider::class, 'payment_methods' => App\Infrastructure\Pdv\Adapters\ErpPaymentMethodRepository::class, ], 'vite_inputs' => [ 'resources/js/pdv/app.js', ], ];
Variaveis de ambiente usuais:
PDV_MODE=erp PDV_LOAD_MIGRATIONS=true PDV_LOAD_STANDALONE_MIGRATIONS=false PDV_FRONTEND_PATH=pdv PDV_API_PREFIX=api/pdv PDV_ACCESS_PERMISSION=pdv.acessar
Assets e frontend
Publique os assets quando instalar ou atualizar o pacote:
php artisan vendor:publish --tag=pdv-assets --force
No SimplesLaravel, mantenha o entrypoint local apontando para o pacote:
// resources/js/pdv/app.js import '../../../vendor/freeline/pdv/resources/app/js/app.js';
O vite.config.ts do SimplesLaravel precisa incluir resources/js/pdv/app.js
nos inputs e liberar leitura de vendor/freeline/pdv no server.fs.allow
durante desenvolvimento.
Depois compile:
npm install npm run build
Migrations necessarias
O provider carrega migrations diretamente do pacote. Nao e necessario copiar
arquivos para database/migrations.
SimplesLaravel / ERP
No ERP rode somente as migrations core. O proprio provider faz isso quando
PDV_MODE=erp e PDV_LOAD_STANDALONE_MIGRATIONS=false.
Antes de aplicar em producao, revise o plano:
php artisan migrate --pretend
Execute:
php artisan migrate --force
Se precisar rodar explicitamente apenas as migrations core do pacote:
php artisan migrate --path=vendor/freeline/pdv/database/migrations/core --force
Nao rode database/migrations/standalone no SimplesLaravel. Essas migrations
criam tabelas base que o ERP ja possui ou resolve por adapters.
Standalone
Em uma instalacao standalone, deixe o modo padrao ou configure:
PDV_MODE=standalone PDV_LOAD_STANDALONE_MIGRATIONS=true
Depois rode:
php artisan migrate --force
Nesse modo o provider carrega database/migrations/core e
database/migrations/standalone.
Rotas
Por padrao:
- Frontend:
/pdv - API:
/api/pdv
Esses prefixos podem ser alterados por:
PDV_FRONTEND_PATH=pdv PDV_API_PREFIX=api/pdv
Atualizacao do pacote
Para atualizar o pacote no SimplesLaravel:
composer update freeline/pdv notagil/integration-sdk -W php artisan optimize:clear php artisan vendor:publish --tag=pdv-assets --force php artisan migrate --force npm run build
Use php artisan migrate --pretend antes do migrate --force quando estiver
validando uma atualizacao em ambiente critico.