Ubercart QuickBooks integration solution
1. What is UC QB per order?
UC QB per order is a drupal module. It works with drupal e-commerce module Ubercart and QuickBooks API module to synchronize Ubercart orders to Intuit's QuickBooks Accounting Software.
Integrate Ubercart with Intuit QuickBooks by using the QuickBooks Web Connector. Simply install the required modules and proper settings, QuickBooks will import the orders information from an Ubercart store by one figure click.
- Able to choose which orders you want to import to QuickBooks.
- Import Ubercart orders into Quickbooks as Sales Receipts or Invoices.
- Match Ubercart with QuickBooks customers and items or create if non-existent.
- Map Ubercart with QuickBooks accounts, shipping, taxes, payment method and customer message.
- Create a QuickBooks class to track your orders.
- Multiple currencies supported.
- Tests with QuickBooks 2009-2011 US and Canadian version.
- Drupal Ubercart web store installed and proper setup.
- Drupal QuickBooks API module installed.
- A SSL certificate installed at your web store.
- QuickBooks 2009-2011 US or Canadian version (other versions may work but have not been verified).
- QuickBooks Web Connector (free download here).
In order to better illustrate, I have used a specific web store centparts.com for this tutorial.
5.1 QuickBooks API installation
Download QuickBooks API. Install and enable QuickBooks and Web connector modules.
5.2 Web Connector installation
Download QuickBooks Web Connector and install on the same computer system in which your QuickBooks software is installed on.
5.3 QuickBooks API & Web Connector setup
5.3.1 Create a new user (I choose username 'qbwc_user') at your Drupal store.
5.3.2 Navigate to Drupal user permission and enable 'access qbwc' for 'anonymous user' (I have to give 'anonymous user' access permission to get it to work.).
5.3.3 Navigate to Administer > Site configuration > Quickbooks and fill in the form and save configuration.
5.3.4 Click link "Download QWC file" to download the 'drupal.qwc' xml file.
5.3.5 Create a new drupal page and set URL path is 'qbwc'. Make sure you can access https://centparts.com/qbwc by browser. (This step may not be necessary, but it is the only way I got it to work for me.)
5.3.6 Launch your QuickBooks Web Connector which installed at step 5.2.
5.3.7 Launch your QuickBooks software and signin to your company file.
5.3.8 Click the 'Add an application' button and select 'drupal.qwc' which downloaded at step 5.3.4.
5.3.9 QuickBooks will prompt a dialog to ask you to authorize new web service.
5.3.10 Click OK to close the dialog. You will notice the Web Connector added a new application. Add user qbwc_user password to the dialog.
5.3.11 Now you can delete the page created at step 5.3.5.
5.3.12 Open QuickBooks Preferences dialog (Edit > Preferences...) and go to the Integrated Applications > Company Preferences tab.
5.3.13 Pick an application (in this case it is nano1store) and click Properties... button.
5.3.14 In the Properties dialog, uncheck Prompt before allowing access, check Allow this application to login automatically and choose login as. Click OK to close the dialog. If you have set the company file path in 5.3.3 form, now your Web Connector is able to import orders to QuickBooks even if QuickBooks is not running.
5.3.15 Test Web Connector is working. Wait 5 minutes the Web Connector will auto-run. If you can't wait, do as 5.3.16.
5.3.16 Check the checkbox before the Application name, and click Update Selected button.
5.3.17 If you see the Status column display "Last result: No data exchange required" then your Web Connector has worked properly.
5.4 UC QB per order installation
5.4.1 Download UC QB per order module and install as usual.
5.4.2 You need to wait a few minutes and navigate to Administer > Site configuration > UC QuickBooks per order settings. If you see the screen shot below, you will likely need to wait longer until UC QB per order module communicates with QuickBooks has completed.
5.4.3 Once the form is populated, you need to finish the form according to your parameters. (your form will not be the same as mine it depends on your own parameters)
5.4.4 In order to track store orders in QuickBooks, create a class in QuickBooks and map to store.
5.4.5 If you need to use multiple currencies feature, copy the file qbxml.8.0.inc in UC QB per order module to QuickBooks API module folder qb/includes/qbxml/. And modify qb.inc as below. (I agree it's not good to hack other module, but I have no choice.)
$form['qb_version'] = array(
'#type' => 'select',
'#title' => t('Quickbooks API version'),
'#options' => array(
'5.0' => '5.0',
'6.0' => '6.0',
'7.0' => '7.0',
'8.0' => '8.0' // new
'#default_value' => variable_get('qb_version', QB_VERSION_DEFAULT),
Now that you have done all settings!
6.1 Navigate to Administer > Store administration > orders > view orders.
6.2 Click view order icon into order detail page. You will see a pane at the bottom.
6.3 Choose are going to import as sales receipt or invoice and click submit.
6.4 Wait a few minutes or repeat 6.2 - 6.3 add more orders in import queue.
6.5 Check your QuickBooks, the Ubercart order has been imported to QuickBooks successfully!
6.6 Check the order in Ubercart.
At Drupal site:
git clone --branch master email@example.com:sandbox/toptons/1279950.git uc_qb_per_order
At Google code:
8. Wrapping up
This ends our quick tutorial of UC QB per order module. Be sure to give it a try and compare how much time can be saved by manually recording your online orders into QuickBooks!
Comments are welcome and will help us to improve UC QB per order module.
9. Change logs
[Nov 8, 2011]
- correction of using QuickBooks US version importing tax.
- Change sales receipt deposit to bank account.
- Follow drupal coding standard.
|Drupal 6 quickbooks module||128.35 KB|