> ## Documentation Index
> Fetch the complete documentation index at: https://docs.smartwpplugins.com/llms.txt
> Use this file to discover all available pages before exploring further.

# The Presets report

> Revenue and orders per preset, inside WooCommerce Analytics

export const Media = ({kind = 'Screenshot', children}) => <div style={{
  display: 'flex',
  flexDirection: 'column',
  alignItems: 'center',
  justifyContent: 'center',
  gap: '0.5rem',
  textAlign: 'center',
  padding: '2.75rem 1.5rem',
  margin: '1.5rem 0',
  border: '1.5px dashed #b4c0d4',
  borderRadius: '0.75rem',
  background: 'rgba(148, 163, 184, 0.07)'
}}>
    <span style={{
  fontSize: '1.5rem',
  lineHeight: 1
}}>
      {kind === 'Video' ? '▶️' : '🖼️'}
    </span>
    <span style={{
  fontSize: '0.75rem',
  fontWeight: 700,
  letterSpacing: '0.08em',
  textTransform: 'uppercase',
  color: '#64748b'
}}>
      {kind} pending
    </span>
    <span style={{
  fontSize: '0.875rem',
  color: '#64748b',
  maxWidth: '34rem'
}}>
      {children}
    </span>
  </div>;

export const Pro = () => <span style={{
  display: 'inline-flex',
  alignItems: 'center',
  verticalAlign: 'middle',
  fontSize: '0.68em',
  fontWeight: 700,
  letterSpacing: '0.07em',
  lineHeight: 1,
  padding: '0.32em 0.55em',
  borderRadius: '0.3em',
  background: '#f5b301',
  color: '#2b2000',
  marginLeft: '0.4em',
  textTransform: 'uppercase'
}}>
    Pro
  </span>;

<Info>
  The Presets report is a Pro feature. On the free build there is no menu entry and no report — it is absent rather than switched off.
</Info>

## Where to find it

**Analytics → Cart Presets**, beside WooCommerce's own reports.

That is the only way in, deliberately. A report that lives in WooCommerce Analytics should be reached the way every other WooCommerce report is reached, so CartPresets' own admin carries no link to it.

<Media>The Presets report with the date range picker, summary cards, chart and table</Media>

## What it shows

|               |                                                                            |
| ------------- | -------------------------------------------------------------------------- |
| Summary cards | Net revenue, orders, items sold, and average order value for the period    |
| Chart         | Revenue or orders over time, by day, week or month, with period comparison |
| Table         | One row per preset — revenue, orders, items sold                           |
| Drill-down    | The individual orders behind a preset                                      |

The date-range picker, the comparison, the chart controls and CSV export are all WooCommerce's own components, so the page behaves exactly like the reports beside it.

## Where the numbers come from

WooCommerce's own order tables, joined against the preset ID stamped on every preset order line at checkout.

That has three consequences worth knowing:

**Revenue is net of refunds.** A refund carries negative revenue and its line items carry the preset meta, so the subtraction lands on the right preset. Order counts use parent orders only, so a refunded order is one order, not two.

**A sale is whatever WooCommerce says it is.** The excluded-status list is WooCommerce's own, so this page agrees with every other page under Analytics rather than keeping a second opinion.

**A deleted preset keeps its history**, listed as *Deleted preset #N*. The money was real, and a report whose rows vanish with a preset disagrees with your accounts.

## What is not tracked

Link opens, add-to-carts, and checkout-reached are recorded nowhere.

Following a preset link performs **zero analytics writes**. Sales enter the books when WooCommerce processes the order, on hooks that never run on your storefront. That is why the plugin can claim a near-zero storefront footprint and mean it.

If you want click-level attribution, put UTM parameters on your preset links and read them in your existing analytics — see [Preset links](/cartpresets/links/preset-links#utm-parameters).

<Note>
  A store with WooCommerce Analytics disabled gets no Presets page, and the plugin keeps no parallel record. Whether sales are tracked at all is your WooCommerce decision, and CartPresets follows it.
</Note>

## Upgrading starts with history

Because the report reads WooCommerce's own books rather than a record of its own, upgrading from free does not start you at zero. The figures have been accumulating all along — the report simply had nowhere to appear.

## The Revenue column in the listing

The preset listing has a Revenue column on both builds. On free it shows a crown instead of a figure; clicking it explains what Pro would show.

The column is drawn on both tiers on purpose. A column that appears and disappears with the tier is a worse answer than one that explains itself.

## Reporting and purchase limits are different systems

Purchase limits never read any of this.

Limits count rows in the redemptions table, under your `redemption_statuses` setting — so an on-hold order can consume a slot before it counts as a sale on this page.

The two answer different questions: *may this link still be used?* versus *how did this preset do?* A bank-transfer order is a real commitment for the first question and not yet revenue for the second.

## For developers

`cartpresets_sales_payload` runs after totals, series, rows and the drill-down are assembled — append figures of your own or reshape what the report receives. `cartpresets_sales_orders_cap` raises how many orders the drill-down lists.

Both fire from Pro only, and the `cartpresets/v1/sales` routes are not registered on free — a request 404s like any unknown route. Check the tier before assuming they exist. See the [hooks reference](/cartpresets/developers/hooks-reference#reporting-pro-only).
