Custom Option Add-on Fees
This feature allows you to automatically add fee products to the cart when customers select certain product customization options.
How It Works
When a customer adds a product to cart with custom options that have fees enabled, the system automatically adds the associated fee products to the cart with hidden properties linking them to the parent product.
Setup Steps
1. Create Fee Products
First, create products in Shopify to represent your fees:
- Go to Products → Add product
- Create a product for each type of fee (e.g., "Custom Text Fee - $3", "Premium Fabric Fee - $5")
- Set the price to the fee amount
- Mark as Draft or use a tag like
addon-feeto hide from main catalog - Note the product handle (found in the URL:
/products/your-handle)- Example: If URL is
/products/custom-text-fee, the handle iscustom-text-fee - This is the URL-friendly version of the product title
- Example: If URL is
2. Configure Block Fees
For each custom option block that should have a fee:
For Text Fields & Checkboxes (product-custom-property)
- Add the block to your product template
- In the block settings, scroll to Add-on Fee section
- Enable "Enable add-on fee"
- Enter the fee product handle (e.g.,
custom-text-fee) - Result: Fee added when text is entered or checkbox is checked
For Dropdowns (product-custom-select)
- Add the block to your product template
- In block settings, enable "Enable option-specific fees"
- In the "Option fees configuration" textarea, add one line per option that has a fee:
Option A|fee-product-handle
Option B|another-fee-handle - Result: Fee added when specific option is selected
For Checkbox Groups (product-custom-multiselect)
- Add the block to your product template
- Enable "Enable option-specific fees"
- Configure option fees (same format as dropdowns):
Option A|fee-product-handle
Option B|another-fee-handle - Result: Separate fee added for each checked option that has a fee
For Swatches (product-swatch-group)
- Add the block to your product template
- Enable "Enable option-specific fees"
- Configure option fees using the exact swatch names:
Demo 1|fee-product-handle
Navy Blue|premium-color-fee - Result: Fee added when swatch is selected (radio) or for each checked swatch (checkbox mode)
For File Uploads (product-file-upload)
- Add the block to your product template
- Enable "Enable add-on fee"
- Enter the fee product handle (e.g.,
file-upload-fee) - Result: Fee added when file is uploaded
Configuration Format
Finding Product Handles
To find a product's handle:
- Go to Products in Shopify admin
- Click on the fee product
- Look at the URL in your browser:
https://admin.shopify.com/store/YOUR-STORE/products/THE-HANDLE - The handle is the last part after
/products/ - Or check the product's "Search engine listing preview" section in the admin
Example handles:
custom-text-feepremium-fabric-addonfile-upload-processing-fee
Option-Specific Fees (Dropdowns, Checkboxes, Swatches)
Format: Option Name|product-handle
Important Notes:
- One option per line
- Option names are case-insensitive
- Option names are trimmed of whitespace
- Use the exact option text as shown to customers
- Product handle is the URL-friendly version (lowercase, hyphens instead of spaces)
Example:
Red|color-addon-fee
Blue|color-addon-fee
Navy Blue|premium-color-fee
Custom Color|custom-color-fee
Fee Product Behavior
Properties Added to Fee Products
Fee products are automatically tagged with hidden properties that link them to the parent product:
_fee_for_product- The product ID that triggered the fee_fee_for_option- The option that has the fee (e.g., "Custom Color")_fee_for_value- The specific value selected (e.g., "Navy Blue")_is_addon_fee- Marks this as a fee product (always "true")
These properties help you identify and manage fee products in your cart and orders.
Cart Display
Fee products will appear as separate line items in the cart. They can be:
- Styled differently to visually distinguish them from regular products
- Grouped with the parent product for better organization
- Hidden entirely (though showing transparency is recommended for customer trust)
Removing Fees
Fee products are independent line items. If customers:
- Remove the parent product → fees remain (merchant should handle this in cart)
- Change options → old fees remain, new fees are added
Recommendation: Add cart validation or customer messaging about fees.
Important Notes
Fee Display
The fee amount automatically displays next to options when you configure fees. The block will fetch the fee product's price and show it inline with the option (e.g., "Premium Color (+$5.00)").
Testing Checklist
- Fee product created and handle noted
- Block configured with correct fee settings
- Add product with option to cart
- Verify fee product appears in cart
- Check cart properties show correct linking
- Test with multiple options
- Test conditional display (if enabled)
- Verify fee is NOT added when option not selected
Troubleshooting
Fee Not Added
- Check browser console for errors
- Verify fee product handle is correct
- Ensure option name matches exactly (case-insensitive)
- Check that fee product has variants available
Wrong Fee Added
- Verify option name spelling
- Check for duplicate option names
- Review fee configuration format
Fee Added Multiple Times
- This is expected behavior for checkbox groups
- Each selected option with a fee gets its own fee product
See also: