aibianchi / exact-online-bundle
A Bundle for Exact Online API
Installs: 184
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Type:symfony-bundle
Requires
- php: ^7.2
- doctrine/doctrine-bundle: *
- guzzlehttp/guzzle: ^6.2
- symfony/framework-bundle: ^4.4
This package is auto-updated.
Last update: 2025-04-28 20:27:14 UTC
README
Author: Bianchi Jefferson
Website: https://aibianchi.com
Mail: Jefferson@aibianchi.com
Exact Online doc: https://support.exactonline.com/community/s/knowledge-base#All-All-DNO-Content-getting-started
Requirements
Guzzle 6branch for:
Symfony version 4.4
php version 7.2
STEP 1
Create your APP on : https://apps.exactonline.com/be/fr-BE/V2/Manage/
STEP 2
composer require aibianchi/exact-online-bundle
STEP 3
Now you can use multi account ( by country )
config/package/exact_online.yaml
exact_online:
Belgium:
baseUrl: https://start.exactonline.be/
apiUrl: api/v1
authUrl: api/oauth2/auth
tokenUrl: api/oauth2/token
redirectUrl: https://YOURURL/ExactRequest
clientId: YOURID
clientSecret: YOURSECRET
France:
baseUrl: https://start.exactonline.fr/
apiUrl: api/v1
authUrl: api/oauth2/auth
tokenUrl: api/oauth2/token
redirectUrl: https://YOURURL/ExactRequest
clientId: YOURID
clientSecret: YOURSECRET
Nerderland:
baseUrl: https://start.exactonline.nl/
apiUrl: api/v1
authUrl: api/oauth2/auth
tokenUrl: api/oauth2/token
redirectUrl: https://YOURURL/ExactRequest
clientId: YOURID
clientSecret: YOURSECRET
Spain:
baseUrl: https://start.exactonline.es/
apiUrl: api/v1
authUrl: api/oauth2/auth
tokenUrl: api/oauth2/token
redirectUrl: https://YOURURL/ExactRequest
clientId: YOURID
clientSecret: YOURSECRET
STEP 4
You should to update your database:php app/console doctrine:schema:update --force
STEP 5
In your controller :
use aibianchi\ExactOnlineBundle\Manager\ExactManager;
public function indexAction(Request $request, ExactManager $exactManager)
{
// the code sended by exact online when the first auth
$code = $request->query->get('code');
//$exactManager->init($code, "Belgium"); // use init for the first Authentification, after that you should to use refreshtoken();
$exactManager->refreshToken("Belgium");
}
Next go to http:// YOUR URL.com/ExactRequest Your authentication login will be required, this session will expire after 10 minutes If you want to keep this session active, you should to replace function init() by refreshToken()
Usage
Init
$code = $request->query->get('code');
$exactManager = $this->get("exact_online.manager");
//$exactManager->init($code); // first init
$exactManager->refreshToken(); // after first init
getList($page, $maxPerPage)
(with pagination)$listAccount = $exactManager->getModel("Account")->getList(1,5);
foreach ($listAccount as $account){
dump($account);
}
findBy()
$criteria = array('AddressLine1' => 'Koningin Astridlaan 166');
$select = array ("AddressLine1", "BusinessType", "CountryName", "Created");
$orderBy = array('Created' => 'desc');
$limit = 1 ;
$account = $exactManager->getModel("Account")->findBy($criteria,$select,$orderBy,$limit);
dump($account);
find
(guid)account = $exactManager->getModel("Account")->find("587707b8-94aa-426a-b7db-56d434d9e83a");
persist()
$item = new Item();
$item->setCode(rand());
$item->setCostPriceStandard(5);
$item->setDescription("description de test");
$item->setIsSalesItem(true);
$item->setSalesVatCode('VN');
$exactManager->persist($item);
update()
$account = $exactManager->getModel("Account")->find("587707b8-94aa-426a-b7db-56d434d9e83a");
$account->setWebsite("https://aibianchi.com");
$exactManager->update($account);
remove()
$account = $exactManager->getModel("Account")->find("587707b8-94aa-426a-b7db-56d434d9e83a");
$exactManager->remove($account);