Articles on: Matching Column

Price Field

Set up Price field mapping in Stock Sync to update product pricing, apply markup or markdown conditions, convert currencies, adjust price delimiters, and round prices automatically.


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



Watch the Price Field Walkthrough


Learn how to configure the Price field and smart settings in Stock Sync.




How to Set Up Price Field


Navigation path: Go to App → Feed Settings → Step 2: Matching Column


  1. Add Price Field: Click Add more field and select Price.
  2. Select Feed Column: Choose the corresponding column from your feed file (e.g., price, msrp, or wholesale).
  3. Configure Smart Settings: Click the gear icon next to the mapped Price field to set up markup rules, delimiters, rounding, or currency conversions.
  4. Save Configuration: Click Save to confirm your field settings.


If your feed file lacks a price column and you want to set all product prices to a static number (e.g., 5), use a fixed value setup.


To exclude specific products or manual sale items from price updates, configure Don't update the price when... in Smart Settings or apply Store Product Filters in Step 3.




Price Smart Settings & Detailed Breakdown


1. Price Condition / Rule (Markup)

Price conditions add markups, margins, or markdowns to product prices. Conditions evaluate from top to bottom, applying the first rule that evaluates to true.


Priority sequence: Price Conversion → Price Condition → Price Rounding


Price conditions are evaluated from the top down. Higher-priority rules must be listed first, and general fallback rules (such as any) should be placed at the end.


Valid price keywords: price (text comparison), price_f (numeric comparison), col#_f (numeric comparison), any, current_price (Shopify only), cost (Shopify only), compare_at_price (Shopify only), current_quantity (Shopify only, all locations), vendor (Shopify only), default_currency (Shopify only).



Condition (If)

Price / Formula (Then)

Result / Explanation

any

*1.5

Multiplies all prices by 1.5 (50% markup).

any

*0 + current_quantity

Sets the SKU price equal to the current store inventory across all locations.

any

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

Adds an $80 delivery fee to the column price, then applies a 50% markup (multiplies by 1.5).

any

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

Adjusts store price based on the percentage value in the Option2 column.

any

*0 + col("List_Price")

Sets product price equal to the value from the List_Price column.

any

+ col("InStock")

Adds the value from the InStock column to the price (supported in XML nodes).

any

*0 + 12.5

Sets the fixed price to 12.5. Do not use an equal sign (=) at the beginning.

any

/0.2

Divides all prices by 0.2.

any

*0.90

Multiplies all prices by 0.90 (10% markdown).

vendor == "ABC"

*1.20

Applies a 20% markup to all products from vendor "ABC" in store.

vendor == "ABC" or vendor == "DEF"

*1.50

Applies a 50% markup to all in-store products from vendors "ABC" or "DEF".

current_price == 0

*0

If store price equals 0, multiplies by 0 (no changes made).

current_price < price

*0 + current_price

Retains the lowest price when multiple feeds provide the same product identifier.

current_price * 0.5 > price_f

*0 + current_price

Skips updating if the feed price is less than 50% of the current store price.

col("sale price") == ""

*0 + col3

Uses column col3 as price if column sale price has no value.

taxable == 1

*1.5

Applies a 50% markup if item is taxable (1: taxable, 0: untaxable; Shopify only).

col5 != ""

*0 + col5

Uses column col5 as price if column col5 is not empty.

col("price_special") <=0

*0 + col("price")

Uses column price if column price_special is 0 or empty.

col_string("Vendor")=="shoe"

*1.3 + col("shipping")

Applies a 30% markup and adds shipping column value if Vendor equals "shoe".

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

*1.1

Applies a 10% markup if Description contains "pink".

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

*1.5

Applies a 50% markup if the numeric column qty contains "4".

price_f > 10 and price_f <= 15

*1.2

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

price_f == 11

*1.5

Applies a 50% markup if price equals 11.

price > col1_f

*1 + col1 + col2

Adds col1 and col2 to price if price is greater than column 1.

col5 == "shoe"

*1.3

Applies a 30% markup if column 5 equals "shoe".

price_f < 1

*0 + current_price

Retains current in-store price if feed price is less than 1 (Shopify only).

cost < 40

*1.2

Multiplies price by 1.2 if store cost is less than 40 (Shopify only).

compare_at_price > 10

*1.5

Multiplies price by 1.5 if store compare-at price is greater than 10 (Shopify only).

col4_date > now

*1.2

Applies a 20% markup if date in col4_date is after current timestamp (now).

col4_date > today

*1.2

Applies a 20% markup if date in col4_date is after today's date (today).

current_price > price_f

*0 + current_price

Keeps store price unchanged when store price is higher than feed price.

current_price > col8_f

*0 + current_price

Keeps store price unchanged when store price is higher than column 8 value in feed file.


Condition Comparison Operators

Details

==

Equal to

<=

Less than or equal to

>=

Greater than or equal to

>

Greater than

<

Less than

and

Only true when both statements are true

or

True when either statement is true

