Hello,
I am trying to run a report for a specific email campaign that used a manual product price decrease, not a discount created in Shopify, e.g., a 10% price drop for 2 weeks.
We need to report the sales for each brand mentioned in the email. And that is the issue: all reporting breaks when I try to display sales for an email, grouped by vendor.
As there was no discount, the reports became difficult for me first to get the data from the email and then display the total sales from the email, separated by PRODUCT VENDOR
. Shopify AI can’t do it, and I tried Campaigns, but it doesn’t produce reports I can edit to get what I need.
Anyone who could send the ShopifyQL query code would be great.
@jamarzy, You can get close with ShopifyQL, but the hard part is that ShopifyQL does not know “this sale came from that email” unless you already have some way to identify the traffic or session source for that campaign.
In your case, since the promotion was a manual price drop and not a Shopify discount code, the logic usually has to be:
-
define the campaign date range
-
identify the products/brands featured in the email
-
filter sales to the campaign window
-
group the sales by product vendor
A basic ShopifyQL version would look something like this:
Copy
FROM sales
SHOW gross_sales, net_sales, orders, quantity_sold
BY product_vendor
SINCE 2026-03-01
UNTIL 2026-03-14
ORDER BY gross_sales DESC
But that only gives vendor sales for the date range. It does not prove those sales came from that email.
If you want it tied more specifically to the email campaign, you usually need one of these:
-
UTM/session attribution from the email links
-
a landing page / collection used only in that email
-
a fixed list of product IDs/SKUs featured in the email
If the email promoted a known set of products, the practical workaround is:
-
export the products included in the email
-
pull sales for the same date range
-
filter to those products only
-
then group by product_vendor
That is usually more reliable than trying to force Campaign reports to do it.
i think i got there by finding the marketing event id from the shopify url when looking at the email report then using this
FROM sales
SHOW total_sales, net_sales
WHERE order_marketing_event_id = the id of the email from the url within shopifys email marketing section
GROUP BY product_vendor WITH TOTALS, CURRENCY ‘USD’
TIMESERIES month
HAVING product_vendor = ‘the vendor’
SINCE startOfYear(0y) UNTIL today
ORDER BY month ASC
LIMIT 1000
VISUALIZE total_sales TYPE line MAX 10
@jamarzy, Glad you were able to figure it out. Please mark it as solved if you found the solution.