Infinite Reports

1. Overview

↑ Back to top

Infinite Reports lets you build, filter, schedule, and export custom WooCommerce reports (Orders, Products, Customers, Refunds, and — when active — Subscriptions and Bookings) without writing code. Select the exact columns you need (including custom meta and taxonomy terms), apply multiple AND/OR filters, preview results instantly, export to CSV or XLSX, and optionally deliver reports automatically by email or webhook on a daily, weekly, or monthly cadence.

Use cases: Finance summaries, merchandising stock snapshots, marketing attribution (via UTM & referrer fields), customer cohort analysis, fulfillment QA, high-spend customer lists, product performance digests, refund tracking, subscription MRR, upcoming bookings.

2. Installation

↑ Back to top
Marketplace Install
  1. Purchase and download the extension from WooCommerce.com (or activate if already in your subscriptions).
  2. Go to: WooCommerce > Extensions > My Subscriptions > Activate.
  3. Auto‑updates occur while your subscription remains active.
Manual Install (ZIP)
  1. In WP Admin: Plugins > Add New > Upload Plugin.
  2. Select the ZIP, click Install Now, then Activate.
  3. Navigate to WooCommerce > Settings > Infinite Reports.

3. Core Concepts

↑ Back to top
  • Report – A saved configuration consisting of a Type, Columns, Filters, Logic, Output Format, and (optionally) a Delivery Schedule.
  • Report Type – Orders, Products, Customers, Refunds, Subscriptions (when WooCommerce Subscriptions is active), or Bookings (when WooCommerce Bookings is active).
  • Starter Templates – Pre-configured reports (columns, filters, schedule) you can apply with one click when creating a new report.
  • Columns – Standard data points plus dynamic custom meta fields (for orders/products) and taxonomy terms (categories, tags, shipping class).
  • Filters – Field / Operator / Value rows (equals, contains, greater than, is empty, etc.).
  • Filter Logic – Match ALL (AND) or ANY (OR) conditions.
  • Output Format – CSV (lightweight, machine-readable) or XLSX (Excel-native, formatted for non-technical recipients).
  • Preview – Real‑time paginated sample of the resulting dataset before saving/exporting.
  • Digest (Automatic Delivery) – Scheduled recurring export delivered to email recipients and/or a webhook URL.
  • Run Now – On-demand trigger that fires the digest immediately, independently of the schedule.
  • Delivery History – Per-report log of every run with status, duration, payload size, and failure message.

4. Quick Start

↑ Back to top
  1. Go to WooCommerce > Settings > Infinite Reports.
  2. Click “Add Report”.
  3. Pick a starter template (Daily Sales Summary, Failed Payments, Refund Watch, Top Products, Out-of-Stock Alert, New Customers, Subscription MRR, Upcoming Bookings) or click “Or start from scratch”.
  4. Name the report and choose a Type (Orders / Products / Customers / Refunds / Subscriptions / Bookings).
  5. Choose the Output Format (CSV or XLSX).
  6. Select Columns (multi‑select) > Drag to reorder > Optionally set custom labels.
  7. Add Filters (optional) and choose Filter Logic (ALL or ANY).
  8. Click “Preview Report” to validate results.
  9. (Optional) Enable “Automatic Delivery” and configure schedule, recipients, webhook, and branding.
  10. Save Report. The report appears in the list table with its next scheduled run and last-run status.

5. Starter Templates

↑ Back to top

When you click “Add Report” you’re shown a gallery of starter templates. Each one prefills columns, filters, and a sensible default schedule for a common use case. Pick one to skip the blank-page step; you can edit anything afterwards. Templates that depend on optional plugins (Subscriptions, Bookings) only appear when those plugins are active.

6. Creating & Editing Reports

↑ Back to top

The editor screen groups configuration into: Basic Settings (Name, Type, Output Format), Columns, Filters, Preview, Automatic Delivery, and Branding.

