FeedMender/Errors/Sale price
Common rejections
Invalid value [sale_price]
Sale pricing is three attributes that must agree with each other: the price, the sale price, and the window in which the sale price applies. Most faults are disagreements between them rather than a single wrong value.
What Google requires
A discount that is one, in a window that parses
sale_price follows the same format rules as price and must be lower than it, in the same currency. The optional sale_price_effective_date is two ISO 8601 timestamps separated by a slash, start before end. Outside the window Google serves the regular price; inside it, the sale price.
What happens if you do not
Refusals, or a sale that never shows
A sale price at or above the regular price is refused as not being a discount. Mismatched currencies between the two prices fail the pair. A reversed window, end before start, never matches any moment, so the sale silently does not happen, and a window supplied without a sale price is flagged because it promises a discount the row does not contain. These faults tend to appear seasonally, exactly when the catalogue is being edited by hand under time pressure.
How to fix it by hand
Check the three attributes as a set
- Confirm the sale price is genuinely below the price on every row that carries one; remove it where the discount has ended rather than setting it equal to the price.
- Keep both prices in one currency.
- Write windows as
2026-11-27T00:00:00+01:00/2026-11-30T23:59:59+01:00, start first, and delete leftover windows from past promotions.
Which of our checks apply
7 checks apply, read from the scanner's registry
The scan checks the pair and the window together, the way Google evaluates them, so a discount that does not discount is caught before the promotion starts.
sale_price_formatblockssale_price_currency_mismatchblockssale_price_not_lowerat risksale_window_without_sale_priceat risksale_price_effective_date_formatblockssale_price_effective_date_partsblockssale_price_effective_date_reversedblocks
The quicker way
Let the scan find them
Before the next promotion goes live, one scan verifies every sale price, currency and window in the file. The scan to identify errors is free and shows every finding before you pay anything. You only pay for the fix.