FeedMender

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.

Scan your feed for free

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_formatblocks
  • sale_price_currency_mismatchblocks
  • sale_price_not_lowerat risk
  • sale_window_without_sale_priceat risk
  • sale_price_effective_date_formatblocks
  • sale_price_effective_date_partsblocks
  • sale_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.

Scan your feed