Articles on: Shopify

Compare-at Price Field

How to Map Compare-at Price Field


Manage and calculate your product compare-at prices (original prices) using conditional formulas, rounding rules, and currency conversions during your feed syncs.


Available on: ✔️ Add | ✔️ Update | ✔️ Export



How to Set Up Compare-at Price Field


Go to App → Feed Settings → Step 2: Field Mapping


  1. Map Field: Select the Compare-at Price field.
  2. Open Settings: Click on the Settings (gear icon) next to the mapped field.
  3. Configure Options: Set up your condition rules, rounding formats, delimiters, and exclusions based on your store's requirements.


You can use column values directly in your condition formulas to calculate dynamic pricing.



Compare-at Price Field Smart Settings / Detailed Breakdown


1. Compare-at Price Conditions (Markdown / Markup)


Use markup conditions to automatically calculate and adjust compare-at prices during your sync based on specific rules.


Priority Sequence: Conditions take effect according to their top-to-bottom arrangement. The first matching condition has the highest priority. You can reorder them using the side arrows.


In order to display the compare-at price on the storefront, the calculated compare-at price value must be strictly higher than the regular selling price.


Valid Price Range Keywords:

  • price (Use when the comparison values are text strings)
  • price_f (Use when the comparison values are numeric)
  • col#_f (Use when the comparison values are numeric or when parsing from Google Sheets)
  • any (Applies to all products universally)
  • current_price (Shopify store value only)
  • cost (Shopify store value only)
  • compare_at_price (Shopify store value only)


Supported Math & Logic Symbols:


Symbol

Details

==

Equal to

<=

Less than or equal to

>=

More than or equal to

>

More than

<

Less than

and

Only true when both statements are true

or

True when either statement is true


Example Condition Formulas:


Condition (If)

Price (Then)

Result / Explanation

current_price == 0

*0

If the current store price is 0, multiply by 0 (makes no changes).

col("Item RRP") == col("Item Price")

*col5 + col("InStock")

Blanks out the compare-at price when it matches the regular price. If the "InStock" column is unavailable, replace it with any valid column name.

any

*1.5

Multiplies all matched prices by 1.5 (applies a 50% markup).

any

*0 + current_quantity

Multiplies all matched prices by 0, then adds the current_quantity value retrieved directly from Shopify.

taxable == 1

*1.5

If the product is taxable (1 = taxable, 0 = untaxable), multiplies the price by 1.5 (Shopify only).

any

*0 + current_quantity

Multiplies all matched SKU prices by 0, then adds the current_quantity value taken from the store.

col5! = ""

*0 + col5

If column 5 is not empty (has any value), use the value from column 5 as the price.

any

