Every time a discount turns on or off, GetSale records exactly what happened to every product and variant it touched — the price before, the price after, any tags it added or removed, and whether anything went wrong. The Logs page (in your GetSale app, under Logs in the left-hand navigation) is where you review that history.
This article walks through the three log tabs, how to search and filter, and how to read a run in detail — including what each per-variant error message means.
Jump to a discount's logs from the Dashboard
You don't always need to start from the Logs page itself. From the discount list on your Dashboard, click the View logs icon on any discount row to open Logs pre-filtered to that discount's name. If you open it from a "problems" or error indicator on the row, it also pre-filters to Show errors only so you land straight on the runs that need attention.
Legacy Logs vs. Logs vs. Market Logs
At the top of the page you'll see three tabs. They all show the same kind of information — a history of enable/disable runs with per-variant price detail — but they draw from different storage and cover different discount types:
Legacy Logs — the original log format. This is where runs are recorded if they predate the newer logging system. If you're troubleshooting an older discount and don't see it under Logs, check here.
Logs — the current, default tab. Shows enable and disable runs for regular (bulk price mutation) discounts, with full per-variant Before → After price detail.
Market Logs — shows runs for discounts that use Shopify Markets/price lists to set different prices per currency. Each row is scoped to a single market, and the variant detail shows prices per currency rather than a single storefront price. Look here for discounts with market-specific or currency-specific pricing.
Note: Quantity break discounts don't currently produce historical logs — logs are only generated for price-reduction discounts. If a quantity break discount doesn't appear in any tab, that's expected.
Searching and filtering logs
Each tab has its own search bar above the results table with two search modes, switched via the tabs directly under the log-type tabs:
Discount Search — start typing a discount's name into the search field. It autocompletes against your existing discounts; pick one from the list, or type a full name and click Search.
Product Search — switch to this tab to search by product title instead. Type a product's name and click Search to find every log run that touched that product, across all your discounts.
Regardless of which search mode you're using, check Show errors only to filter the results down to runs — and, once you expand a run, variants — that had at least one error. This filter applies immediately without needing to click Search again.
Results are paginated at the bottom of the table; use the arrows to move between pages.
Reading a log run
Each row in the results table is one discount run (one enable or one disable event) and shows:
The discount name
An Enable or Disable badge for the event type
An Errors: N count — shown in grey when there are no errors, and in red when there are
The date and time the run happened, shown in your store's timezone
A View Details / Hide Details button
Click View Details to expand the run. This reveals the first and last log timestamps for that run, followed by a table of every product and variant it processed:
Column | What it shows |
|---|---|
Product | The product title, linked to that product in your Shopify admin |
Variant | The variant name |
Before → After | The price and compare-at price before the run, an arrow, then the price and compare-at price after the run |
Tags | A View Tags button (shown once per product) — see below |
Result | Success, or an error description if something went wrong for that variant |
Reading the Before → After prices
Each side of the arrow shows two lines: the price, and the compare-at price with a strikethrough. Next to them, a percentage badge compares the price to the compare-at price:
A green badge means the price sits below the compare-at price — a normal, visible discount.
An orange or red badge means the price is at or above the compare-at price, which is usually worth a closer look — it may mean the discount didn't actually reduce the price, or that the compare-at price wasn't set the way you expected.
"Not Set" appears when there's no price or no compare-at price to compare.
For Disable runs, the After price reflects the price GetSale actually restored on Shopify. If that differs from what GetSale expected to restore, hover over the After value — a tooltip shows the expected price alongside the actual one, which can help you spot a variant that didn't fully revert.
The expanded table itself paginates independently of the outer log list, so a run touching hundreds of products can be worked through a page at a time.
Market Logs: per-currency variant prices
Market Logs runs expand into a table scoped to variants and currencies rather than products:
Column | What it shows |
|---|---|
Variant | The variant name |
Before → After | The variant's price and compare-at price before and after the run, in that market's currency |
Currency | The currency code for this market (e.g. USD, EUR) |
Result | Success, or an error description for that variant |
Because a single Market Logs discount can run across several markets, use the Market badge shown on each row in the outer log list to confirm which market a given run applied to before drilling into the detail.
Common per-variant error messages
When a variant's Result column shows anything other than Success, hover over it for the full message. Here's what each one means:
Error | What it means |
|---|---|
Shopify could not change price | Shopify's API rejected the price update for this variant. Check the price on the product manually — it may still be at its original value. |
Price changed successfully but there was an unknown error | The price update itself went through, but something else in the process failed unexpectedly. Check the price and any tags manually to confirm everything is as expected. |
Metafield error | The price changed, but GetSale couldn't save the metafield it uses to track and later restore the original price. This can affect the discount's ability to fully revert on disable — check the price manually. |
Variant already discounted | This variant was already discounted — usually because another active discount had already changed its price — so GetSale skipped it rather than stacking a second price change on top. |
New price less than 0 | The calculated new price for this variant would have been zero or negative, so GetSale skipped it rather than applying an invalid price. Check the discount's value against this variant's original price and compare-at price. |
Variant already discounted in price list | The Market Logs equivalent of "already discounted" — the variant already had a price set in that market's price list, so it was skipped. |
If you're seeing errors across many variants in a single run, it's often faster to check Show errors only on that discount and work through the flagged variants rather than paging through the full product list.
Viewing tags added or removed by a discount run
If your discount adds or removes tags (for example, tagging discounted products as "Sale"), click View Tags on any product row in the expanded detail table. This opens a dialog showing:
Added — tags this run added to the product, in green
Removed — tags this run removed from the product
Either list shows None if the run didn't add or remove any tags for that product.
FAQ
Why can't I find a discount in Logs? Check Legacy Logs first — older runs may be stored there instead. If the discount uses Shopify Markets or price lists, check Market Logs. And if it's a quantity break discount, note that these don't currently produce logs at all.
A variant shows Success, but the price on my storefront looks wrong. What's going on? The log reflects what GetSale sent to Shopify at the time of the run. If the price has changed since (from a manual edit, another app, or a subsequent discount run), the log won't show that later change. Compare the "After" timestamp on the run against your own recent activity on that product.
Do I need to fix errored variants manually? Usually, yes. Errors mean GetSale either skipped a variant or hit a problem while updating Shopify, so the price shown in the "After" column (or the original price, if it's a skip) may not reflect your intended discount. Use the error message to decide what to check — see the table above.
