If you run a store with real order history, you have probably been storing structured data in metaobjects for a while — print providers, design collections, supplier records, size charts. Until recently that data was invisible to reporting. You could render it on the storefront, but you could not group a sales report by it.
That changed. This guide shows you how metaobject reporting actually works today, walks a real profit calculation through it, and is more precise than the thin "what is a metaobject" posts currently ranking for this term.
What metaobjects reports can do now (and what they couldn't before)
A metaobject is a reusable custom data structure that lives independently in your store, unlike a metafield that attaches directly to one product or order. You define it once — say a "Print Provider" definition with fields for name, country, and base cost tier — then connect entries to products through a metafield.
The reporting breakthrough is that those connected fields now feed Analytics. Per Shopify's changelog from September 2026, a metaobject attached to a product, variant, customer, or order can group and filter a report the same way a plain metafield can.
This built on the earlier metafield step. Shopify shipped metafields as analytics dimensions and filters in February 2026, letting merchants segment by material or loyalty tier without exporting to a spreadsheet. Metaobjects extend that to richer, related records.
Before this, the honest answer to "can I report on metaobjects" was no — not inside Shopify. You exported raw data and rebuilt the join in a spreadsheet or a third-party app. That is still the angle most of the top-ranking posts push, because they were written before the native feature landed.
How to build a metaobject report, step by step
The flow is short once the data is wired correctly.
1. Turn the definition on for analytics
Open Settings → Metafields and metaobjects, pick your metaobject definition, and enable it for Analytics. Merchant-owned definitions are on by default, but anything created by an app stays off until you turn it on, according to Shopify's changelog. This is the step people miss when a field refuses to appear in the picker.
2. Connect the metaobject to a resource
A metaobject only reports if it is linked to a product, variant, customer, or order through a metafield reference. A "Print Provider" entry sitting alone with no product pointing at it will never show up in a sales report.
3. Build the report
Open a report or the Explore builder, add a dimension, and drill into Metaobjects → the resource → the definition → the field. Pick "Print Provider → Country," for example, and your revenue breaks out by supplier country. Filters work the same way — restrict to one provider, or exclude another.
For how this slots into your wider reporting stack, our guide to Shopify's reporting tools and the rundown of the reports worth checking weekly are the natural next reads.
The number these reports never show you: profit
Here is where an operator has to be careful. A native metaobject report answers "which segment sold the most," not "which segment made money." Those are different questions, and the gap is where margin leaks.
Say you run a POD apparel store doing 340 orders a month at a $31 average order value, with $2,800 in monthly Meta spend. You fulfill through two print providers, stored as a "Print Provider" metaobject, and you build a sales report grouped by it.
The native report shows:
- Provider A: 200 orders, $32 AOV → $6,400 revenue
- Provider B: 140 orders, $29.50 AOV → $4,130 revenue
Provider B is a healthy 39% of your revenue. The report gives it a clean bill of health, and you leave both providers running.
Now layer in the costs the picker does not know about. Provider A's garments cost you $14 an order; Provider B's run $19. Shipping is $5 either way, and payment processing is roughly 4% of the order.
Work one Provider A order: $32 − $14 COGS − $5 shipping − $1.28 fees = $11.72 contribution margin before ads. Spread your $2,800 ad spend across 340 orders and each order carries about $8.24. So Provider A nets $11.72 − $8.24 = $3.48 profit per order.
Now a Provider B order: $29.50 − $19 − $5 − $1.18 = $4.32 before ads. Subtract the same $8.24 of ad load and you get $4.32 − $8.24 = −$3.92 per order. Provider B loses money on every sale.
That $4,130 of "healthy" revenue is a drain. Across 140 orders it costs you roughly $549 a month, hidden inside a report that only counts top line. This is the exact failure mode we cover in ecommerce performance analytics: revenue segments and profit segments rank differently, and only one pays the bills.
Why the gap exists, and how to close it
Shopify's reporting is built around what Shopify can see: orders, sessions, products, and now your custom metaobject fields. It cannot see your true cost of goods per supplier, your ad spend sitting in Meta and Google, or your fulfillment fees from Printify or Gelato. So it cannot compute per-order profit by metaobject, no matter how cleanly you structure the data.
You can rebuild the profit view yourself. Export the metaobject-grouped report, join it to your supplier cost sheet and your ad platform exports, allocate spend, and compute contribution margin per segment. It works, and it is exactly the kind of manual join that big data analytics in ecommerce describes operators drowning in.
The faster path is to stop doing the join by hand. PodVector AI runs an AI employee named Victor who connects to your Shopify store, Meta Ads, Google Ads, and your POD suppliers — Printify, Printful, and Gelato — plus Klaviyo. Victor computes true per-order profit across that live data and delivers the reports to your Google Drive, so the Provider B problem surfaces before it costs you a quarter of your margin. Victor is not a dashboard you log into; he is an operator who does the analysis and, with every write action gated behind your approval, acts on it only once you say go.
Put Victor on your store and see true profit by segment.
For the bigger picture of how custom-data reporting fits into running the numbers on an operating store, start with our hub on ecommerce business intelligence.
FAQs
Do I need a special Shopify plan to use metaobject fields in reports?
Shopify's changelog announcing the feature does not call out a plan restriction for metaobject dimensions. Custom report building and the Explore builder have historically been richer on higher tiers, so confirm what your current plan exposes in the report picker before you design around it. If a field is missing, the first thing to check is whether the definition is enabled for Analytics in settings, not your plan.
Why isn't my metaobject showing up in the report builder?
Two reasons cover almost every case. First, the definition may not be enabled for Analytics — app-created metaobjects stay off by default. Second, the metaobject may not be connected to any product, variant, customer, or order through a metafield reference, and an unconnected metaobject has nothing to report against.
Can Shopify metaobjects reports show profit or margin?
No. Native metaobject reports group and filter revenue, orders, and quantities, but they do not know your cost of goods, ad spend, or fulfillment fees. To see profit by metaobject segment you have to join the exported report to your cost and ad data yourself, or use a tool that already pulls those sources together.
Metaobjects or metafields for reporting — which should I use?
Use metafields for a single custom value attached to one resource, like a product's material. Use metaobjects for a reusable, structured record that many products share and that has several fields of its own, like a supplier or a print provider. Both now feed Analytics as dimensions and filters, so the choice is about data modeling, not reporting capability.
How is a metaobject report different from a spreadsheet export?
The native report lives inside Shopify and updates with your orders, so there is no rebuild step and no stale join. A spreadsheet export is more flexible — you can add cost columns and compute margin — but you own the maintenance and the data goes stale the moment you close the file. For recurring profit questions, an automated pull beats both.