Output Format
  • CSV – Machine-readable. Empty cells stay empty for clean parsing. Best for BI tools, ETL, or scripts.
  • XLSX – Excel-native, with bold and frozen header row plus auto-sized columns. Best for non-technical recipients who open the file in Excel, Numbers, or Google Sheets.
Columns
  • Select from “Columns” (standard) and “Custom Fields” (automatically discovered meta keys for that type).
  • Change display order by dragging within the “Customize Columns” list.
  • Add a custom label to improve clarity for recipients (e.g., rename billing_first_name to “First Name”).
Filters

Each filter row: Field + Operator + Value. Unneeded rows can be removed. The logic selector determines whether all conditions (AND) or any (OR) must match.

  • Operators: Equals, Does not equal, Greater than, Less than, Contains, Does not contain, Starts with, Ends with, Is empty, Is not empty.
  • Date and numeric comparisons use appropriate casting internally.
  • Meta fields and taxonomy terms can be filtered once added as columns or directly via their key.
Preview

The preview pane fetches a paginated sample (default 10 rows) so you can validate column order, formatting (dates, prices), and that filters narrow results correctly before saving or scheduling. Click “Download Full Preview (All Rows CSV)” to export the entire filtered set without enabling delivery.

7. Automatic Delivery (Digests)

↑ Back to top

Enable scheduling to deliver a fresh export automatically. Uses WordPress Action Scheduler for reliability and batching. Email and webhook delivery are independent — you can enable one, the other, or both on the same schedule.

  • Frequency: Daily, Weekly (select day), Monthly (select day of month; if invalid for shorter month, last day is used).
  • Time: 24‑hour hour:minute in site timezone.
  • Next Scheduled: Displayed after saving when a schedule exists.
Email Delivery
  • Recipients: Comma-, semicolon-, or whitespace-separated emails. Each address is validated on save (defaults to site admin email if blank).
  • Subject: Optional custom subject (falls back to report name).
  • Send test to me: Sends a one-off test email to the current admin so you can confirm formatting and inbox delivery before enabling the schedule.
Webhook Delivery
  • Webhook URL: The endpoint that will receive a JSON POST request. The payload includes a download URL for the generated report.
  • Send test: Posts a sample payload immediately so you can verify your endpoint accepts the request before scheduling.
  • Inline file content: When enabled, the CSV/XLSX is included in the payload base64-encoded (avoid for very large reports).
  • Signing secret (optional): When set, requests carry an HMAC-SHA256 signature in X-Infinite-Reports-Signature: sha256=<hex> along with X-Infinite-Reports-Timestamp and X-Infinite-Reports-Delivery-Id headers. The signing payload is <timestamp>.<body> so receivers can verify authenticity and guard against replay attacks.

8. Customer-Branded Emails

↑ Back to top

The Branding panel lets the digest email feel native to your store. Set a logo (picked from the Media Library), a primary color (used for the email header band and the download button), a body text color, an optional subject prefix, and customizable header and footer copy. A live preview updates as you type, mirroring the WooCommerce email customizer pattern. Leave fields blank to use sensible defaults.

  • Tokens available in the header/footer fields: {{report_name}}, {{report_id}}, {{report_type}}, {{run_date}}, {{recipient_email}}.
  • Attribution: Toggle the “Built with Infinite Reports” footer on or off per report.

9. Run Now

↑ Back to top

Open any saved report and click Run now in the page header to fire the digest immediately, independently of the schedule. The button is concurrency-safe — it stays disabled until the previous run completes, so you can’t accidentally double-fire a long-running export. Useful for testing changes, sending an ad-hoc snapshot, or back-filling after a missed cron.

10. Delivery History

↑ Back to top

Every digest run (scheduled, on-demand, or test) is recorded in a per-report Delivery History view, accessible from the row actions on the report list. Each row shows when the run started and finished, which delivery method ran (email or webhook), final status (succeeded / failed), duration, payload size, and the error message when a run fails.

