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.
- PHP 8.2 ou superior.
- Laravel 12.
notagil/integration-sdkna versao exigida pelo pacote.- Acesso ao pacote Composer
freeline/pdv.
No diretorio raiz do SimplesLaravel, instale ou atualize o pacote:
composer require freeline/pdv:^0.2.2 notagil/integration-sdk:0.3.2 -WSe 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.2 notagil/integration-sdk:0.3.2 -WDepois limpe caches e confirme a descoberta do provider:
php artisan optimize:clear
php artisan package:discoverPublique a configuracao:
php artisan vendor:publish --tag=pdv-configNo 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.acessarPublique os assets quando instalar ou atualizar o pacote:
php artisan vendor:publish --tag=pdv-assets --forceNo 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 buildO provider carrega migrations diretamente do pacote. Nao e necessario copiar
arquivos para database/migrations.
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 --pretendExecute:
php artisan migrate --forceSe precisar rodar explicitamente apenas as migrations core do pacote:
php artisan migrate --path=vendor/freeline/pdv/database/migrations/core --forceNao rode database/migrations/standalone no SimplesLaravel. Essas migrations
criam tabelas base que o ERP ja possui ou resolve por adapters.
Em uma instalacao standalone, deixe o modo padrao ou configure:
PDV_MODE=standalone
PDV_LOAD_STANDALONE_MIGRATIONS=trueDepois rode:
php artisan migrate --forceNesse modo o provider carrega database/migrations/core e
database/migrations/standalone.
Por padrao:
- Frontend:
/pdv - API:
/api/pdv
Esses prefixos podem ser alterados por:
PDV_FRONTEND_PATH=pdv
PDV_API_PREFIX=api/pdvPara 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 buildUse php artisan migrate --pretend antes do migrate --force quando estiver
validando uma atualizacao em ambiente critico.