timothydc / exact-online-laravel-client
EOL connector wrapper for the Laravel framework
Installs: 20
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
pkg:composer/timothydc/exact-online-laravel-client
Requires
- php: ^7.4|^8.0
- illuminate/support: *
- timothydc/exact-online-base-client: ^4.0
Requires (Dev)
- orchestra/testbench: ^6.17
README
This package includes routes for Exact authentication and allows for multithread safe access token refreshes.
Installation
Add these lines to your composer.json.
"repositories": [ { "type" : "composer", "url" : "https://packages.timothydc.app" } ]
Install the package via composer
composer require timothydc/exact-online-laravel-client
Add the private repository to the repositories section of your composer.json file:
Configuration
You can publish all resources, or you may choose to publish them separately:
php artisan vendor:publish --tag="exact-online-client" php artisan vendor:publish --tag="exact-online-client:config" php artisan vendor:publish --tag="exact-online-client:migrations"
Run your migrations to create the oauth_tokens table.
php artisan migrate
You can configure your connection variables in your .env file or in the published config/exact-online.php file.
Authentication
Initiate the authentication. Make sure you configured /exact-online/oauth/complete as your "redirect URL" in the Exact app center.
https://foo.bar/exact-online/oauth/start
Check if the API connection was successful
https://foo.bar/exact-online/oauth/test
Disconnect the EOL connection
https://foo.bar/exact-online/oauth/disconnect
Then you can use the Picqer library to CRUD Exact Online records.
use Picqer\Financials\Exact\Item; use TimothyDC\ExactOnline\BaseClient\ExactOnlineClient; $exactOnlineClient = resolve(ExactOnlineClient::class); // create a new product in EOL $item = new Item($exactOnlineClient->getConnection()); $item->Code = 'foo-bar'; $item->CostPriceStandard = 1.23; $item->Description = 'lorem ipsum'; $item->IsSalesItem = true; $item->SalesVatCode = 'VH'; $item->save();