Best Practices

Use "Orders with line items" for product-level analysis

The standard Orders entity gives you one row per order. If you need to analyze which products are selling, use Orders with line items instead — it expands each order into individual product rows, making pivot tables and revenue-by-product analysis much easier.

Filter by date range on large stores

If you have thousands of orders, pulling all data at once can cause timeouts. Use the After date and Before date filters to load data in chunks — for example, the last 90 days for a live dashboard and historical data as a separate one-time export.

Combine Orders and Customers with a Join

The Orders entity includes a customer_id field. Add the Customers entity as a second source in the same data flow and use the Join transformation on customer_id to enrich each order with customer lifetime value, email, and location — without any manual VLOOKUP work.

Use the Columns setting to trim unnecessary fields

WooCommerce responses include many nested metadata fields that you probably don't need. Specify only the columns you want in the Columns step of the data flow. This speeds up the run and keeps your destination clean.

Data refresh and scheduling

Match refresh frequency to your reporting needs

For a daily sales dashboard, a once-per-day refresh is sufficient. For operational monitoring (e.g., watching for failed or on-hold orders), hourly refreshes make more sense. Use the Status filter on the Orders entity to pull only the statuses you care about — this reduces data volume and speeds up each run.

Run a successful manual sync before scheduling

Always complete a manual run first to confirm your credentials, filters, and destination are all working correctly. Scheduling is only available after a successful run.

Append historical data separately

If you need a full historical record, do a one-time export with a wide date range and load it into your destination. Then set your scheduled data flow to pull only recent data (e.g., the last 7 or 30 days) using the After date filter. Use the Append transformation to merge both datasets.

Performance optimization

Filter by order status to reduce payload size

If you only care about completed sales, set the Status filter to "Completed" rather than pulling all statuses. This is especially important on high-volume stores where processing, cancelled, and failed orders would otherwise double or triple your row count.

Use aggregated report entities for dashboards

For high-level KPI dashboards, prefer Report entities (Sales report, Top sellers, Order totals) over raw Orders data. They return far fewer rows and run much faster, which matters when you're refreshing data multiple times per day.

Common pitfalls

triangle-exclamation

Do

  • Use the exact canonical URL of your store (after all redirects)

  • Set API key permissions to Read

  • Use date filters to avoid timeouts on large datasets

  • Use Orders with line items when you need product-level detail

Don't

  • Use HTTP if your store serves HTTPS (or vice versa)

  • Pull all orders without a date or status filter on stores with 10k+ orders

  • Expect product variations to appear as separate rows

  • Rely on the Search filter for partial matches — it's exact match only

Last updated

Was this helpful?