If you sell gifts, custom prints, food or anything people like to personalise, you will soon want to offer extras on the product page: gift wrap, a card message, engraving, a bigger size or an extra topping. WooCommerce does not include product add-ons out of the box, and the official Product Add-Ons extension is a paid yearly subscription. This guide shows how to add WooCommerce product add-ons for free with OptionKit, our free extra product options plugin, and how to set them up so they actually help you sell instead of cluttering the page.
Add-ons vs variations: which do you need?
WooCommerce variations are built for choices that change the stock-keeping item itself: a T-shirt in size M or L, a mug in white or black. Each variation can have its own SKU, stock level, image and price. That is exactly right when you hold separate stock for each version.
Add-ons are for choices that change the order but not the stock item: gift wrap, a printed name, express handling, an extra shot of espresso. If you try to model these as variations, the numbers explode. Three options with four choices each is 4 × 4 × 4 = 64 variations, every one of which needs a price and stock setting. A text field such as “name to engrave” cannot be a variation at all.
| Use variations when | Use add-ons when |
|---|---|
| Each choice is a different physical item with its own stock | The choice is a service or extra on top of the item |
| You need a separate SKU or image per choice | The customer types something (a name, a date, a message) |
| There are only a handful of combinations | Options combine freely and would create dozens of variations |
Many shops use both: variations for size or colour, add-ons for personalisation and extras.
What you need before you start
- WordPress with WooCommerce 8.0 or newer (OptionKit is an extension and does nothing without it).
- A test product, ideally a simple product you can buy in test mode.
- A recent backup. Adding a plugin is low risk, but it is a good habit. Our guide on how to verify a WordPress backup before restoring explains how to make sure a backup is actually usable.
Step 1: Install the free OptionKit plugin
- Go to the OptionKit download page, enter your email and download the zip.
- In WordPress, open Plugins → Add New → Upload Plugin, choose the zip and click Install Now.
- Click Activate. OptionKit appears under your WooCommerce menu.
The free version includes up to 3 active option groups with 15 fields each. Draft groups do not count, so you can prepare seasonal groups (for example “Christmas gift options”) and switch them on when you need them.
Step 2: Plan your option groups
An option group is a set of related fields that appears together on the product page. Before you click anything, write down what you want to offer and group it by purpose. A gift shop might use:
- Gift options: gift wrap (checkbox, +$5), ribbon colour (select), card message (textarea, free).
- Personalisation: engraving (checkbox, +$12), engraving text (text, max 20 characters), font (radio).
- Delivery extras: priority handling (checkbox, +$8).
Keeping groups small and focused makes them easier to assign and easier for shoppers to understand.
Step 3: Create a group and add fields
Open OptionKit, click to add a new group and give it a clear name such as “Gift options”. Then add fields. The free version supports text, textarea, number, select, radio and checkbox fields, which covers almost every common add-on:
- Checkbox for yes or no extras such as gift wrap.
- Select or radio for one choice from a list, such as ribbon colour or font. Use radio when there are four or fewer choices, because people can see them all at once.
- Text or textarea for anything the customer types, such as a name or a card message. Set a sensible maximum length.
- Number for quantities of an extra, such as extra candles on a cake.
Write labels that say exactly what the customer gets, including the price where there is one: “Gift wrap in kraft paper (+$5)” is better than “Wrapping”.
Step 4: Set prices for each choice
Each choice can have its own price, and OptionKit supports four pricing types:
- Flat fee: a fixed amount, for example +$5 for gift wrap.
- Percentage of the product price: useful for premium upgrades, such as +10% for a hardwood frame.
- Per quantity: charged for each unit, so wrapping three items costs three times as much.
- One-time fee per cart line: charged once no matter the quantity, ideal for setup costs like an engraving plate or a design proof.
The live total on the product page updates as the customer chooses, and prices are always recalculated on the server, so nobody can change a price in their browser.
Step 5: Use conditional fields to keep the page short
Long product pages with every possible option showing at once hurt conversions, especially on mobile. Conditional fields fix this. Set the “Engraving text” field to show only when the “Add engraving” checkbox is ticked, and the “Ribbon colour” select only when “Gift wrap” is ticked. Most shoppers see two checkboxes; only those who want extras see the extra questions.
Step 6: Assign the group to products
You can assign a group to all products, to chosen products, or to whole categories or tags, with excludes and a priority order when several groups apply. Assigning by category is the time-saver: put “Gift options” on your “Gifts” category and every new gift product picks it up automatically. For one-off products, you can also build a group from the product edit screen.
Step 7: Place a test order
Never skip this. Place a test order with every option ticked and check that the selections and prices appear in:
- the cart and the Cart block,
- the checkout and the Checkout block,
- the customer and admin order emails,
- the order screen in WooCommerce.
OptionKit is compatible with High-Performance Order Storage (HPOS) and the Cart and Checkout blocks. If your order emails do not arrive at all, that is a mail problem rather than an add-on problem: see how to fix WordPress emails not sending with SMTP.
Tips that increase add-on sales
- Put the most popular add-on first and keep the rest below it.
- Show the price in the label. Surprise costs at checkout cause abandoned carts.
- Use a photo or a short line of proof in the product description (“Our gift wrap uses recycled kraft paper and a cotton ribbon”).
- Keep required fields to a minimum. Only make a field required if you truly cannot fulfil the order without it.
- Keep the page fast. Add-on scripts should be small and cached. If you also use page caching, make sure cart and checkout are excluded: our guide to speeding up WooCommerce without breaking checkout shows how.
Common problems and fixes
- Options do not show on the product page: check the group is active (not draft) and that the product is in the assigned category or tag. Check the priority if another group also applies.
- The price does not change: make sure each choice has a price type and amount, then clear any page cache for that product.
- Options missing from the order email: confirm you are testing with a new order, not an old one placed before the group was active.
- Need more than 3 groups, file uploads or formula pricing: those are in OptionKit Pro, which adds more groups and fields, calculated fees and formula pricing, customer file uploads, lookup price tables and option revenue reports.
Free vs paid product add-on plugins
The official WooCommerce Product Add-Ons extension and several commercial plugins are solid choices, but most are sold as yearly subscriptions. If your needs are a few groups of checkboxes, selects and text fields with simple prices, the free OptionKit covers them without a licence key or account. If you later need file uploads or calculated prices, upgrade then, not before.
Getting more carts started is half the job. Bringing back the shoppers who leave is the other half. See our roundup of the best WooCommerce abandoned cart plugins for 2026, free and paid.
Product pages converting better? Customer photos help too. See our tutorial on how to add photo and video reviews to WooCommerce, with review request emails and honest review rewards.
Frequently asked questions
Can I add product add-ons to WooCommerce for free?
Yes. A free plugin such as OptionKit adds checkbox, select, radio, text, textarea and number fields with their own prices. The free version allows up to 3 active option groups with 15 fields each.
What is the difference between product add-ons and variations?
Variations are separate versions of a product with their own stock and SKU, such as sizes. Add-ons are extras on top of the product, such as gift wrap or engraving, and they do not need separate stock.
Do product add-ons work with the WooCommerce Cart and Checkout blocks?
OptionKit does. It is compatible with the Cart and Checkout blocks and with High-Performance Order Storage, and selections appear in orders and order emails.
Can I charge a one-time fee instead of a per-item fee?
Yes. Choose the one-time fee per cart line pricing type. It is charged once no matter how many units the customer buys, which suits setup or engraving plate costs.
Can I show an option only when another option is selected?
Yes. Use conditional fields, for example to show the engraving text box only when the engraving checkbox is ticked.
More free tools: see all our free WordPress plugins or browse the 007AJ shop.
Leave a Reply
You must be logged in to post a comment.