Unmasking 'None' in Shopify Analytics: Reclaiming Sales Data for Deleted Products
Hey fellow store owners! Navigating Shopify’s analytics updates can sometimes feel like a treasure hunt, especially when crucial data seems to vanish. Recently, a really insightful discussion popped up in the community, kicked off by a merchant named Cocochew, about a frustrating issue many of us have faced since the October 2024 analytics framework rolled out: seeing “none” values for products in sales reports, particularly for discontinued or deleted items. It’s like those products just disappeared from history, taking their sales data with them! If you’ve been scratching your head over missing revenue attribution for old products, you’re definitely not alone.
The Mystery of the Missing Sales Data
Cocochew hit the nail on the head explaining what’s going on. After the analytics migration, many merchants noticed that standard reports, like “Total sales by product variant,” started showing thousands of dollars in sales attributed to “none” across product fields. This makes it impossible to analyze which discontinued items actually sold, leaving a huge gap in historical performance data.
Why is This Happening? Old vs. New Analytics
The core of the problem lies in how the new analytics system references product information compared to the old one:
- Previous Analytics: This system was smart; it captured product details (title, variant title, SKU, vendor) at the time of sale. Think of it as taking a snapshot. This data was then permanently associated with that sale, regardless of future product changes.
- Current Analytics: This system pulls product details from current product records. It performs a dynamic lookup. So, if you’ve deleted a product, there’s no current record for the system to reference, and poof! Those fields show as “none” or null.
As Cocochew quoted directly from Shopify’s documentation, “The previous analytics default to using a product’s title, variant title, SKU, and vendor at the time of sale. The current Analytics default to using a product’s current title, variant title, SKU, and vendor.” This change is the root of our headache!
The Fix: Reclaiming Your Historical Sales Data
But don’t panic! There’s a straightforward fix, and it comes directly from the insights shared in the thread. As Markk60, another helpful community member, beautifully put it, switching your exploration to “Product title at time of sale” (and its variant counterpart) is the “cleanest fix to get accurate historical attribution back.” This dimension specifically pulls that original “snapshot” data, bringing your discontinued product sales back into view.
Step-by-Step: Rebuilding Your Reports
Here’s how you can adjust your reports to correctly display sales data for deleted products, straight from Cocochew’s excellent write-up:
- Go to your Shopify Admin and navigate to Analytics > Reports.
- Click New exploration (or edit an existing saved report if you prefer).
- In the Dimensions menu, you’ll need to make a crucial swap:
- Replace “Product title” with “Product title at time of sale”.
- If you’re using variants, also replace “Product variant title” with “Product variant title at time of sale”.
- Keep your existing metrics (like gross sales, net sales, etc.) as they are.
- Once you’ve made these changes, Save your updated report.
This simple change ensures that your reports reference the product details as they were when the sale occurred, regardless of whether the product still exists in your catalog.
For the ShopifyQL Enthusiasts
If you’re comfortable with ShopifyQL, Cocochew also shared a rough template to help you get started:
FROM sales
SHOW net_items_sold, gross_sales, discounts, sales_reversals, net_sales, taxes, total_sales
GROUP BY product_title_at_time_of_sale, product_vendor, product_type WITH TOTALS
SINCE 2025-01-01 UNTIL 2025-12-31 (use your own desired date)
ORDER BY net_items_sold DESC
Quick Note: The 'returns' field in current reporting will be deprecated in May 2026 and is being replaced with 'sales_reversals'. Good to know for future-proofing your queries!
Considering Alternative Solutions: Apps vs. Built-in
Now, while rebuilding reports is fantastic for leveraging Shopify’s built-in tools, Markk60 also brought up a great point for those who might prefer a more “set it and forget it” approach, or need more flexible exports and grouping options. He suggested a reporting app like Mipler ‑ Advanced Reports, which handles this “snapshot at time of sale” reporting really well without you constantly having to tweak explorations.
Cocochew, ever mindful of keeping app bloat to a minimum, acknowledged the usefulness of such apps but leaned towards modifying the built-in analytics where possible. He said, “We try to keep apps to a minimum, but other merchants might prefer an App over modifying their built in analytics. Thanks for sharing an alternative solution
.” This really highlights that there's no one-size-fits-all solution, and it’s about finding what works best for your store and workflow.
A Few Extra Tips from the Community
- Finance Reports are Unaffected: Good news! Your finance reports still use “at time of sale” by default, so they should be unaffected by this change.
- Export for Large Datasets: If you’re dealing with more than 1,000 product rows in your report, you might need to export the data or use smaller date ranges to ensure you see complete results.
- Archive Instead of Delete: A proactive tip for the future: consider using “Archived” status instead of permanently deleting products. Archived products preserve all historical data relationships, keeping your analytics intact and preventing this issue from recurring.
So, whether you’re diving into custom explorations, dabbling with ShopifyQL, or exploring app solutions, the key takeaway is that your historical sales data for deleted products isn't truly lost. It just needs a little nudge in the right direction within the new analytics framework. Hopefully, these insights from our community discussion will save you a ton of head-scratching and help you keep a clear picture of your store's performance, past and present. Happy analyzing!