Every 'Paid' order in Shopify is instantly converted into a detailed Sales Receipt in QuickBooks. Using Make.com iterators, every line item, tax rate, and discount is mapped accurately, ensuring your balance sheet is always audit-ready without manual intervention.
The Problem
Manual entry of Shopify orders into QuickBooks is time-consuming and prone to human error, especially regarding tax calculations and multi-item line mapping. Without automation, bank reconciliations become a nightmare as Shopify Payouts won't match the fragmented manual records.
The Outcome
Every 'Paid' order in Shopify is instantly converted into a detailed Sales Receipt in QuickBooks. Using Make.com iterators, every line item, tax rate, and discount is mapped accurately, ensuring your balance sheet is always audit-ready without manual intervention.
Step-by-Step Guide
1. **Establish Connections**: In Make.com, create a new scenario. Add a **Shopify** module and click 'Add' to authorize your store using the Admin API Access Token. Repeat for **QuickBooks Online** using OAuth2.
2. **Trigger Module**: Select 'Shopify - Watch Orders'. Set the 'Status' to 'any' and 'Financial Status' to 'paid'. This ensures we only sync revenue-ready data.
3. **Search for Customer**: Add a 'QuickBooks Online - Search Customers' module. Use the Shopify `Customer: Email` field as the search criteria to prevent creating duplicate customer profiles.
4. **Conditional Logic (Router)**: Add a Router. If the search returns no result, add a 'QuickBooks Online - Create a Customer' module using the Shopify billing address and name. If a result is found, proceed to the next step using the existing `Customer ID`.
5. **Handle Line Items (Iterator)**: Shopify sends items as an array. Add an 'Iterator' module and map the `Line Items[]` array from the Shopify trigger. This allows Make to process each product individually.
6. **Map Items to QuickBooks**: Add a 'QuickBooks Online - Create a Sales Receipt' module. **Crucial**: Set the 'Line Items' section to 'Map'. Inside the mapped array, use the SKU from the Iterator to link to your QuickBooks 'Item ID'.
7. **Data Transformation**: Use Make's built-in functions for tax. Example: `{{if(item.tax_lines[]; sum(map(item.tax_lines; "price")); 0)}}` to ensure tax totals match exactly.
8. **Account Mapping**: Assign a 'Deposit To' account (e.g., 'Shopify Clearing' or 'Undeposited Funds') to facilitate easier bank reconciliation later.
9. **Error Handling**: Right-click the QuickBooks Sales Receipt module and select 'Add error handler'. Use a 'Break' or 'Data Store' module to log failed syncs (e.g., missing SKUs) for manual review without stopping the entire scenario.