Data

Modifiers

Change any product data.
Modifiers

Overview #

Modifiers let you change product data after the sync, without touching your data feed or involving a developer. Modifiers are evaluated from top to bottom, so the order they appear in the list matters.

There are two ways to create a modifier: using AI Modifiers, which is the recommended approach, or choosing one of the standard modifier types for simpler, predefined transformations.

AI Modifiers #

AI Modifiers are the default and recommended way to create modifiers. Instead of configuring individual fields and rules, you simply describe what you want the modifier to do in plain language, and the AI generates a Python function that transforms your product data accordingly.

This approach is far more flexible than the standard modifier types. You can describe complex logic, combine multiple conditions, calculate new values from existing attributes, and handle edge cases — all without writing any code yourself.

  1. Click Add Modifier and select AI Modifier as the type (this is selected by default).
  2. In the text field, describe what the modifier should do. Be as specific as possible about the logic, the attributes involved, and the expected output.
  3. The AI generates a Python function based on your description.
  4. Test the modifier using the Before & After preview before saving.

Example prompts:

  • “Create an attribute called variant_stock_percentage that shows how many of a product’s variants are currently in stock, as a percentage between 0 and 100.”
  • “Set availability to In stock if stock is greater than 0, otherwise set it to Out of stock.”
  • “Create a discount_percentage attribute by calculating the percentage difference between list_price and price, rounded to the nearest integer.”

The Python function generated by the AI is read-only — you cannot edit it directly. To change the logic, simply chat with the AI through the text field and let it update the function. This ensures the function always matches the described intent.

Standard Modifier Types #

For simpler transformations, standard modifier types are available. These cover a set of predefined operations and are straightforward to configure, but are more limited in what they can do compared to AI Modifiers.

All standard modifiers have an if input field. If a statement is added, the modifier only runs on products where that statement evaluates to true.

TypeEffect
Create new attributeAdds an attribute to all products
Delete attributeRemoves an attribute on all products
Delete productRemoves the product entirely
Update attributeUpdates an attribute using a regex pattern
Change attribute typeChanges the type of an attribute on all products
Split attribute by separatorSplits a string by separator into a list of strings
Append valueAppends a value to an existing list attribute
Evaluate an expressionEvaluates a mathematical expression in an attribute
Capitalize valueFormats a string to title casing
Make value uppercaseFormats a string to all uppercase characters
Make value lowercaseFormats a string to all lowercase characters
Create formatted attributeCreates a new attribute by formatting existing data

Here is a description of each standard modifier type.

Create new attribute #

Takes a new_value that shows what value to set the attribute to, can be used both as a new attribute, or on top of an existing one to replace it.

Delete attribute #

Deletes the given attribute from all products, or specific ones based on an if statement.

Delete product #

Deletes the given product(s) based on an if statement.

Update attribute #

This modifier uses regex with the Python library. If regex is new to you, consider using AI Modifiers instead — they can handle the same transformations without any regex knowledge.

Update takes the attribute regexp that is a regex expression that matches on some parts of the attribute and replaces each matched group with the content of replace_by. Here’s a helpful tool for you to craft your regex.

An example regex could be []+ with a replace_by of ’/’, this would take all places in the attribute that has multiple /’s in a row and replace them with singular /. So https://test//tests would become https:/test/tests.

Example #

In this example, we want to remove the last part of a URL using a regex pattern. The starting URL is: https://example.domain/product/153//__example. To remove the //__example part, we can use the following regex: \/\/__example.

Since we simply want to remove this part of the URL without replacing it with anything else, the Replace by field is left empty.

Update modifier

Change attribute type #

Allow for changing of types in an attribute. So if the data is a number and you need it to be a string, you can use this to typecast it. The type of attribute are: string,int,float and boolean.

Split attribute #

Allows for splitting a string by a separator, into a list of strings. Defaults to splitting by comma if no separator is given.

Example #

Here we are splitting an attribute with categories turning into a list: "lineman, chute" to ["lineman","chute"].

Append value #

Allows for adding new values to an existing list attribute.

This could be adding additional strings to a tags attribute, or adding a new category to a categories attribute.

Evaluate an expression #

The Expression action evaluates a mathematical expression, which can include attributes, constants, and operators. So, if you define this expression: price * 0.8 the system will calculate the result by multiplying the value of the price attribute by 0.8, applying a 20% discount.

Example #

If you input in the New Value field the string: price * 0.8 and the price is 100 than the result would be 80.

New formatted attribute #

This action creates a new attribute based on existing data, while applying formatting or transformations to its value.

To reference an existing attribute, wrap its name in curly braces with no spaces: {attributeName}.

  • Copy an attribute: set New Value to {MPN}.
  • Concatenate text and attributes: € + {price}.

If you include spaces inside the braces, like { attribute }, the system will save the literal string (including braces), not the attribute value.

Example #

You can combine attributes, add prefixes or suffixes, or change how the data appears. For example, to create a formatted price like €100,00, set New Value to: € + {price}.

If Statements #

If you add any statement in the if field, the command will only run on attributes where the given statement evaluates to true.

Available operators are:

OperatorMeaning
==Match all products where the attribute is equal to value.
!=Match all products where the attribute is not equal to value.
>Match all products where the attribute is greater than value.
>=Match all products where the attribute is greater than or equal to value.
<Match all products where the attribute is less than value.
inMatch a substring in a string or an element in a list
orMatch if x OR y is valid
andMatch if x AND y are valid

Example #

Create a new attribute Availability set to Available, If stock > 0.

If Modifiers

Creating attributes from lists #

A common use case is creating a separate attribute based on values in an existing list attribute. For example, if you have a tags attribute containing values like Female, Male, and Unisex, you can create a dedicated gender attribute for use in Search facets.

The in operator checks if a value exists within a list. The syntax is:

"value" in attribute_name

To create a gender attribute from tags, set up multiple modifiers in sequence:

AttributeNew ValueIf
genderFemale"Female" in tags
genderMale"Male" in tags
genderUnisex"Unisex" in tags

Each modifier runs only when its condition is true. The order matters - if a product has multiple matching tags, the last matching modifier determines the final value.

Note: The value you’re checking for must be wrapped in quotes (e.g., "Female"), while the attribute name is written without quotes (e.g., tags).

Combining conditions #

You can combine multiple conditions using and and or operators.

Match products where brand is Nike AND stock is greater than 0:

brand == "Nike" and stock > 0

Match products where category contains shoes OR boots:

"shoes" in categories or "boots" in categories

Match products with a specific tag AND price above 100:

"premium" in tags and price > 100

Testing & Save #

Before clicking Save & Run, which applies the modifiers across your entire catalogue, it’s best practice to test your new modifier first. You can do this in the See how your modifiers impact your product data section.

Here, you can select a product and view how it’s affected by the modifier using the Before & After visualisation.

Testing modifiers
You can include or exclude individual modifiers from the preview. Use the Include in preview checkbox on each modifier to temporarily remove it from the preview calculation when testing a product. This selection only affects the preview and not the live modifier — all modifiers will be applied when you click Save & Run.