*0 + (col("price"+80) *1.5

Adds an $80 delivery fee to the stock price, then applies a 50% markup.

any

*0 + current_price*(col("Option2")/100)

Calculates a discounted price based on the current store price and a percentage value found in the "Option2" column.

col_string ("Vendor") == "shoe"

*1.3 + col("shipping")

If the "Vendor" column contains the text "shoe", applies a 30% markup and adds the value from the "shipping" column.

any

+ col("InStock")

Adds the value from the "InStock" column to the product price (supported based on XML nodes).

contains ("pink", col_string("Description"))

*1.1

If the "Description" column contains the text "pink", applies a 10% markup. Ideal for string values unsupported by a numerical index.

contains ("4", col("qty"))

*1.5

If the "qty" column contains the number "4", applies a 50% markup. Useful for numerical strings lacking a specific column index.

any

*0 + 12.5

Sets an exact fixed price of 12.5. Note: You must use *0 + [Value] instead of starting the formula with an equal sign.

price_f > 10 and price_f <= 15

*1.2

Applies a 20% markup if the numerical price is greater than 10 and less than or equal to 15.

price_f == 11

*1.5

Applies a 50% markup if the exact numerical price is 11.

price > col1_f

*1 + col1 + col2

If the price is greater than column 1's numerical value, sets the price to the sum of column 1 and column 2.

col5 == "shoe"

*1.3

Applies a 30% markup if column 5 specifically equals "shoe". Useful for collection-based markups.

price_f < 1

*0 + current_price

If the numerical price is less than 1, retains the current store price (Shopify only).

any

*0.1

Multiplies all prices by 0.1 (effectively scaling it down to 10% of the original value / a 90% markdown).

compare_at_price == col8_f

*0

If the compare-at price exactly matches column 8's numerical value, sets the price to 0.

price > col1_f

*1 + col1 + col2

If the price is greater than column 1's numerical value, sets the price to the sum of column 1 and column 2 (ideal for Google Sheets).

compare_at_price > col8_f

*0 + compare_at_price

If the store's compare-at price is greater than column 8's numerical value, retains the original store compare-at price.

cost < 40

*1.2

If the product cost in Shopify is less than 40, applies a 20% markup.

compare_at_price > 10

*1.5

If the compare-at price in Shopify is greater than 10, applies a 50% markup.

any

/0.2

Divides all prices by 0.2.

col4_date > now

*1.2

If the date in column 4 is in the future compared to current_timestamp (now), applies a 20% markup.

col4_date > today

*1.2

If the date in column 4 is past today's date (today), applies a 20% markup.



2. Compare-at Price Delimiter


Select the delimiter format used in your feed file to ensure decimals and thousands are parsed correctly.


Options include Comma, Decimal Point, and Auto.



3. Compare-at Price Round


Standardize your store's compare-at prices to maintain a clean, uniform storefront (e.g., rounding all prices to end in .99 or .00).



Rounding Rule

Result / Explanation

##.00 or ##.000

Rounds 12.57 to 12.00, or 12.573 to 12.000

##.#0 or ##.#00

Rounds 12.57 to 12.50, or 12.573 to 12.500

##.## or ##.##0

Rounds 12.57 to 12.57, or 12.573 to 12.570

##.## or ##.###

Retains exact decimals (no changes made, e.g., 12.573 remains 12.573)

##.99

Rounds 12.570 to 12.599

##.95

Rounds 12.57 to 12.95

##.97

Rounds 12.57 to 12.97

##.#99

Rounds 12.570 to 12.599

##9.00

Rounds 121.57 to 129.00

##5.00

Rounds 123.57 to 125.00

##9.99

Rounds 127.57 to 129.99

##,000.00

Rounds 12,453.57 to 12,000.00

##,#00.00

Rounds 12,345.57 to 12,300.00

##,##0.00

Rounds 12,346.57 to 12,350.00

##,#99.00

Rounds 12,345.57 to 12,399.00

##9 (from #.#9 to ##9,000)

Replaces the third digit with a 9, followed by 0s (e.g., 12.57 to 12.90; 145.67 to 149.00)

nearest whole number

Rounds up to the nearest whole integer by adding 1 (e.g., 12.57 to 13.00; 135.33 to 136.00)


4. Blank Value Handling


Enable the toggle to automatically clear the compare-at price on Shopify if the feed file value is entirely blank.


Note that a value of 0 or zero in your feed is treated as a numerical value, not a blank cell.



5. Currency Converter


Use this if your supplier feed provides compare-at prices in a different currency than your Shopify store's default currency.


For example, if your feed currency is USD and your store currency is TTD, enable the converter and select the matching currency fields.



6. Don't Update Compare-at Price When...


Exclude specific products from having their compare-at prices overwritten during syncs based on distinct conditions.


You can exclude products based on Vendor, Product Type, Product Tags, or Metafields.


Example: Setting Vendor = Adibas ensures that the compare-at price for any product mapped to the "Adibas" vendor will remain untouched during syncs.




Key Rules & Technical Details


  • Storefront Display Rule: To display a compare-at price with a strikethrough on Shopify, the compare-at price must always be greater than the standard price.
  • Priority Sequence: Conditions are executed sequentially from top to bottom. Order your highest-priority edge cases at the top of the list.
  • Fixed Value Setup: If setting an exact numerical value, use *0 + [Value] instead of trying to begin the formula with an = sign.



Troubleshooting Steps


  • Issue: Compare-at price is not showing a discount on the Shopify storefront → Solution: Verify that your calculated compare-at price is strictly higher than the product's regular price.
  • Issue: Numeric comparisons are failing or skipping products → Solution: Ensure you are using price_f or col#_f instead of price when evaluating mathematical greater than/less than rules.



Good Articles to Continue


Updated on: 09/10/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!