How do I get two separate photo swatches, like Finish AND Material, instead of just one on my Shopify product?

Made-to-order and custom-product sellers often need shoppers to pick both a finish and a material visually. Here's how to get two independent image-swatch groups working, and where Shopify's built-in system stops short.

swatchesproduct-optionscustom-productsvariantsmade-to-order

What's going on

A merchant selling made-to-order 3D-printed pieces needs shoppers to choose two visually distinct things before ordering: a surface finish (matte, glossy, raw layer-lines) and a material or filament type (standard PLA, wood-fill, resin, metal-look). Both matter enough visually that a plain text dropdown undersells the choice. The merchant wants both shown as photo thumbnails, the way Shopify's color swatches normally look, not just one option swatched and the other buried in a select box.

This trips people up because Shopify's swatch tooling historically treated color as the one option worth a picture, with everything else defaulting to text. Add a made-to-order workflow, where inventory isn't a fixed count of physical stock but a set of buildable combinations, and the setup gets more involved than a typical single-swatch product page.

The good news is that Shopify's product options system has been reworked over the past couple of years, and multiple independent swatch groups per product are now a supported native pattern. The catch is that it depends on category metafields and a theme that has adopted the newer swatch blocks, which is where most merchants get stuck without realizing a fix already exists.

Why it happens

Shopify's swatch rendering is driven by product category metafields: a product's assigned category exposes certain fields, such as Color, Pattern, and Material, and only option values mapped to one of those fields get swatch treatment instead of a plain text button. Custom, shop-specific vocabulary like bronze-fill resin or matte layer finish doesn't automatically match anything in that taxonomy, so Shopify has no image to attach unless the merchant explicitly defines that metafield data.

On top of that, swatch support depends on the theme: older themes, or themes that haven't adopted the newer product-page blocks introduced with Online Store 2.0, simply don't have the markup to render swatches at all, image or otherwise. The underlying data can be set up correctly and still show as plain text on an unsupported theme.

Made-to-order pricing and inventory add a separate wrinkle. Because there's no finished-goods stock sitting in a warehouse, tracking quantity the normal way, per variant, decrementing on sale, doesn't map cleanly to a build-to-order model. That's a different problem from the swatches themselves, but it tends to surface at the same time.

5 ways to fix it

1

Use Shopify's native category-metafield swatches for each option (no app required)

Shopify has a built-in swatch system tied to product categories: once a product is assigned the right category, any option whose values match that category's metafields (Color, Pattern, Material, and similar) can render as an image swatch, a solid-color swatch, or a text pill, and you can mix types across options on the same product — so Finish can be image swatches while Material is also image swatches. This depends on your theme having adopted the newer Online Store 2.0 swatch blocks; check your theme's product page settings, or the category and metafield mapping on the product itself in Shopify admin. If your theme predates this support, updating it (or asking your theme developer) is usually the fix and doesn't require a paid app.

2

Map your custom values (finishes, filaments) to real metafield definitions

Custom shop vocabulary like matte PLA or bronze-fill resin usually isn't a standard taxonomy value, so Shopify has no image to attach to it. In Settings, under custom data and metafields (or the product's category picker), either choose a closer-matching category that already exposes Material or Pattern metafields, or define your own metafield backed by a metaobject list where each entry stores its own swatch image. This is what lets two independent option groups, Finish and Material, each carry their own thumbnail instead of one defaulting to plain text.

3

If the native system falls short, use a dedicated swatch or product-options app

Not every theme or product type works cleanly with the native metafield swatch flow, and some merchants want more than it offers — custom swatch shapes, swatches showing up on collection grids, or swatches for combinations the standard taxonomy doesn't cover. In those cases a swatch app built to support multiple independent image-swatch groups per product is the practical route. Look specifically for one that advertises support for two or more visual option groups, rather than one that only handles a single color option well.

4

Set up inventory tracking around made-to-order builds, not fixed stock

For made-to-order goods, don't manage stock the way you would for pre-made inventory. In each variant's settings, either turn off quantity tracking so every Finish and Material combination stays orderable, or keep tracking on with continue-selling-when-out-of-stock enabled so a temporary zero count on one filament doesn't block orders you could still fulfill once restocked. This keeps your two swatch groups purely visual while inventory logic runs independently underneath.

5

Watch the option and variant-combination limits as you add groups

Shopify still caps a single product at three option groups total, so Finish plus Material already uses two of your three slots, leaving one for Size or Color. There's also a cap on total variant combinations per product, and that ceiling has changed over time, so check your current limit in admin before designing a large matrix of finishes by materials by sizes. If you need a fourth option, you'll generally need to fold two option types into one value (for example, Finish/Material: Matte PLA) or use a product-options app that layers extra choices on top without creating true Shopify variants.

Bottom line

There is a real, free path here: Shopify's native category-metafield swatch system can show two separate image-swatch groups, like Finish and Material, on the same product page, provided your theme supports the swatch blocks and your option values are mapped to metafields rather than left as freeform text. Most of the friction merchants hit is metafield setup, not a missing feature. If your product category, theme, or need for collection-grid swatches pushes past what the native system covers, a swatches or product-options app is a reasonable next step, as long as you confirm it explicitly supports independent swatch groups before installing, since many only handle a single color option well.

Still Stuck?

Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.