

Posted in
February 27, 2018
When I was tasked with integrating QuickBooks accounting software with an existing Commerce 2.x installation, instead of asking questions a normal Drupal developer would, I asked myself one question: what exactly is QuickBooks? Though I’m a bit embarrassed, I’m not going to shy away from admitting that I have never had an opportunity to explore or be exposed to the QuickBooks accounting software. So, doing an integration first required me to research QuickBooks.

For the unaware (which I doubt there are any), QuickBooks is an accounting software businesses use to manage sales and expenses and keep track of daily business transactions. It’s often used to invoice customers, pay bills, generate reports, and for tax filing purposes. While there are many applications like it, QuickBooks is considered one of the better options in its class. You can learn more about QuickBooks on their website, but this fully-developed software takes care of all the different aspects of accounting. Thus, quite a few small to medium-scale businesses use QuickBooks because it makes life easy. However, the process becomes a little trickier if you're doing business online.
For a lot of customers who have an online store, a big pain for them is syncing their sale transactions like order, customer, tax and payment data into QuickBooks for bookkeeping. Basically, how do you transfer over your online transactions to QuickBooks?
We’ve had customers in the past who just assign a staff to sit and enter the days transactions, manually, at the end of each day. When you have hundreds of orders a day, especially, like during the holidays, this can be a huge headache. Not only are you wasting time and money by entering the duplicate data but you’re also exposing yourself to human errors. Because, at the end of the day, all this data is used for filing taxes, generating invoices, re-ordering products, etc., and any error in the data can wreak havoc.
So, out of this dilemma, quite a few Drupal modules came up which paved the way to integrating Commerce/Ubercart transactions into QuickBooks. But most of them are for Drupal 7. How do we integrate a Drupal 8 site running Commerce 2.x into QuickBooks? Essentially, that was my task. It was an excellent learning experience and I’m hoping that I can shed some light on the procedure for syncing your commerce data into QuickBooks.
Our job today will be trying to integrate a Drupal 8 Commerce 2 installation with QuickBooks Desktop. Before we start, I’d like to thank everyone who created the commerce_qb_webconnect module for all their awesome work and especially, Lucas Hedding (heddn), for supporting me in this endeavor.
Essentially, commerce_qb_webconnect, under the hood, uses migrate to export from D8 to a SOAP service destination. This also means that we have more flexibility, because any of the means to work and interact with a migration lets us interact and alter the exported details of a QuickBooks export as well.
The initial setup is as follows (I’m assuming that you already have been using QuickBooks Enterprise Desktop):
Download the Drupal module commerce_qb_webconnect
$ composer require drupal/commerce_qb_webconnectAt the time of this writing, the module has an 8.x-2.0 alpha version out and it contains most of the functionality required to get the commerce data into QuickBooks.
Go to /admin/commerce/config/commerce_quickbooks_enterprise/qwc and make sure your config looks like this:

Now, go to /admin/commerce/config/commerce_quickbooks_enterprise/quickbooksadmin and add the following configs and leave everything else as it is:

Now, go to the Web Connector and select the application we just uploaded with the .qwc file and hit 'Update Selected'. Make sure you enter the same password that we saved earlier (See setup step 5) for the password field.

Check QuickBooks Desktop to verify they have been added by clicking on 'Customer' and finding the name on the order there and then 'Recent Transactions' and then, Invoice/Sales Receipt. You can see the product in the 'Item' section. You can see the payment in the 'Payment' section by clicking on the 'Received From' select list and selecting the name on the order.

And voila! If everything worked, you should see all the details from the new transaction synced in your QuickBooks Enterprise Desktop. The need to waste time and money on manual entry and chances of user errors vanishes by integrating QuickBooks with your online Drupal 8 Commerce 2 store(s).
Would you like other apps integrated into your Drupal Commerce website, but need a hand doing it? We've done it many times and would love to help.