One of the well-refined features of our QuickBooks sync is the way in which our integration handles determining the sync of new customers in QuickBooks, and if they exist already in QuickBooks. In this article, we will discuss how our integration handles the logic of syncing customers.
When we sync an order to QuickBooks, the first thing we check is to see if the customer already exists in QuickBooks. We do this in the following priorities:
- Is the customer mapped in MyWorks Sync > Map? If so, the order is synced to the mapped customer in QuickBooks.
- If the customer is not mapped in MyWorks Sync > Map, or it is a guest order:
- We first check QuickBooks for a customer that exists with the email address they used to order. If this customer does exist in QuickBooks, we will sync the order into them.
- If no customer exists in QuickBooks with their email address, we will create a new customer record in QuickBooks, sync the order to this customer, and automatically map the Woocommerce customer to this QuickBooks customer in MyWorks Sync > Map.
It is important to note that we always use the email address field as the value to validate mappings between systems if a customer is not mapped. We do not use the customer names, as these may not be unique values.
Although the above logic is proven to work consistently in normal scenarios, there are exceptions where the above logic is not sufficient to support a robust and complete customer sync. Thus, we provide settings in our integration to anticipate scenarios like the following:
- When syncing an order to QuickBooks, the customer is not mapped but does exist in QuickBooks; but without a/matching email address to the order. In cases like this, we will attempt to create a new customer in QuickBooks, but it will likely return a Duplicate Customer Error because QuickBooks does not allow two customers to have the same name. In cases like this, the following solutions can be used:
- Turn on Append ID for Duplicate Customers in MyWorks Sync > Setting > Mapping. This will allow us to sync the additional customer into QuickBooks, and keep the name unique by appending their WooCommerce ID to their name.
- Add the appropriate email address to the customer in QuickBooks, and refresh data in our integration for us to recognize this.
- Slightly change the display name for the conflicting customer/vendor/employee in QuickBooks.
- When syncing an order to QuickBooks, the customer who placed the order in WooCommerce is not in the default WordPress “Customer” Role. This will result in a “Customer Not Found” error in our log, and can be resolved by:
- Adding the necessary customer role to MyWorks Sync > Settings > Mapping to Recognize other WordPress roles as a customer.