Most personalized clothing starts as a garment you already stock: a sweater with initials on the chest, a hoodie with a name down the sleeve, a tee with a club logo. Shopify’s variants handle the garment, in its sizes and colors. They cannot take the personalization: a name is free text, the customer also chooses a font and a thread color, and the embroiderer needs all of it on the order line. Apparel stores sell three things under one product page: stocked garments, personalization added to them after the order, and, for some, garments made to the customer’s measurements. Each belongs in a different part of Shopify.
In short: if you stock it and count it, it is a variant; if it is an instruction for the press, the embroidery machine or the sewing room, it is a custom option; if a shopper would search for it on its own, it is a separate product. This guide applies that rule to clothing, and then covers where names, monograms, logos, measurements, pricing and conditional logic fit. It draws on our research into how hundreds of e-commerce apparel stores configure their custom options.
Start with how you stock and make clothing
The catalog structure follows your operation. Most apparel businesses are one of these, or a mix:
- Stocked finished garments. You buy or produce ahead of demand and hold stock per size and color: a crewneck in S to XXL in three colors.
- Stocked blanks, decorated to order. You hold plain garments by size and color and print, embroider or press them after the order: team shirts, monogrammed sweaters, logo workwear.
- Made to order or made to measure. Nothing is stocked as a finished garment. Fabric is cut after the order, to a standard size chart or to the customer’s own measurements: swimwear, tailoring, bridal, custom hats and boots.
Shopify has three places to put a choice, and each matches one of these:
| Where the choice lives | Use it when | What Shopify gives you |
|---|---|---|
| Separate products | Shoppers search for, compare and buy the things separately | Own page, photos, price, description and place in search and collections |
| Variants | You stock and count each version | Own SKU, barcode, stock level, price, weight and image; the theme’s picker; collection filters by size and color |
| Custom options | The choice is an instruction for decoration or making, a personalization, or a paid service | Choices saved on the order line for your workshop; add-on prices; text, numbers, uploads; conditional logic |
Products and variants are built into Shopify. Custom options are not: a name field, a logo upload or a priced embroidery choice comes from a product options app such as OptionWise, or from custom theme code.
Which clothing choices should be separate products
Make something its own product when a customer would search for it or compare it on its own. A hoodie, a crewneck and a t-shirt with the same print are three products: different garments, different prices, different photos, and shoppers look for them by garment type. Group them in a collection named for the design.
Men’s and women’s cuts of the same design can go either way: two products when the size charts and photos differ and shoppers browse by department, one product with a fit variant when they do not. Youth and adult sizes of the same shirt are one product with one size list, Youth Small through Adult XL, because the garment and the photo are the same.
Do not split by something you can show with a swatch. A shirt in black and a shirt in navy is one product with a color variant, not two pages in every collection.
Which apparel choices should be variants
Size and garment color are the classic variant axes, and in apparel they almost always should be. Clothing is the category where stock by size matters most: you run out of mediums before you run out of the shirt. Variants are also what powers the size and color filters on your collection pages (Shopify’s filter documentation), so a shopper can narrow a collection to “Size: M” or “Color: Navy”. Price differences by size go on the variant too: if a 2XL costs $2 more, that is the 2XL variant’s price.
Personalization does not belong in variants. Shopify allows up to three options and 2,048 variants per product. Size and color use two of the three, so a thread color and a font cannot both be added. The initials themselves could never be a variant anyway, because they are free text.
Size is a custom option in one case: nothing is held per size. A garment sewn after the order, or a print-to-order shirt whose blanks you buy per order, has no stock count to track, so the size is an instruction like any other. About one apparel store in five takes size this way. If you do hold stock per size, keep it a variant: a size chosen in an options form does not reduce any stock count, and a store that stocks six mediums finds out it oversold from the customer. If you sell the same garment both ways, stocked in standard sizes and made to measure, make them two products: the stocked one with size variants, the made-to-measure one with no variants and the measurements as custom options.
Custom options do not create SKUs. The garment keeps its one SKU per size and color, and the personalization arrives on the order as line item properties beside it: “Initials: JMR, Font: Script, Thread color: Navy”. That is the job sheet for the order page, the packing slip and the notification email, with any uploaded artwork attached to the same line. The choices are per item, so two monogrammed sweaters are two cart lines, each with its own initials. If your decorator uses its own codes, put the code in the value name (“Navy (T-1801)”).
Custom options for decorated and made-to-measure clothing
Custom options carry every choice that is an instruction rather than a stock item. Personalized text is the most common option in apparel, offered by about a third of stores. For personalized garments:
- Names and monograms, as OptionWise text fields with a maximum length: a monogram is one to three letters, a name a dozen or so characters. Names and numbers on team shirts have their own guide: names, numbers and logos.
- Font, shown rather than named: image swatches of real stitching, or at least each name set in its own lettering. A list of font names nobody recognizes is where wrong-font orders come from.
- Thread or ink color, separate from the garment color and taken as swatches, not a text box. A full embroidery palette runs to fifteen or so shades.
- Logo or artwork, as an OptionWise file upload attached to the order line, and an OptionWise text area for notes (“match the thread to the club crest”).
- Decoration method and placement, where you offer more than one: print or embroidery, left chest or full back, as short fixed lists.
When the garment is cut after the order, the form takes over from the variant picker:
- Cut or style, as a fixed list with a short description in each value (“Classic fit”, “Slim fit”).
- Measurements, one OptionWise number field each, with the unit in the label and a minimum and maximum (“Waist (inches)”), so an order for a 4-inch waist cannot be placed. Offer “Standard size” (a fixed list of sizes) or “Made to measure” first, and a returning customer “Build to my size on file” so they skip the measurements.
- Shapes and sizes from fixed lists. Hat makers offer named crown shapes (Cattleman, Telescope, Teardrop) the customer can see in a photo, and belt makers label each value with both numbers (“Waist 30 in – belt size 32”), so the customer chooses by the number they know and the workshop reads the number it cuts.
- Processing time: “2 weeks plus shipping” as the default, “1 week plus shipping” with a fixed add-on price.
- A required acknowledgement: “I understand this garment is made to my measurements and is non-returnable”, or a pre-order ship date, as a single checkbox so the order records that the customer knew.
In OptionWise, any option can be required and any single choice can carry a default, and add-to-cart and express checkout (Shop Pay, Buy it now) are held until required choices are made. Assign the option set to a tag or collection rather than product by product, so a new hoodie has its personalization options the moment it is tagged (assign to products).
Conditional logic for apparel forms
A personalization form with every field showing asks a customer buying a plain sweater about thread colors and file formats. Conditional logic shows a field only after the choice that makes it relevant:
- The personalization choice reveals its own fields. None, Initials or Name: initials reveal a three-letter box, a name reveals a longer one, and either reveals the font and thread color.
- “I have a logo” reveals the upload, so a customer ordering a name only is never asked for a file.
- “Made to measure” reveals the measurements.
In OptionWise, any buttons, dropdown, radio, checkbox or swatch choice can reveal other fields, on one value or any of several. Rules show or hide whole options, so where initials and names need different limits, make them two text fields and reveal one for each. Hidden fields are not validated and send nothing to the order. See conditional logic.
Pricing personalization and add-on products
Both variants and custom options can change the price, so pricing is not the reason to choose between them; stock is. Stocked size and color steps are variant prices. On the custom options, price the work (initials, a name, a logo, rush processing) and keep thread color and font free. In OptionWise, add-on prices are fixed amounts on a value, totaled live on the page and carried through the cart, checkout and order. They are per unit, so ten embroidered polos at $6 each is $60 of embroidery.
When the extra is a stocked product of its own, such as a gift box or a matching cap, offer it on the garment’s page as an add-on product: OptionWise’s linked-product option adds the real product to the cart with its own price and stock. For wrapping and gift messages, see gift wrap and gift messages.
Worked examples
Each example is the product page as the customer sees it, with each part labeled: what is a Shopify variant, what is a custom option, and what is an add-on product.
A personalized sweater with a gift box
The sweater is stocked by size and color, so both are variants with stock counts. The personalization is an instruction for the embroidery machine: a choice of none, initials or a name, then the text, font and thread color, and an optional logo. The gift box is a stocked product of its own, so it is an add-on product with its own price and stock. This is the page the starter option set below builds.
A made-to-measure swimsuit
Nothing is stocked: each piece is cut and sewn after the order. There are no variants, and even size is a custom option. The cut is a fixed list, the measurements are number fields with limits, rush processing is priced, and a required checkbox records that the customer knows the piece is made for them and cannot be returned.
A starter option set for personalized apparel
Install OptionWise, keep size and garment color as Shopify variants, then build this set: create an option set, add each option below, and assign it to a tag such as personalized. Prices are examples in dollars; use your own amounts and currency.
| Option | Type | Values | Notes |
|---|---|---|---|
| Personalization | Buttons, required, default None | None; Initials (+$12); Name (+$15) | Controls the fields below |
| Initials | Text, required, max 3 characters | Shown for Initials | |
| Name | Text, required, max 12 characters | Shown for Name | |
| Font | Image swatches, required, default Script | Script, Block, Classic serif | Shown for Initials or Name; photograph the stitching |
| Thread color | Image swatches, required, default Navy | Navy, White, Black, Red, Gold, Pink | Shown for Initials or Name |
| Add my logo | Checkboxes, no heading | Add my logo (+$10) | Reveals Your logo |
| Your logo | File upload, required | Shown when Add my logo is checked | |
| Notes | Text area | Optional |
The text, font, thread color and upload are required only when they are shown. For a made-to-measure garment, replace these with a Cut choice, one number field per measurement, a priced Processing time and a required acknowledgement checkbox, as in the swimsuit above.
Common mistakes
- Stocked sizes as custom options. No stock count goes down, so you oversell the mediums. If you hold stock per size, size is a variant.
- Personalization choices as variants. Thread colors multiply the variant count for sweaters that are identical on the shelf, and the name itself cannot be a variant. Keep personalization as custom options.
- Thread or ink color as free text. You get “dark blue ish” instead of a thread name. Use swatches.
- The character limit only in the label. “Max 8 characters” with nothing stopping twenty. Put the limit on the field.
- Measurements as long dropdowns or free text. Every size from 21 to 38 as a list, or “about 30ish”. Use a number field with a minimum and maximum.
- Option sets attached product by product. The new hoodie goes live without its embroidery options. Assign by tag or collection.
Options should load with the page
On a clothing page, size, color and the monogram are one decision to the customer, so they should arrive together. Most options apps add their fields after the page has loaded, so the monogram and thread color choices appear a moment later and push the add-to-cart button down. OptionWise’s custom options load as part of the product page, next to the size picker, so they appear with the price and photos and nothing moves (learn more).
Frequently asked questions
Should t-shirt size be a Shopify variant or a custom option?
A variant, if you hold stock of the garment in each size. Size is what shoppers filter collections by and what you run out of, and Shopify's collection filters and stock counts are built on variants. Size belongs in a custom option only when nothing is stocked per size, such as a garment cut and sewn after the order, and then it is one choice among the other made-to-order instructions.
How do I add embroidered names or monograms to clothing on Shopify without creating variants?
Keep the blank garment's size and color as Shopify variants and add the personalization as custom options on top. With OptionWise, a fixed-list choice such as None, Initials or Name controls the rest of the form through conditional logic, so the text box, font, thread color and logo upload appear only when they apply, and each choice can carry a fixed add-on price that is carried through the cart, checkout and order.
How do I take custom measurements for made-to-measure clothing on Shopify?
Use one number field per measurement, with the unit in the label and a minimum and maximum set to what you can actually make. In OptionWise a number field takes a minimum and a maximum, so a 4-inch waist cannot be submitted. Offer a 'Standard size or Made to measure' choice first and reveal the measurement fields only for made to measure, and the measurements arrive on the order as line item properties.
Can customers add a monogram to a sweater on a Shopify product page?
Yes. In OptionWise, an 'Add a monogram' checkbox with a fixed add-on price reveals a short text field with a maximum length for the initials, a font choice and a thread color. The initials, font and thread color are saved as Shopify line item properties on the order line, so they show on the order page, the packing slip and the notification email for whoever runs the embroidery machine.
How do I charge extra for 2XL and 3XL sizes on Shopify?
If size is a variant, set a higher price on the 2XL and 3XL variants; Shopify prices each variant separately. If size is taken as a custom option because the garment is made to order, put a fixed add-on price on the larger values instead. In OptionWise that amount is totaled live on the page and carried through the cart, checkout and order.
How do I make customers confirm a custom item is non-returnable?
Add a single required checkbox, labeled with the terms and a value such as 'I understand'. In OptionWise any option can be required, and add-to-cart and express checkout such as Shop Pay and Buy it now are held until it is checked. The confirmation is saved on the order line, so the order records that the customer agreed.
OptionWise for apparel stores
OptionWise is a Shopify product options app. For an apparel store, it puts monograms, names, fonts, thread colors, logo uploads and measurements next to the theme’s size and color picker, and saves every choice to the order line for the embroidery machine or the sewing room.
OptionWise is free for life for stores that install today. It adds a block to your theme, with no code changes.