Skip to content

deadangroup/laravel-quickbooks

Repository files navigation

QuickBooks for multi tenancy

PHP client wrapping the QuickBooks PHP SDK.

Installation

  1. Install QuickBooks PHP Client:
$ composer require deadangroup/laravel-quickbooks
  1. 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.

Configuration

  1. You will need a quickBooksToken relationship on your User model. There is a trait named DGL\QuickBooks\HasQuickBooksToken, which you can include on your User 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.

  1. Add the appropriate values to your .env

    Minimal Keys

    QUICKBOOKS_CLIENT_ID=<client id given by QuickBooks>
    QUICKBOOKS_CLIENT_SECRET=<client secret>

    Optional Keys

    QUICKBOOKS_API_URL=<Development|Production> # Defaults to App's env value
    QUICKBOOKS_DEBUG=<true|false>               # Defaults to App's debug value
  2. [Optional] Publish configs & views

    Config

    A configuration file named quickbooks.php can be published to config/ by running...

    php artisan vendor:publish --tag=quickbooks-config

    Views

    View files can be published by running...

    php artisan vendor:publish --tag=quickbooks-views

Usage

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.

About

QuickBooks Tenancy Wrapper

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published