11. Column Reference

↑ Back to top

Orders: Financial totals (total, subtotal, taxes, discounts, fees, shipping), product list, refund metrics, billing & shipping addresses, payment method, marketing attribution (referer, landing path, utm_* fields), customer role, custom order meta. Every column resolves under both WooCommerce High-Performance Order Storage (HPOS) and the legacy post-based store.

Products: Core catalog data (title, type, SKU, prices, stock, dates), taxonomy terms (categories, tags, shipping class), selected sales performance columns (net sales, net sold), custom product meta.

Customers: Identity (ID, email, names, username), engagement (orders count, last ordered, last active), value metrics (total spent, average order value, total items), address & contact fields, avatar URL.

Refunds: Refund ID, parent order, refunded amount, reason, date, refunded by, payment method, plus the address and order meta inherited from the parent order.

Subscriptions (when WooCommerce Subscriptions is active): Subscription ID, status, billing period and interval, start/next-payment/end dates, customer, parent order, total, signup fee, trial end.

Bookings (when WooCommerce Bookings is active): Booking ID, status, customer, product, resource, start/end times, persons, parent order, cost.

12. WP-CLI

↑ Back to top

Every editor action has a WP-CLI counterpart for automation, CI, or remote runs:

  • wp infinite-reports list [--format=table|csv|json|yaml] – List every saved report.
  • wp infinite-reports get <id> [--format=...] – Show a single report’s configuration.
  • wp infinite-reports run <id> [--sync] – Trigger a digest run. Defaults to async via Action Scheduler; use --sync to run inline.
  • wp infinite-reports export <id> [--format=csv|xlsx] – Generate the report file directly to disk.
  • wp infinite-reports delete <id> – Delete a report.
  • wp infinite-reports history <id> [--format=...] – Show recent delivery history rows.

13. Troubleshooting

↑ Back to top
  • No rows in preview: Loosen filters or test each condition individually. Confirm chosen columns exist for the selected report type.
  • Digest didn’t arrive: Open the Delivery History view for the report — failed runs include an error message. Verify schedule shows a future time; ensure WordPress cron runs (visit site or configure a real cron); check recipient email spelling and spam folder. Use Send test to me / Send test to confirm the pipeline outside the schedule.
  • Webhook returns an error status: Check the Delivery History “Message” column for the response code. Use Send test to retry; if the receiver verifies signatures, confirm the signing secret matches on both sides.
  • Subscriptions / Bookings type not listed: Those types appear only when WooCommerce Subscriptions or WooCommerce Bookings is active. Activate the source plugin and reload the editor.
  • Missing custom meta: Ensure the meta key is non‑private (does not start with underscore) and that at least one record contains it.
  • Performance slow: Reduce number of columns, narrow date ranges using filters, or export during off‑peak hours. Pick CSV over XLSX when the consumer is another tool — XLSX has higher generation cost.
  • Timezone mismatch: Check site timezone setting under Settings > General.

14. Developer Notes (Hooks)

↑ Back to top

Selected extensibility points (search codebase for the hook names to review parameters):

  • infinite_reports_report_types – Register a custom report type alongside the built-in ones.
  • infinite_reports_order_columns, infinite_reports_product_columns, infinite_reports_customer_columns – Filter available column definitions.
  • infinite_reports_export_infinite_report_{type}_row_data – Filter each CSV/XLSX row prior to writing.
  • infinite_reports_preview_download_batch_size – Adjust the batch size for the “Download Full Preview” export (default 5000).
  • infinite_reports_loaded, before_infinite_reports_init, infinite_reports_init – Lifecycle hooks.
  • Action scheduler hooks per report: infinite_reports_send_digest_report_{id}.

Related Products

Offer add-ons like gift wrapping, special messages or other special options for your products.

Let customers subscribe to your products or services and pay on a weekly, monthly or annual basis.

Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.