Who Is This For?
StoreHub merchants who sell products with customisable options (like meal add-ons) or different versions (like sizes and colours), and need to choose between modifiers and variants.
Overview
This article covers two different ways to handle product options in StoreHub, and how to choose between them.
Modifiers let customers customise a single product at ordering time (e.g., 'Hot' or 'Iced' for a coffee, 'Add Extra Cheese' on a burger). Typically used by F&B businesses.
Variants are different sellable versions of the same product, each with its own stock count (e.g., a T-shirt in Small / Medium / Large, or Red / Blue). Typically used by Retail businesses.
This guide explains the difference, the rules for combining them with other features, and the step-by-step setup for each.
Before You Begin
Access to BackOffice (log in at your StoreHub BackOffice URL).
Products already added in BackOffice. If not, see this article first.
If you plan to set online prices for modifiers, make sure your online channels (Foodpanda, ShopeeFood, Beep/Webstore) are already connected.
Notes:
For shared modifiers, any prices you set for online channels must be entered as tax-exclusive.
Shared Modifier Groups, the option sets you reuse across many products can be created and updated using a CSV file import. See 'Import Shared Modifier Groups Using a CSV File' below.
Custom Modifier Groups, options that belong to one product only will be required to set up by hand (manually).
Online modifier prices do not apply to your QR Order and Pay menu. QR Order and Pay uses the standard 'Add to Price' value.
Variants cannot be used to track ingredient-level (composite) inventory. If you need to track ingredients, use modifiers with composite inventory instead. See How to Set Up and Use Composite Inventory.
Step-by-Step Guide
What Is a Modifier?
A modifier is an option you add to a product that lets customers customize their order. Think of them as the questions you ask a customer before making their item. Modifiers can be free or have an additional cost.
Example:
A modifier group called 'How would you like your coffee?' could have options like 'Hot', 'Iced' (+RM 1.00), or 'Add Caramel Drizzle' (+RM 0.50).
This is different from a variant, which is used for different sellable versions of a single product (e.g., sizes and colours on a T-shirt). See Modifier vs Variant below for the full comparison.
What Is a Variant?
A variant is a different sellable version of the same product. Each variant is its own SKU with its own stock count, per store. Use variants when your product comes in different options that customers pick at the point of purchase and you need to track stock for each option separately.
Example:
A T-shirt product with variants for Size (Small, Medium, Large) and Colour (Red, Blue). Each combination (e.g., Small-Red) has its own stock count.
Variants are typically used by Retail businesses. F&B businesses should usually use modifiers instead. See the comparison below.
Modifier vs Variant
Use this table to decide which one fits your product:
| Modifier | Variant |
Purpose | Customisation on top of a product at ordering time. | Different sellable versions of the same product. |
Stock tracking | No separate stock per option (unless using composite inventory for ingredients). | Required. Each variant tracks stock per store. |
Best for | F&B: drinks, toppings, cooking preferences, add-ons. | Retail: sizes, colours, flavour packs, any sellable SKU differences. |
Pricing | Optional add-on price (e.g., '+RM 1.00'). | Each variant can have its own base price. |
Example | A latte with a 'Temperature' modifier (Hot / Iced) and a 'Milk' modifier (Full / Oat +RM 1.50). | A T-shirt with Size (S / M / L) and Colour (Red / Blue) variants, each row tracked as its own SKU. |
Rules to remember:
A product can have both variants and modifiers. Set the modifier group on the parent product for the main product itself, not each Small, Medium or Large version underneath it and every variant gets that group automatically.
You cannot give one variant its own modifier group. Open a variant and the 'Has Modifiers' box is greyed out, because a variant always uses whatever modifier group is on its main product.
Variants require stock tracking. Track Stock Level must be enabled on the product.
Variants cannot be used with Composite Inventory. If you need ingredient-level tracking, use modifiers with composite inventory instead. See here.
Which Type of Modifier Should I Use?
Use a custom modifier if: | Use a shared modifier if: |
Your options are unique and apply to only one product. | You want to reuse the same set of options across many products. |
Example:
'Add Pickles' only applies to your 'Classic Burger'. | Example:
'Hot' or 'Cold' applies to all the drinks on your menu. |
Single Choice | Multiple Choice |
Use this if customers can only pick one option (e.g., a steak's cooking temperature can only be 'Rare' or 'Medium Well').
| Use this if customers can pick more than one option (e.g., a burger can have 'Add Pickles' and 'Add Extra Cheese').
|
Set Up Custom Modifiers
Use these steps for options that are unique to a single product.
1. In your BackOffice, go to 'Products'.
2. Select the product you want to edit, or click '+ Add Product' to create a new one.
3. Scroll down to the 'Modifiers' section and tick the 'Has Modifiers' box.
4. Under 'Custom Modifier Groups', choose a type ('Single Choice' or 'Multiple Choice') and click '+ Add Group'.
5. In the 'Modifier Detail' section, add your options. You will see columns to set up each choice:
'Group Name': The name of the modifier group (e.g., 'Meal Size').
'Name': The name of the option (e.g., 'Extra Cheese').
'Add to Price': The standard price for in-store and QR Order and Pay orders.
6. If you use online platforms, you will also see a 'Price' field and a 'List on...' checkbox for each platform you use, such as 'Foodpanda', 'ShopeeFood', or your 'Beep/Webstore'.
Example:
Enter the price you want to charge for this modifier on that platform (e.g., 'Foodpanda Price').
Tick 'List on Foodpanda' to make the modifier available on Foodpanda. Untick it to hide it.
7. Click 'Save' at the bottom of the page when you have added all your options.
Set Up Shared Modifiers
Use these steps for options you want to reuse across many products. The process has two parts: creating the group, then linking it to products.
Part 1: Create the Shared Modifier Group
1. In your BackOffice, go to 'Products', then click 'Modifier Groups'.
2. Click 'Create a Modifier Group'.
3. In the 'Modifier Detail' section, enter a 'Group Name' for your modifier (e.g., 'Drink Temperature').
4. Choose a modifier 'Type'.
Notes:
Single Choice: Use this if customers can only pick one option (e.g., a drink can be 'Hot' or 'Cold').
Multiple Choice: Use this if customers can pick more than one option (e.g., a coffee can have 'Extra Shots' and 'Add Whipped Cream').
5. Under 'Modifier Options', add a row for each choice and fill in the details:
'Name': The name of the option (e.g., 'Hot', 'Cold').
'Add-on Price': The standard price for in-store and QR Order and Pay orders.
6. If you use online platforms, you will also see a 'Price' field and a 'List on...' checkbox for each platform (e.g., 'Foodpanda Price', 'List on Foodpanda').
7. Click 'Publish & Next'.
Part 2: Link the Group to Products
1. After creating the group, click the 'Add Products' tab.
2. Under the 'Linked Products' tab, click 'Link Product'.
3. Tick the box next to each product you want to link, then click 'Link Products'.
4. A pop-up will appear asking for confirmation. Click 'Confirm'.
Your linked products will now appear under the 'Linked Products' tab.
Import Shared Modifier Groups Using a CSV File
You can create and update Shared Modifier Groups from a spreadsheet instead of adding them one at a time.
To download the groups you already have, see 'Export Shared Modifier Groups Using a CSV File' below.
Read this before you start:
Import your Shared Modifier Groups before the products that use them. Re-importing a group replaces its whole list of options, meaning any option you leave out is removed from the group and from every product using it. There is no undo, so click 'Export to CSV' first and keep the file. It lists every option the group has today. Check it before you re-import it. See 'Export Shared Modifier Groups Using a CSV File' below for where that button is. The template ships six example rows for 'Size' and 'Add-ons' that import as real groups, so replace them with your own rows.
An imported group applies to every store on your account.
1. In your BackOffice, go to 'Products', then click on 'Import' and select the drop down list for 'Import Modifier Groups CSV'. You can also start from the 'Modifier Groups' page. If your Products page shows a single 'Import' button, click 'View legacy products' first.
2. On the 'Import Modifier Groups' page, click 'download a CSV template' and open the file in a spreadsheet program like Excel or Google Sheets.
3. Fill in one row for each option. Every row that shares the same 'Group Name' becomes one group, keep the group's settings the same on every one of its rows, or the whole group is skipped with an error like 'Choice type must be the same on every row'.
Column | What to enter |
Group Name | Required. The name of the group, for example 'Sugar Level'. Every row with this name becomes one group. The name cannot start with a hash ( # ). |
Choice Type | Required. 'Single' if the customer picks one option, 'Multiple' if they can pick more than one. Careful: changing a saved group from 'Multiple' to 'Single' also clears its selection limits and quantity setting. |
Min Selection / Max Selection | Optional, for Multiple choice groups only. The smallest and largest number of options a customer can pick. On a new group, blank means no limit. On a group you already have, blank keeps the current setting. |
Qty Selector | Optional, for Multiple choice groups only. 'Y' lets a customer order more than one of the same option. On a new group, blank means off. On a group you already have, blank keeps the current setting. |
Option Name | Required. The name of the option, for example 'Less Sugar'. Each option in a group needs a different name. Careful: renaming an option you already have removes the old option and its settings. See 'Updating Groups You Already Have' below before you rename anything. |
Default | Optional, for Single choice groups only. 'Y' pre-selects this option. On a new group, blank pre-selects the first option in the file. On a group you already have, blank keeps the current setting. |
Add-to-Price | Required. The amount added to the product's price when this option is picked. Enter 0 if it is free. You can enter a negative amount to reduce the price. Prices here do not include tax. |
Channel columns, for example 'GrabFood Price' and 'List on GrabFood' | Optional. You get one pair of columns for each online channel you sell on: Foodpanda, ShopeeFood, Beep/Webstore, and GrabFood. Enter a price only if that channel should stop following the option's Add-to-Price, and 'Y' or 'N' to show or hide the option there. |
Note:
Leave a channel price cell blank if you want that channel to follow the option's normal Add-to-Price. If you type a price into the cell, even the same amount as the Add-to-Price, that channel is locked to that number and will not follow your future price changes.
Enter 'Y' or 'N' only. 'Yes' and 'No' are not accepted.
Do not rename, delete, or reorder the columns.
The grey row starting with a hash ( # ) explains each column. The import skips it, so you do not need to delete it.
4. Save the file as CSV, go back to the import page, click 'Select File', choose your file (5MB or smaller), then click 'Import'. The import runs in the background, and you will get an email from [email protected] when it finishes.
5. When it finishes, check the 'Import Tasks' table at the bottom of the page. The 'Remark' column shows the result, for example '1 group(s) created, 0 updated, 1 skipped'.
6. If some rows did not import, click 'Download' in the 'Errors' column for a file listing each skipped row and the reason. If one option in a group has a problem, the group's other rows read 'Skipped because another option in this group has an error'. Fix the row with a different reason, save as CSV, and upload that same file again. You do not need to delete the 'Error' column first.
Export Shared Modifier Groups Using a CSV File
You can download your Shared Modifier Groups as an Excel or CSV file to keep a record before you change anything, or to edit them in a spreadsheet and import them back. This downloads your modifier group setup, the options and their prices. It is not your sales, orders or transaction reports. See 'Import Shared Modifier Groups Using a CSV File' above for how to upload the file.
1. In your BackOffice, go to 'Products', then 'Modifier Groups'.
2. Click 'Export to CSV' at the top right of the table, next to the three-dots icon. The file downloads every Shared Modifier Group, one row per option.
3. To export only some groups, tick the boxes next to them first, then click
Note:
The file uses the same columns as the import, so you can edit it and import it back to update your groups. It lists the options in each group and their prices. It does not record which products use the group, so it is not a record of your product setup. Remember that re-importing a group replaces its whole option list, so keep every option you want in the file. Importing a file that lists only some of your groups does not touch the groups you left out of it. Custom Modifier Groups are not included, the export covers Shared Modifier Groups only.
Set Up Product Variants
Variants are best suited for retail businesses. They let you add single-selection options to a product (e.g., colour, size) and track stock for each combination across stores.
1. In your BackOffice, go to 'Products'.
2. Click '+ Add Product' to create a new product, or select an existing product to edit.
3. Enter the product name, pricing, and other details.
4. Scroll down to the 'Inventory & Variants' section. Tick 'Track Stock Level' and 'Has Variants'.
5. Under 'Variants', click 'Add Group'.
6. Name your group of variants (e.g., 'Colour', 'Size') and add the options (e.g., 'Red', 'Blue', 'Green').
7. Click 'Save'.
8. After saving, the variants will appear at the bottom of the product page. Enter the stock quantity for each variant in each store.
Note:
You can also upload products with variants in bulk using the CSV import template. See here.
Manage Existing Modifiers
To view, edit, export, or delete your shared modifier groups, go to 'Products' in your BackOffice and choose 'Modifier Groups'.
Edit a Modifier Group
1. On the 'Modifier Groups' page, click the pencil icon next to the group you want to edit.
2. Make your changes and click 'Save'.
Delete a Modifier Group
You can delete a modifier group using one of two methods.
Option A: Delete from the Main List (Batch Delete)
1. On the 'Modifier Groups' page, tick the boxes next to the group(s) you want to delete.
2. Click the three-dots icon on the right and select 'Delete Modifier groups'.
Option B: Delete from the Edit Page
1. Click the pencil icon on the group you want to delete.
2. On the edit page, click the three-dots icon in the top-right corner and select 'Delete Modifier Group'.
Troubleshooting
Issue | Solution |
Modifier prices are not showing on my online channel | Make sure you have entered a price in the platform-specific price column (e.g., 'Foodpanda Price') and ticked the 'List on...' checkbox for that platform. |
I cannot find the online price columns | Scroll the modifier table horizontally. If you have many online channels, the columns may be off-screen to the right. |
Modifier options are not appearing on QR Order and Pay | Online modifier prices do not apply to QR Order and Pay. QR Order and Pay uses the standard 'Add to Price' value. Make sure you have set the 'Add to Price' value. |
Min/Max choices are not working on POS orders | The Min/Max Choices setting applies to Beep and to your food delivery platforms (GrabFood, ShopeeFood, Foodpanda). It does not apply to POS or E-commerce. |
I want to track ingredients used by each modifier option | Use composite inventory with modifiers. See this article for steps. |
I marked an optional modifier or modifier group as out of stock, but the whole product shows as out of stock | Check how stock is set for the parent product and for modifier options. Optional modifiers can still affect how the product appears when stock rules tie the parent item to modifier stock. Review each modifier option's stock settings and the product's inventory type.
If the issue is only on the POS register, see this article for out-of-stock sales settings. |
My modifier has its own stock. Do I still track stock on the main product? | If you track ingredients per modifier using composite inventory, follow this article.
If the modifier is a simple add-on without composite setup, stock rules depend on how the product is configured. |
Variant stock quantities not updating | Make sure you entered stock quantities in the variant table at the bottom of the product page after saving. Stock must be set per variant per store. |
Parent product shows price 0 but my variant prices are correct | Check the parent product price field and each child variant price. Many merchants set the parent to 0 when all sellable prices live on variants. If POS should show a default, set a base price on the parent or confirm each variant row has the price you expect. |
Error message: Children products must have at least one variant specified | Open the product, go to the variant section, and make sure each required variant group has at least one option selected or saved. Save the product, then sync POS. |
A variant does not appear on my POS layout | Check the product is in the category or layout group assigned to that POS screen. Update the POS layout in BackOffice and sync the register. |
I sell one bottle and a three-bottle pack. Should I use variants or modifiers? | Use variants when each option is a different sellable SKU with its own stock (for example, 1 bottle SKU and 3 bottle SKU). Use modifiers for add-ons that do not change the base SKU the same way. See the Modifier vs Variant section at the top of this guide. |
My whole group was skipped but only one row was wrong | A group is saved or skipped as one set. Fix the row whose error names the real problem, then upload the file again. The other rows only say 'Skipped because another option in this group has an error'. |
Options disappeared from my group after an import | The import replaces the group's whole option list, so any option missing from your file was removed. If you exported the group to CSV before importing, that file lists every option it had, then add them back and import again. If you do not have that file, the removed options cannot be recovered; contact StoreHub Support before you import anything else, so nothing further is lost. |
FAQs
1. Can I have multiple variant groups on one product?
Yes. You can add multiple groups (e.g., 'Colour' and 'Size') and the system will create combinations (e.g., Red-Small, Red-Medium, Blue-Small, Blue-Medium).
2. I sell many brands of bottled beer and need stock per brand. Variants or modifiers?
Use variants when each brand is a different SKU with its own stock count. Use modifiers when the same base SKU only changes add-ons (for example, ice, lime) and stock is not tracked per add-on.
3. What is the difference between a modifier and a variant?
A modifier adds customizable options to a product (for example, Hot or Iced for a coffee). A variant creates different versions of a single product (for example, a T-shirt in Small, Medium, or Large). F&B businesses should use modifiers. Retail businesses typically use variants.
4. Can I create modifiers using a CSV file?
Shared Modifier Groups, yes. Go to 'Products' and click 'Import Modifier Groups CSV'. See 'Import Shared Modifier Groups Using a CSV File' above for the steps. Custom Modifier Groups, no. The options that belong to one product only must be created manually in the BackOffice.
5. Can I set different modifier prices for different online channels?
Yes. Each online platform you use (Foodpanda, ShopeeFood, Beep or Webstore) has its own price column in the modifier table. Enter the price you want for each platform. These prices must be entered as tax-exclusive for shared modifiers.
6. What happens if I delete a shared modifier group that is linked to products?
The modifier options will be removed from all linked products. Customers will no longer see those options when ordering.
7. Can I use both custom and shared modifiers on the same product?
Yes. A product can have both custom modifiers (unique to that product) and shared modifiers (reused across products) at the same time.
8. I sell the same dish as a set meal and ala carte. How do I track one pool of stock (for example, chicken pieces)?
Use one ingredient product with simple inventory, then use composite inventory on each sellable product (set and ala carte) so each sale deducts from the same ingredient stock. See here.
9. If a modifier is optional, should I still turn on stock tracking for it?
Only if you need the register or channels to block that option when it runs out. If you use composite inventory, ingredient stock is usually tracked on the ingredient product, not on the modifier label alone.
10. Can customers choose a variant (for example, size) before they pick modifiers?
Variants and modifiers are set up on the product in BackOffice. If you need a specific order of questions on the POS, check your product uses variants for the size step and modifiers for add-ons.
11. Can I export my Shared Modifier Groups to Excel or a CSV file?
Yes. Go to 'Products', then 'Modifier Groups', and click 'Export to CSV' at the top right of the table. The file downloads every group, one row per option, in the same columns the import uses, so you can edit it and import it back. To export only some groups, tick the boxes next to them first.
12. Can I add the same modifier group to many products at once?
Yes. The products CSV template has a 'Modifier Groups' column at the end. Type the group name on each product's row to attach it, separating more than one group with a semicolon ( ; ). The group has to exist already. See How to Manage Products in Bulk and Export to CSV for the steps.
13. Can I remove a modifier group from a product using a CSV file?
No. The products CSV only adds groups. Clearing a group name from the 'Modifier Groups' column does not detach that group. To remove a group from a product, do it in BackOffice.
Need Help?
Contact StoreHub Support via live chat in your StoreHub app or email [email protected].
Was This Article Helpful?
Let us know below or contact support for further assistance.


























