PHP client wrapping the QuickBooks PHP SDK.
- Install QuickBooks PHP Client:
$ composer require deadangroup/laravel-quickbooks
- Run our migration to install the
quickbooks_tokens
table:
$ php artisan migrate --package=deadangroup/laravel-quickbooks
The package uses the auto registration feature of Laravel.
- You will need a
quickBooksToken
relationship on yourUser
model. There is a trait namedDGL\QuickBooks\HasQuickBooksToken
, which you can include on yourUser
model, which will setup the relationship. To do this implement the following:
Add use DGL\QuickBooks\HasQuickBooksToken;
to your service container at the top of User.php
and also add the trait within the class. For example:
class User extends Authenticatable
{
use Notifiable, HasQuickBooksToken;
NOTE: If your User
model is not App/User
, then you will need to configure the path in the configs/quickbooks.php
as documented below.
-
Add the appropriate values to your
.env
QUICKBOOKS_CLIENT_ID=<client id given by QuickBooks> QUICKBOOKS_CLIENT_SECRET=<client secret>
QUICKBOOKS_API_URL=<Development|Production> # Defaults to App's env value QUICKBOOKS_DEBUG=<true|false> # Defaults to App's debug value
-
[Optional] Publish configs & views
A configuration file named
quickbooks.php
can be published toconfig/
by running...php artisan vendor:publish --tag=quickbooks-config
View files can be published by running...
php artisan vendor:publish --tag=quickbooks-views
Here is an example of getting the company information from QuickBooks:
NOTE: Before doing these commands, go to your connect route (default: /quickbooks/connect) to get a QuickBooks token for your user
php artisan tinker
Psy Shell v0.8.17 (PHP 7.1.14 — cli) by Justin Hileman
>>> Auth::logInUsingId(1)
=> App\User {#1668
id: 1,
// Other keys removed for example
}
>>> $quickbooks = app('DGL\QuickBooks\Client') // or app('QuickBooks')
=> DGL\QuickBooks\Client {#1613}
>>> $quickbooks->getDataService()->getCompanyInfo();
=> QuickBooksOnline\API\Data\IPPCompanyInfo {#1673
+CompanyName: "Sandbox Company_US_1",
+LegalName: "Sandbox Company_US_1",
// Other properties removed for example
}
>>>
You can call any of the resources as documented in the SDK.