Shopify Orders to Xero Invoices & Payments (Zapier)

Automatically sync Shopify sales to Xero with automated reconciliation and multi-step data formatting.

Tools: ShopifyXero

Platform: Zapier

Short Answer

Every new Shopify order is converted into a detailed Xero Sales Invoice, creating/updating customer contacts and applying payment records automatically. This ensures your Profit & Loss statement is accurate in real-time without manual intervention.

The Problem

Manual entry of sales data from Shopify to Xero leads to human error, delayed financial reporting, and mismatched tax records. This causes significant reconciliation headaches during month-end closing, especially as order volume scales.

The Outcome

Every new Shopify order is converted into a detailed Xero Sales Invoice, creating/updating customer contacts and applying payment records automatically. This ensures your Profit & Loss statement is accurate in real-time without manual intervention.

Step-by-Step Guide

1. **Create the Zap**: Log in to Zapier and click 'Create Zap'. 2. **Configure Shopify Trigger**: Select 'Shopify' as the Trigger app and 'New Order' as the Event. Choose 'paid' as the Order Status (to ensure you only sync completed transactions). 3. **Connect & Test**: Authenticate your Shopify store using the .myshopify.com URL. Pull a recent order as test data. 4. **Format Customer Data**: Add a 'Formatter by Zapier' step. Use 'Text' -> 'Split Text' to separate the Shopify Full Name into First and Last names if needed for your Xero contact structure. 5. **Sync Contact to Xero**: Add a Xero step: 'Find or Create Contact'. Map the Shopify email and use the 'Create Xero Contact if it doesn't exist yet' checkbox. Map Name and Address fields. 6. **Create Sales Invoice**: Add a Xero step: 'Create Sales Invoice'. Set Status to 'Authorised'. Map the Shopify Order Number to 'Invoice Number' and the Line Items to the Xero 'Line Items' fields. 7. **Map Product SKUs**: Ensure Shopify `Line Item SKU` maps to Xero `Item Code`. This is critical for inventory ledger accuracy. 8. **Add a Filter Step**: Before applying payment, add a 'Filter by Zapier' step. Set it to only continue if `Financial Status` (from Shopify) exactly matches `paid`. 9. **Create Payment in Xero**: Add a final Xero step: 'Create Payment'. Map the 'Invoice ID' from Step 6, set the 'Amount' from the Total, and select your Shopify Clearing Bank Account in Xero. 10. **Error Handling**: Use 'Zapier Manager' or the 'Error Handling' option (on Pro plans) to notify you via Slack if a SKU is missing or a tax rate mismatch occurs.

Data Mapping

| Shopify Field | Xero Field | Zapier Tool/Syntax | Requirement | | :--- | :--- | :--- | :--- | | `Customer Email` | `Contact Email` | Direct Mapping | **Required** | | `First + Last Name` | `Contact Name` | `{{Step2__First}} {{Step2__Last}}` | **Required** | | `Order Number` | `Invoice Number` | `{{Step1__Order_Number}}` | Optional (Recommended) | | `Line Items: SKU` | `Item Code` | Direct Mapping | **Required** for Inventory | | `Line Items: Price` | `Unit Amount` | Direct Mapping | **Required** | | `Total Tax` | `Total Tax` | Direct Mapping | **Required** | | `Financial Status` | `Payment Status` | Filter by Zapier (`paid`) | Conditional |

Gotchas & Failure Modes

- **Tax Rate Mismatches**: Xero requires specific Tax Types (e.g., 'OUTPUT'). If your Shopify tax doesn't exactly match a Xero Tax Rate, the Zap will fail. Use a lookup table (Formatter) to map 0.07 to '7% Sales Tax'. - **Inventory SKU Lock**: If a SKU exists in Shopify but not in Xero Inventory, the Invoice creation will error. Ensure product codes are synced before turning the Zap on. - **Rate Limiting**: Shopify's API is robust, but if you process 100+ orders simultaneously (e.g., a flash sale), Zapier may throttle tasks. Monitor the Task History for 'Delayed' status. - **Rounding Discrepancies**: Zapier maps items individually. Sometimes 1-cent differences occur between Shopify and Xero totals due to tax rounding. Use a 'Rounding Adjustment' line item if necessary.

Verification Checklist

- [ ] **Trigger Check**: Does the test order from Shopify show all Line Items and Customer details? - [ ] **Contact Search**: Does the 'Find or Create' step find existing customers without creating duplicates? - [ ] **Invoice Status**: Is the Xero invoice created as 'Authorised' (ready for payment) rather than 'Draft'? - [ ] **Payment Reconciliation**: Does the 'Create Payment' step apply to the correct Bank Account in Xero? - [ ] **Live Test**: Send a $0.01 test transaction through Shopify and verify the invoice appears in Xero within 2 minutes.

Ready to Automate?

Build this automation with Zapier in minutes.