Documentation

Sale Price Attribute

The sale_price attribute indicates the discounted cost of a product. It is a highly recommended (and sometimes conditionally required) field for promotional data feeds acrossGoogle Merchant Products, Facebook Products, Pinterest Products,Tiktok Products, and Reddit Products.

Submitting accurate promotional pricing that perfectly matches the sale price displayed on your landing page and at checkout is critical. Failing to match these prices or omitting the original base price can result in immediate ad disapprovals.

Contents:


Quick Syntax Check

Paste your <g:sale_price> XML snippet or CSV value below to validate the format:

Test your <g:price>

Live Check
<g:price>

Checking one by one? Validate your entire feed instantly.

Upload & Analyze File

Platform Requirements Comparison

While the ISO 4217 standard applies universally, each platform has specific nuances in how they parse promotional data.

Requirement Google Merchant Products Facebook Products Pinterest Products Tiktok Products Reddit Products
XML Tag <g:sale_price> <g:sale_price> <g:sale_price> <g:sale_price> <g:sale_price>
Format Number + Space + ISO Number + Space + ISO Number + Space + ISO Number + Space + ISO Number + Space + ISO
Original Price Req. Yes, requires price Yes, requires price Yes, requires price Yes, requires price Yes, requires price
Date Attribute sale_price_effective_date sale_price_effective_date sale_price_effective_date_attribute sale_price_effective_date sale_price_effective_date
Member Pricing Not allowed Not allowed Not allowed Not allowed Not allowed

General Formatting Requirements

To ensure your feed processes successfully across all advertising and commerce channels, follow these strict rules:

  • Numeric Value & Currency: The value must consist of a number followed by a space and a 3-letter ISO 4217 currency code (e.g., 19.99 USD).
  • Decimal Separators: You must use a period (.) as the decimal point. Commas (,) used as decimal or thousands separators will cause processing failures.
  • No Symbols: Do not use localized currency symbols ($, £, ).
  • Lower than Base Price: The sale_price must be strictly lower than the price attribute. If it is equal to or higher than the base price, the promotion will be rejected.
  • Universal Availability: The sale price must be accessible to all customers without entering a coupon code at checkout or logging into a loyalty account.

Formatting Examples

XML Feed Format

Correct Formatting: Uses a period for the decimal, includes a space, uses the ISO 4217 code, and is accompanied by the original price.

<!-- Correct: Both price and sale_price are submitted properly -->
<g:price>24.99 USD</g:price>
<g:sale_price>19.99 USD</g:sale_price>

Incorrect Formatting: Do not use commas as thousands separators, do not use commas for decimals, and never include currency symbols.

<!-- Incorrect: Includes a currency symbol -->
<g:sale_price>$19.99</g:sale_price>

<!-- Incorrect: Uses a comma for the decimal -->
<g:sale_price>19,99 USD</g:sale_price>

CSV / TSV Feed Format

When working with CSV files, keep the data clean. Do not use symbols or extra formatting, and do not place comments inside the data rows.

Correct Formatting: The sale price includes a period for decimals and the ISO currency code, and is lower than the base price.

id,title,price,sale_price,availability
PROD_001,Example T-Shirt,24.99 USD,19.99 USD,in stock

Incorrect Formatting: Missing the ISO code, using a currency symbol, or setting the sale price higher than the base price will cause the feed upload to fail.

id,title,price,sale_price,availability
PROD_002,Example Hoodie,49.99 USD,$39.99,in stock
PROD_003,Premium Jacket,150.00 USD,160.00 USD,in stock

Note: In the incorrect example above, PROD_002 fails because it includes a $ symbol and is missing the ISO code. PROD_003 fails because the sale_price is higher than the original price.

FAQ

Do I still need to submit the regular price?
Yes, you must always submit the original price alongside sale_price. Platforms use both to calculate the discount and display the strike-through price format.
Can I use the sale price for member-only discounts?
No. The sale_price must reflect a price available to all users without requiring a membership or login. For loyalty pricing, use platform-specific features like Google's loyalty_program.
How do I remove the sale price when the sale ends?
You can either remove the sale_price from your feed entirely or use the sale_price_effective_date attribute to specify an exact start and end date for the promotion.

Have thousands of products? Don't check them manually. Upload your file and find errors in 30 seconds.

Try Validator
Last updated: 17 March, 2026