How to add sale price into feed?.

When a product is discounted, Google Shopping and other channels want two prices: the regular price (price) and the sale price (sale_price). Sending both is what produces the crossed-out original price and the “sale” badge next to your listing — a strong click driver. This guide shows how CTX Feed pulls your WooCommerce sale prices into the feed, how to include the sale’s start and end dates, and how the plugin keeps discounted and non-discounted products correct automatically.

How WooCommerce and the feed fit together

Google’s price comparison relies on both fields being present and correct:

  • price — the product’s normal, full price.
  • sale_price — the discounted price, which must be lower than price and use the same currency.

In WooCommerce, that maps to a product’s Regular price and Sale price. So the golden rule is: put the full price in Regular price and the discount in Sale price — never overwrite the regular price with the discounted number. If you only fill one price field, Google sees a single price and can’t show a sale.

Step 1: Set the sale price in WooCommerce

  1. Edit the product under Products → All Products.
  2. On the General tab of the Product data panel, confirm the Regular price, then enter the discounted amount in Sale price.
  3. (Optional) Click Schedule next to the sale price and set a from and to date to run the sale for a fixed window.
  4. Update the product.

For variable products, set the sale price on each variation under the Variations tab — WooCommerce prices variations individually.

Step 2: Map the sale price into your feed

The Google Shopping template already includes both price rows, so this is usually a quick check.

  1. Go to CTX Feed → Make Feed, or edit an existing feed from Manage Feeds.
  2. Choose the Google Shopping template and stay on the Config tab.
  3. Find the row for the channel price attribute. Its value is Regular Price (in the Value dropdown’s Price group).
  4. Find the row for the channel sale_price attribute. By default its value is Price — the price the product sells for right now.
  5. Click Save & generate to save and regenerate.
CTX Feed Config tab with the price row set to Regular Price and the sale_price row set to Price
  1. The price row — value Regular Price, the product’s full price.
  2. The sale_price row — value Price, the current selling price.
  3. Output is Price, which writes a plain number with two decimals (for example 19.99), and the Suffix adds your currency code (for example 19.99 USD).

Price or Sale Price for the sale_price row?

The Value dropdown offers two sources for sale_price:

ValueOn saleNot on sale
Price (default)the sale pricethe regular price — the same number as price
Sale Pricethe sale priceempty

Both work with Google. Google accepts a sale_price that equals price; it simply shows no sale for that product. Pick Sale Price if you’d rather leave the field empty when there’s no discount.

Either way, CTX Feed only treats a product as on sale when it is on sale right now:

  • A scheduled sale that hasn’t started, or has already ended, counts as not on sale, so no stale discount leaks into the feed.
  • A variable product is on sale when at least one of its variations is. With Sale Price selected, a variable product whose variations are all at full price gets an empty sale_price.

Step 3 (optional): Include the sale start and end dates

If your sales run on a schedule, tell Google exactly when the sale applies by adding the sale price effective date. Google then shows the sale price only during that window and reverts automatically afterward.

  1. On the Config tab, click Add attribute and choose the channel’s sale_price_effective_date.
  2. Keep the Source on Attribute and set the Value to Sale Price Effective Date (in the Price group).
  3. Save and regenerate.

CTX Feed reads the sale’s from and to dates you set in WooCommerce and writes them as an ISO 8601 date range in UTC (for example, 2026-07-01T00:00:00+00:00/2026-07-14T23:59:59+00:00) — the format Google expects. The field is filled only when the sale has both a from and a to date; with one date or none it stays empty for that product.

Troubleshooting

  • Sale price is missing in the feed. Confirm the product has a Sale price in WooCommerce and, if it’s scheduled, that today falls inside the sale window. Then regenerate the feed.
  • sale_price shows the full price on products that aren’t discounted. That’s the default Price value at work, and Google accepts it. Switch the row’s value to Sale Price if you want the field empty instead.
  • Every product looks discounted. Check that the price row uses Regular Price. If it uses Price, a discounted product sends the sale price as its regular price.
  • Google shows no sale even though the feed has a sale price. Make sure the sale price is lower than the regular price and that both use your Merchant Center currency. For scheduled sales, add sale_price_effective_date so Google knows when the sale runs.
  • No effective date for some products. The sale needs both a from and a to date in WooCommerce.
  • Variable product shows no sale price. Set the sale price on the variations, not just the parent.
Try CTX Feed for WooCommerce - Free Download or Upgrade to Pro

2 thoughts on How to add sale price into feed?

Leave a comment.