Applies to Version(s): 3.9.x Series
Complexity Level: Medium
In this article, you will learn:
How to Enable QuickBooks
Note: You can only use Quickbooks Online. Quickbooks Desktop and the Quickbooks Enterprise versions are not compatible with this. If you have Desktop or Enterprise, you will need to activate Webgility and set that up. Also, only the US Version is applicable in PinnacleCart. For more information regarding this, you can refer to Intuit's Support Page.
1. Log into your cart Admin and go to "Apps".
2. You will then see a button on the upper right that says "App Center". Click this to get to all Apps.
3. Next, find the QuickBooks App.
4. Click the Connect to QuickBooks icon found at the upper right corner.
5. After clicking that button, a log in screen for Intuit QuickBooks will pop up.
6. Now that your account has been connected to QuickBooks, go back to Apps and it will show all the apps that are currently active. You can click on this and it will show you all your Sync information.
Important: In order to synchronize order data properly, please enable Shipping & Discount in your QuickBooks Online settings (Go to Settings > Company Settings > Sales). Set both Shipping and Discount to On.
QuickBooks Online Settings
You can adjust the settings below at any time by clicking the green QuickBooks online settings button on the upper left corner as shown below.
- Customer synchronization rule. The current PinnacleCart QuickBooks Online integration has 2 options for updating customers’ data:
- Add new customer / ignore existing
- Add new customers and update existing
For customers that haven’t been synchronized yet, the synchronization engine will try to find their records on the QuickBooks Online side base on the customer’s email address. If the record already exists in QuickBooks Online, then the synchronization engine will store QuickBooks Online ID for this customer in a local PinnacleCart database. Then, based on the selected option for Customer synchronization rule, the engine will push customer’s data to QuickBooks Online (option Add new customers and update existing) OR will ignore that customer (will not update data on the QuickBooks Online side).
For customers that already were synchronized with QuickBooks Online, based on the selected option for Customer synchronization rule, the engine will push customer’s data to QuickBooks Online (option Add new customers and update existing) OR will ignore that customer (will not update data on the QuickBooks Online side).
Note: QuickBooks Online requires customer names to be unique within the system. The Synchronization Engine will append a number to the customer’s name in the case of duplicates (two or more customers with the same name). The synchronization engine will append a number to the customer’s name in the case of duplicates.
- Product synchronization rule. The current PinnacleCart QuickBooks Online integration has 2 options for how to update product data:
- Add new products / ignore existing
- Add new products and update existing
For products that haven’t been synchronized yet, the engine will try to find matching products on the QuickBooks Online side using the Product ID / SKU so, the Product ID in PinnacleCart and must match SKU in QuickBooks Online. If a record already exists in QuickBooks Online then the synchronization engine will store the QuickBooks Online ID for this product in the local PinnacleCart database, and then, based on the selected option for Product synchronization rule the engine will push the product’s data to QuickBooks Online (option Add new products and update existing) OR will ignore that product (will not update data on the QuickBooks Online side).
For products that already were synchronized with QuickBooks Online, based on the selected option for Product synchronization rule engine will push the product’s data to QuickBooks Online (option Add new products and update existing) OR will ignore that product (will not update data on the QuickBooks Online side).
Note 1: The synchronization engine synchronizes products with the variants and products without the variants separately. So if a product has few variants in it, all these variants will appear in QuickBooks Online as separate items.
Note 2: QuickBooks Online requires item/product names to be unique within the system. The Synchronization Engine will append a number to the product name in the case of duplicates.
- Pull stock from QuickBooks? This option activates inventory control and allows to synchronize stock between multiple stores using QuickBooks Online as a central data hub or a master record. When PinnacleCart pushes orders to QuickBooks Online, QuickBooks Online automatically adjusts inventory for “inventory items” (it decreases stock based on quantity purchased). PinnacleCart pulls that new stock number from QuickBooks Online and stores it into PinnacleCart database (updates product/product variant) record.
- Inventory buffer settings. This option works when “Pull stock from QuickBooks?” has been enabled. It prevents products to be oversold if the merchant has multiple sales channels. The new inventory quantity that was pulled from the QuickBooks Online will be adjusted accordingly to that value.
- Adjust stock on unprocessed orders? As Synchronization Engine synchronizes only complete orders, this means that stock for placed but unprocessed items will not affect QuickBooks Online quantity on hand value. By enabling this option, new stock value will be adjusted based on quantity of unprocessed items.
- Default Tax Code - tax code that will be used to track taxes for taxable items.
- Non-taxable Tax Code - tax code that will be used to track sales on non-taxable products.
- Products Expense Account - expense account used to pay the vendor for the products.
- Product Income Account - posting account that records proceeds from the sale of items.
- Product Asset Account - inventory asset account that tracks the current value of the inventory.
- Sales Deposit Account - sales deposit account where funds will be deposited after sale.
Synchronization Process
The synchronization process may be triggered in 2 different ways:
- Manually using “Synchronize Now” button on the QuickBooks Online page
- Using cron script - if QuickBooks Online is active and crons are set up, then it will automatically run every hour.
The synchronization process happens in the following order:
- Engine checks - The synchronization job already running. If this job is not older than 59 minutes then it skips the initiated synchronization process.
- Engine records current time to mark synchronization start time - If date is not clear it means that the synchronization process is already running.
- Engine initializes the connection to QuickBooks Online and retrieves QuickBooks Online company information. In this manner we check are permissions valid and get information is inventory control support enabled.
- Engine synchronized customers (see notes for the “Customer synchronization rule” settings option).
- Engine synchronizes products WITHOUT variants (see notes for the “Product synchronization rule” settings option).
- Engine synchronizes products WITH variants (see notes for the “Product synchronization rule” settings option).
- Engine synchronizes orders.
- If inventory control support enabled in QuickBooks Online and “Pull stock from QuickBooks?” settings option is set to Yes, engine synchronized quantity on hand (stock).
- Engine resets (clears) synchronization start date.
Questions and Clarifications
Q: Does the sync send over orders that are in the Process status?
A: No, it only sends over orders that the cart considers complete, which requires them to be in the "Completed" status
Q: Does this work with QuickBooks Desktop or Enterprise?
A: No, it only works with QuickBooks Online at this time though plans are in the works to support more options.
If you didn't get your question answered, please contact the PinnacleCart Support Team. To submit a ticket, go to the My Account drop-down menu at the top right of the admin area and select Support.