contains

Contains a keyword, e.g., contains("keyword", col_string("Product Title"))


Tiered Price Range Example

Price / Formula (Then)

price_f >= 1 and price_f <= 100

*1.5

price_f >= 101 and price_f <= 250

*1.4

price_f >= 251 and price_f <= 400

*1.3

price_f >= 401 and price_f <= 600

*1.2

price_f >= 601 and price_f <= 1000

*1.1

price_f >= 1001

*1



Formula Syntax

Explanation

contains('BC',col13)

Evaluates to true if column 13 text contains "BC" (e.g., inside "ABCD").

contains('Large' , col13) != true

Prevents price update when column 13 contains "Large" (!= means Not Equal).

left(col13, 2) == 'AB'

Selects the first 2 characters from the left side of column 13.

right(col13, 2) == 'CD'

Selects the last 2 characters from the right side of column 13.

mid(col13, 2, 2) == 'BC'

Selects 2 characters starting from position 2 of column 13.

len(col13) == 4

Checks if the total character count of column 13 equals 4.

find('BC', col13) == 2

Checks if the string "BC" starts at character position 2 in column 13.

substitute(col13, 'BC', 'XY') == 'AXYD'

Replaces "BC" with "XY" inside column 13.

max(price, col2, col3)

Evaluates to the maximum value among price, column 2, and column 3 (e.g., max(12,10,9) == 12).

min(price, col2, col3)

Evaluates to the minimum value among price, column 2, and column 3 (e.g., min(12,10,9) == 9).


2. Price Delimiter

Format incoming numeric price delimiters from your feed file using options: Comma, Decimal Point, or Auto.



Example: If your feed file contains 42.39.20 and you want to convert the delimiter to a comma, select the Comma option.



3. Price Rounding

Standardize product prices across your store by rounding numbers to consistent decimals or psychological price endings.



Rounding Pattern

Result Showing

##.00 or ##.000

Converts 12.57 to 12.00, or 12.573 to 12.000.

##.#0 or ##.#00

Converts 12.57 to 12.50, or 12.573 to 12.500.

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

Converts 12.57 to 12.57, or 12.573 to 12.570.

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

Keeps 12.57 as 12.57, or 12.573 as 12.573 (no change).

##.99

Converts 12.57 to 12.59.

##.95

Converts 12.57 to 12.95.

##.97

Converts 12.57 to 12.97.

##.#99

Converts 12.570 to 12.599.

##9.00

Converts 121.57 to 129.00.

##5.00

Converts 123.57 to 125.00.

##9.99

Converts 127.57 to 129.99.

##,000.00

Converts 12,453.57 to 12,000.00.

##,#00.00

Converts 12,345.57 to 12,300.00.

##,##0.00

Converts 12,346.57 to 12,350.00.

##,#99.00

Converts 12,345.57 to 12,399.00.

##9

Converts 12.57 to 12.90, or 145.67 to 149.00 (third digit changes to 9 followed by 0).

nearest whole number

Converts 12.57 to 13.00, or 135.33 to 136.00 (rounds up to the next whole number).

##5.00 (0 <= x <= 5) AND ##9.00 (Other)

Converts price to nearest ending digit of 5 or 9 (e.g., 133 becomes 135).

##5.95 (0 <= x <= 5) AND ##9.95 (Other)

Converts price to the nearest ending digit of 5.95 or 9.95 (e.g., 133 becomes 135.95).


4. Currency Converter

Automatically convert prices from your supplier feed currency to your store currency using market rates updated weekly.



Example: If supplier feed currency is MYR and store currency is USD, enable Currency Converter and set the source currency to MYR.


5. Don't Update the Price When...

Exclude specific products from receiving price updates based on defined store parameters.



Exclude price updates by Vendor, Product Type (Custom), Product Tags, or Custom Data (Metafields).


Example: Setting Don't update Price when Vendor = Adibas will skip price updates for all products under vendor "Adibas".



Key Rules & Technical Details


  • Execution Sequence: Calculations follow a strict processing order.Priority sequence: Price Conversion → Price Condition → Price Rounding
  • Rule Order Priority: Conditions are evaluated from top to bottom. The first condition that meets the criteria will execute, ignoring subsequent rules.
  • Numeric vs String Evaluation: Always use price_f or col#_f when evaluating numeric conditions. Use price or col# when performing string or text comparison operations.



Troubleshooting Steps


  • Issue: Price rules are not applying to products → Solution: Verify that the mapped column exists in your feed. Ensure there are no gaps in decimal condition ranges (e.g., check for missing boundaries between conditions).
  • Issue: Markup rule is skipped and only rounding applies → Solution: Check if a higher-priority condition earlier in the list matched first and bypassed the markup rule.
  • Issue: Prices with commas are failing or calculated incorrectly → Solution: If using Liquid templates, strip commas from price strings using replace: ',', '' to prevent values like 1449 from being parsed as 1.



Good Articles to Continue


Updated on: 15/10/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!