If you’re looking at integrating your desktop QuickBooks application with either your WooCommerce, there’s a few preliminary steps you can take to make the setup go smoothly. First, the biggest thing that you can do is make sure that you’re QuickBooks company file is completely setup, meaning setup for your business. All of your sales tax items should be in place, your chart of accounts should be established and you should have a clear understanding of how your products should be recorded in QuickBooks. While the QuickBooks Integration is a great time-saver when it’s all setup, it’s by no means an auto-accountant. If you’re just getting started and are unfamiliar with accounting or QuickBooks in general, you’ll definitely want to make sure you brush up on the basics so you at least understand the terminology.
Required QuickBooks Accounts
Below is a list of the accounts required in QuickBooks for the integration to work. Before proceeding, you’ll want to make sure that you have at least one account of each type in your QuickBooks chart of accounts. If you don’t, you should create one.
1. Income Account
2. COGs Account
3. Deposit Account
4. Asset Account
5. Accounts Receivable Account
6. Expense Account
Required QuickBooks Items
Below is a list of various items that are required in QuickBooks. You’ll want to double-check each of these and make sure that they exist.
1. Sales Tax Items – you’ll need to make sure that you have a QuickBooks sales tax item for each sales tax rate on your website. If they don’t exist, you should create them. Sales tax items map one-to-one with website sales tax rates.
2. Payment Methods – each website payment method needs to map to a payment method in QuickBooks.
3. Shipping Item – in order to record shipping / freight charged to customers, you should create a “Shipping Item” in QuickBooks. Here’s a link on how to create a shipping item from Intuit: Charge Shipping to Customers in QuickBooks
For best results, it’s recommended that the products exist in QuickBooks prior to starting the QuickBooks / Website integration. The extension does have the ability to setup website products in QuickBooks. Auto-created products in QuickBooks still require a certain level of intervention though as they won’t have costs, vendors and other data assigned to them. This is why we recommend that the products exist in QuickBooks first. Also, the base QuickBooks extension currently supports Inventory, Non-Inventory and Service items. Advanced inventory types such as groups or assemblies are not supported.
With that said, to link a website product with a QuickBooks item, the website product’s sku must match the Item Name / Number field for the corresponding product in QuickBooks. If you’re entering the skus by hand or individually, make sure that you don’t mistake zeros for the letter ‘O’. Once you’ve made sure that the sku matches the item name / number of the same product in QuickBooks, you can enabled the inventory sync column. The next time the web connector runs, that item will be picked up in the Inventory Sync routine and depending on the extension’s settings, either the price, quantity or both will be updated on the website with the values from QuickBooks. After the link has been successfully established, whenever the web connector runs, the product’s price and / or stock on the website will be updated with the values from QuickBooks.
Note: If you change the Item Name / Number in QuickBooks or the sku on the website, the link will be broken for that product.
Sending order’s shouldn’t even be attempted until all of your mappings, accounts and products are setup. The reason is, in order to programmatically create an order in QuickBooks, the extension needs to know specifics about what payment methods, tax rates, accounts and products exist in QuickBooks and how they relate to similar settings in your WooCommerce or Jigoshop website. After you’ve got all of your settings mapped and have verified all of your products can be found in QuickBooks and the QuickBooks Item Name / Number matches the website sku for the product, you can enabled the “Post Orders To QuickBooks” option. You should also consider enabled the “Store Order XML”, which will store the xml request to QuickBooks for the order. This is particularly useful for debugging when an order doesn’t go through.
When to send the order to QuickBooks?
To specify when an order should be queued to be transfered to QuickBooks, you can select the status from the “Order Status Trigger to send order to QuickBooks?” dropdown. What this setting does is specify when the order should be queued. By default, you should use “Completed”. This means that an order has theoretically been processed, shipped and you’ve received your money. At this point if you’re using QuickBooks primarily for accounting purposes, this is the time to transfer the order and have it entered into the books.
If you use QuickBooks for order fulfillment, you can try queuing the order at a different status, such as processing. This means, when an order’s status changes to processing, the order will be queued to be transferred to QuickBooks. The order status of processing does not assure that the order has been completed and shipped though and, for some reason you don’t ship the order and cancel or refund it in the website, it would need to be removed from QuickBooks as well.
How Should Orders be Posted To Quickbooks?
QuickBooks Premier and Enterprise users can specify whether the order should be created in QuickBooks as either a Sales Receipt or Sales Order. QuickBooks Pro users need use Sales Receipts only. If you are using sales orders, you can also specify to have an Invoice and Payment auto-created for the Sales Order. This is done at the time that the order is transferred to QuickBooks and is primarily meant for people who set the order status trigger to completed.
Note: When enabled, an Invoice AND Payment are created. It’s not possible to specify one or the other.
Line Item Description for Variations
If you’re not tracking variations of variable products in QuickBooks, when the order’s created in QuickBooks, the parent product is used for the line item. If you’d like the line item description to reflect the value of the variation chosen, you can enable this option: “Should the attribute values for variable products be used as the Sales Receipt / Sales Order line item description?“. When enabled, the line item description will be a combination of the attribute and the chosen value. So if it a large size was selected, the description would be Size:Large
If an order doesn’t go through, it’s likely one of the following is happening:
1. An item on the order can’t be found in QuickBooks
2. The payment method for the order isn’t mapped
3. Sales tax rates are mapped incorrectly
4. There’s no shipping item setup in QuickBooks
Go through all of your settings and make sure that everything’s mapped correctly. You can also look at the History tab in the extension for more details from QuickBooks about why the order didn’t transfer. If there are error’s complaining that the ListID is empty or that a ListID is invalid, that means that your account mappings are out of sync. To resolve, you should refresh your account mappings and re-save.
Charge shipping to customers
You can charge your customers for shipping by creating a shipping charge item and adding it to an invoice or cash sale.
To create a shipping charge item:
- Select the Lists menu and select Item List.
- Click the Items drop-down menu and select New.
- Click the Type drop-down menu and select Other Charge.
- In the Item Name/Number field, enter the item name.
- In the Amount or % field, enter what you charge for shipping (use 0.00 if shipping charges change from one sale to the next.)
- In the Account field, enter the account you will use to track the shipping charge.
- Click OK.
You can now use the new item to enter shipping charges on invoices and cash sales.
Default Account Options
This is the Income Account in QuickBooks that should be used when new website products are automatically created in QuickBooks.
This is the Cost-Of-Goods Account in QuickBooks that should be used when new website products are automatically created in QuickBooks.
This is the deposit account in QuickBooks used for creating sales receipts and payments for sales orders.
This is the asset account in QuickBooks that should be used when new website products are automatically created in QuickBooks.
This is the receivables account in QuickBooks that’s used when creating Invoices. Invoices are only created when the order posting type is set to “Sales Order” and the option to auto create invoices and payments is turned on.
This is the expense account used in QuickBooks when new website products are automatically created in QuickBooks.
Order Posting Options
Post Orders to QuickBooks
Enable this option when you’d like to send orders to QuickBooks. This option should ONLY be enabled once you’re product mappings have been setup. The value in the “Item Name / Number” field in QuickBooks should match the value for the “SKU” field in the corresponding website product.
Store Order XML?
If you’re just setting up your integration, it’s probably best to enable this option. When enabled, the actual request that goes to QuickBooks to create the order will be stored with the order. This will help debug if for some reason the order doesn’t transfer properly or at all.
Should the attribute values for variable products be used as the Sales Receipt / Sales Order line item description?
When checked. the “Attribute Value” for variations will be used as the Line Item Description for the variation on Sales Receipts and/or Sales Orders. This is particularly useful if there’s no need to keep track of variations in QB. For instrance, if you sold t-shirts (item name in QB: t-shirt) in red, yellow and blue, but didn’t want to keep track of each variation in QuickBooks, if this options were enabled, when the sales receipt / sales order was created, the line item would look like this:
Name : t-shirt
Not having this option selected, would just leave the standard description of the parent item t-shirt as the line item description
Auto-create Invoices and Payments
This option is only applicable when the order posting type is Sales Order. When enabled, a new invoice AND payment will created to close out the sales order. This option does not do anything when the order posting type is Sales Receipt as sales receipts are self-closing.
Order Status Trigger to send order to QuickBooks?
You can choose to send the order to QuickBooks when the order status reaches either “Pending”, “Processing” or “Completed”. Please remember that all orders MUST hit whatever status you choose. For instance if you choose “Pending’, but your orders go straight to “Processing”, the orders will never be queued to go to QuickBooks.
Add prefixes to your sales receipts, sales orders, invoices and paymnets
These are prefixes that you can use to identify website orders.
Create Individual Customer Accounts in Quickbooks
When enabled, each website customer will be created in QuickBooks if they don’t already exist. Each order for that customer on the website will then be placed under that customer in QuickBooks, to determine if the customer already exists in QuickBooks, the format laid out in the “How Should Customer Names be created in QuickBooks” field is used to query QuickBooks
How Should Customer Names be created in QuickBooks
This is the format that customer names are created and queried in QuickBooks
Default Customer Account
This is a default, catch-all customer account. This option is only used if the “Create Individual Customer Account in QuickBooks” is disabled. Otherwise, this customer account is ignored.
Payment Method Mappings
Map Your WooCommerce Payment Methods to Your QuickBooks Payment Methods
These are the mappings for your QuickBooks to WooCommerce payment methods. These mappings tells QuickBooks what the payment method on the website equals in QuickBooks. So if you have “Paypal” as a website payment method and wanted that to go under “Credit Card” in QuickBooks, you’d map PayPal to Credit Card in this section.
Sales Tax Mappings
QuickBooks Sales Tax Vendor
This is the name of the Sales Tax Vendor exactly as it appears in QuickBooks. This is who you pay your sales tax to.
Default No Tax Account
The default “no tax” account is the sales tax item in QuickBooks that has a zero percent sales tax rate. This is used to create orders where no tax was collected.
Map Your WooCommerce Sales Tax Codes to Your QuickBooks Sales Tax Codes
Each sales tax code on the website must correspond to a sales tax code in QuickBooks.
Map Your Local WooCommerce Sales Tax Rates to Your QuickBooks Sales Rates.
Each “local” sales tax rate that you have setup on the website MUST correspond to sales tax item in QuickBooks. If you have “local” sales tax rates setup on the website, but they don’t appear here, check to make sure that each sales tax rate on the website has a label associated with it.
Map Your WooCommerce Sales Tax Rates to Your QuickBooks Sales Rates.
Each sales tax rate that you have setup on the website MUST correspond to sales tax item in QuickBooks. If you have sales tax rates setup on the website, but they don’t appear here, check to make sure that each sales tax rate on the website has a label associated with it.
In order to transfer the shipping charges to your customers correctly as line items on the sales receipt / sales order, you need to have a “shipping item” setup in QuickBooks. If you’re unfamiliar with how this should look, here’s a link from Intuit on how to set this up:
Product Sync Settings
Sync Inventory On-Hand from QuickBooks
If checked, the on-hand quantity in the website will be updated with the on-hand quantity count from QuickBooks. Note: Stock management must be enabled on the website in order for this to have any effect.
Sync Price from QuickBooks
If checked, the price on the website will be updated with the price in QuickBooks.
Do you keep track of parent products for variations in QuickBooks?
If you don’t need to keep track of parent products of variable products, leave this item unchecked.
Do you keep track of variantions for variable products in QuickBooks?
If you don’t keep track of variations of variable products, you should leave this option unchecked. If you do track variations separately in QuickBooks, this item should be checked.
Unique Product Identifer Mapping for Quickbooks
You can choose to use either sku or product id. Sku is the recommended option and product id will be deprecated in future releases. You should use sku.
Change WooCommerce stock status when QuickBooks quantity goes above or below zero?
If this is enabled, then the extension will change the a product’s stock status to “In Stock” and “Out of Stock” and the quantity is greater then or less than zero. This options should only be used if your QuickBooks items are “Inventory” items.
Auto-create website products in QuickBooks if they can’t be found?
If this option is enabled, products that can’t be found in QuickBooks based on the website’s sku field, will be automatically created. This option is still in beta and should be used to “setup” your QuickBooks inventory. Auto-created options will still require a certain level of intervention from your end. You will still need to enter costs, manufacturers, etc. If you’d like to use this feature, make sure that either “Sync Price from QuickBooks”, “Sync Inventory On-Hand from QuickBooks” or both are enabled.
Are Variations Subitems of the Parent product in QB?
If you’re keeping track of variations in as separate items in QuickBooks, enabling this options means that the variations that you’ve setup in QuickBooks are sub items of the parent product in QuickBooks.
Default QuickBooks Item Type for auto-created products?
If you have “Auto-create website products in QuickBooks if they can’t be found?” enabled, this is the QuickBooks Item Type that they will be auto-created as. Current supported item types are “Inventory”, “Non-Inventory” and “Service”.
How Often Should the Inventory Sync run?
This is the time (in minutes) between inventory syncing. Setting this to a time other than what’s in the web connector auto-run interval, is particularly useful if your QuickBooks catalog has a lot of items. For instance, let’s say you want the web connector to run every 5 minutes to check for new orders, but sync inventory only needs to happen every 60 minutes. You can set the web connector auto-run interval to 5 min and then set this value to 60.
Common Errors & Fixes
QuickBooks 1012 Authentication Failed
After initiating Intuit’s Web Connector, the sync fails and your receive the error message QBWC102 Authentication Failed. When clicking the “Click for more information” in Intuit’s web connector, a dialog box appear on your desktop with the following information. :
Message: Authentication failed
Description: QBWC1012: Authentication failed due to the following error message. The remote name could not be resolved: ‘your domain.com’ See QWCLog for more details. Remember to turn logging on.
Why You’re receiving this message:
A DNS error on your PC is preventing Intuit’s Web Connector from connecting to your website.
How to correct this error:
You can correct this issue by rebooting the computer that is running Intuit’s Web Connector. This will clear the DNS error and allow Web Connector to connect to your website.
Common Problems & Fixes
QuickBooks 3140 Transaction Sales Tax is currently disabled by preferences.
If you receive the following message when trying to create a sales order / sales receipt in QB, then you have sales tax disabled in your company settings:
3140: There is an invalid reference to QuickBooks ItemSalesTax “No Sales Tax – Website” in the SalesReceipt. QuickBooks error message: Transaction Sales Tax is currently disabled by preferences
To correct this message, you’ll need to enable sales tax at the company level by following these steps.
- Open QuickBooks with the correct company file
- Click the Edit menu then Preferences
- From the left vertical tool bar, select Sales Tax
- Click the Company Preferences tab
- Select Yes in the ‘Do you charge sales tax’ field. (This is a temporary change)
- Make sure there is a ‘Most common sales tax’ entry
- Click OK.
- Uncheck both boxes in the ‘Update Sales Tax’ dialog box then click OK.
- You may need to click OK to a confirmation about closing windows.
QuickBooks 3270 Missing posting account
QuickBooks error code 3270: Missing posting account pertains to trying to create a sales order in a version of QuickBooks that doesn’t allow sales order creation. All versions of QuickBooks will let you view sales orders, but only certain versions of QuickBooks lets you create new sales orders.
If you’re using QuickBooks Pro, you will receive that message when trying to send website orders to QuickBooks as Sales Orders. You’ll need to change the order posting type to Sales Receipts.
Warning: mcrypt_encrypt(): Key of size 10 not supported by this algorithm.
If you receive the following warning while trying to generate a qwc file on your site, take the steps listed below to correct the issue:
Warning: mcrypt_encrypt(): Key of size 10 not supported by this algorithm.
- Install the latest version of the plugin
- Once the latest version of the WooCommerce QuickBooks Integration has been installed, click the Reset QWC Users button
- Re-enter the username, password and ssl path
- Click the Generate QWC File button
- Remove the old QWC file from Intuit’s webconnector
- Add the new QWC file from Intuit’s webconnector
After you do those steps, you shouldn’t have to take any further action.