Skip to main content

Variant Examples

Complete SKU variant setups for common products, grouped by what the variant controls. Each example shows the setup and what happens when an order comes in. For how an order picks its SKU and values in the first place, see Matching Orders to Variants.

ExampleVariant drivesAlso shows
1. One color pickerA material slotStore-facing value names
2. Same colors, different materialsA material slotSeveral properties on one variant
3. One choice sets several colorsSeveral material slots
4. Two color pickers on one listingSeveral material slotsTwo variants instead of aliases
5. Sizes from an OpenSCAD modelOpenSCAD parameters
6. Buyer-entered textOpenSCAD or 3MF textPersonalization variants
7. Printed text set by the choice3MF textText properties on a 3MF
8. Optional engravingOpenSCAD textOptional variants
9. Dimensions for one product onlyOpenSCAD parametersSKU-specific properties
10. Multi-packsPlate quantities
11. A plate for each combinationPlate quantitiesCompound properties
12. A premium subset of colorsA material slotVariant filters
13. Same product, different names on each channelA material slotVariant and value aliases
14. One listing by SKU code, one by optionsA material slotSKU suffixes

Materials and Colors​

Example 1: One Color Picker​

Scenario: A phone case sold in five colors of PLA. Two of the colors have store-facing names ("Carbon", "Snow") that aren't the material's name.

Setup:

  1. Create a variant named after the listing's option: "Color"
  2. Add a Material property: "PLA Colors"
  3. Add the values exactly as the listing shows them, and pick a material for each:
    • Black → Bambu PLA Basic Black
    • Carbon → Bambu PLA Matte Charcoal
    • Red → Bambu PLA Basic Red
    • Blue → Polymaker PolyTerra Blue
    • Snow → Bambu PLA Matte Ivory White
  4. Add the "Color" variant to the phone case SKU
  5. On the SKU, edit the linked part and map its material slot to Color → PLA Colors

What an order does: "Color: Carbon" matches the Carbon value, and the case prints in Matte Charcoal.

Result: One listing handles all five colors. The value names are whatever your buyers see; the material behind each one is up to you. If another listing names a color differently, add a value alias (see Example 13).

Example 2: Same Colors, Different Materials​

Scenario: The same phone case as Example 1, also sold as a separate listing in PETG.

Setup:

  1. Reuse the "Color" variant from Example 1
  2. Add a second Material property: "PETG Colors"
  3. Fill in a PETG material for each value: Black → Bambu PETG HF Black, Red → Bambu PETG HF Red, and so on
  4. Create a second SKU for the PETG case, add the "Color" variant, and map its part's material slot to Color → PETG Colors

What an order does: "Color: Red" on the PLA listing prints in PLA Red; the same selection on the PETG listing prints in PETG Red. Each SKU reads the property its own part is mapped to.

Result: One variant serves both product lines. Add a property per material line rather than a variant per material line.

Example 3: One Choice Sets Several Colors​

Scenario: A two-color toy figure sold in themes, where each theme has its own primary and secondary color.

Setup:

  1. Create a variant: "Theme"
  2. Add two Material properties: "Primary Color" and "Secondary Color"
  3. Add the values and pick both materials for each:
    • Hero → Primary: Bambu PLA Basic Red, Secondary: Bambu PLA Basic Cobalt Blue
    • Sidekick → Primary: Bambu PLA Basic Green, Secondary: Bambu PLA Basic Jade White
    • Villain → Primary: Bambu PLA Matte Charcoal, Secondary: Bambu PLA Basic Purple
  4. On the figure's SKU, map the part's first material slot to Theme → Primary Color and the second to Theme → Secondary Color

What an order does: "Theme: Villain" sets both slots at once.

Result: The buyer makes one choice and gets a coordinated color scheme.

Example 4: Two Color Pickers on One Listing​

Scenario: A two-color sign whose listing has two separate pickers, "Main Color" and "Accent Color", and the buyer can combine any two colors.

Setup:

  1. Create two variants, one per picker: "Main Color" and "Accent Color"
  2. Give each the same values (Black, White, Red, ...) and a Material property ("Main PLA", "Accent PLA") with a material per value
  3. Add both variants to the sign's SKU
  4. Map the part's body slot to Main Color → Main PLA and its lettering slot to Accent Color → Accent PLA

What an order does: "Main Color: White" and "Accent Color: Red" set the two slots independently.

Result: Any combination prints correctly.

Don't alias both pickers to one variant

Making "Main Color" and "Accent Color" aliases of a single "Color" variant looks tidier, but then every order carries two answers for the same variant. Printago prints with one of them, ignores the other, and doesn't flag the order. Aliases are for a listing that names an option differently, not for a second picker.

Sizes, Shapes, and Text​

Example 5: Sizes From an OpenSCAD Model​

Scenario: A storage box in Small, Medium, and Large, generated from one OpenSCAD file.

Setup:

  1. Declare each dimension as a plain value at the top of the file, before any module. Printago only offers parameters it finds this way, and a numeric default makes the value arrive as a number:
    width_cm = 10;
    depth_cm = 8;
    height_cm = 6;

    cube([width_cm, depth_cm, height_cm] * 10);
  2. Create a variant "Size" with three Text properties: "width_cm", "depth_cm", "height_cm"
  3. Add the values:
    • Small → width_cm: 10, depth_cm: 8, height_cm: 6
    • Medium → width_cm: 15, depth_cm: 12, height_cm: 9
    • Large → width_cm: 20, depth_cm: 16, height_cm: 12
  4. On the box's SKU, edit the linked part. In its Parameters table, click the link icon next to each parameter and pick the matching property under Map to SKU variant property (e.g., Size → width_cm (text)), then click Save Linked Part

What an order does: "Size: Medium" builds the model with width_cm=15, depth_cm=12, height_cm=9.

Result: One model file produces all three sizes.

Example 6: Buyer-Entered Text​

Scenario: Number cookie cutters. The buyer picks a size and types the number they want.

Setup:

  1. Declare both inputs at the top of the OpenSCAD file. The number is text, so give it a quoted default:
    scale = 3; // set by Size
    custom_number = "7"; // set by the buyer
  2. Create a variant "Size" with a Text property "scale": Small → 2, Medium → 3, Large → 4
  3. Click New Personalization and create "Personalization". It gets a Text property named Value automatically, which holds whatever the buyer types
  4. Add both to the SKU, then link scale to Size → scale and custom_number to Personalization → Value

What an order does: "Size: Large" with the personalization "21" builds scale=4 and custom_number="21".

Result: Every cutter is made to order with no manual step.

Text in a 3MF instead

For a 3MF, name the text object in your slicer PrintagoParam... and it becomes a text parameter on the part (see Text Placeholders). Link that parameter to Personalization → Value the same way.

Example 7: Printed Text Set by the Choice​

Scenario: Plant marker stakes sold by herb. Each stake has the herb's name printed on it, but the listing's names are longer than what fits: the buyer picks "Sweet Basil (Genovese)", and the stake should read BASIL.

Setup:

  1. In Bambu Studio or OrcaSlicer, add 3D text to the stake and rename the text object PrintagoParamLabel. Upload the 3MF: the part gets a text parameter named Label (see Text Placeholders)
  2. Create a variant "Herb" with a Text property "Stake text", and add the values as the listing shows them:
    • Sweet Basil (Genovese) → Stake text: BASIL
    • Spearmint → Stake text: MINT
    • Rosemary → Stake text: ROSEMARY
  3. On the SKU, edit the linked part and link the Label parameter to Herb → Stake text

What an order does: "Herb: Spearmint" rebuilds the stake's text as MINT before slicing, sized by the placeholder's replacement sizing rule.

Result: The printed text is fixed per value, so the buyer types nothing and every stake is spelled the way you chose. The same Text property can feed an OpenSCAD parameter instead; for text the buyer types, use a personalization (Example 6).

Example 8: Optional Engraving​

Scenario: A keychain with an optional engraving on the back. Buyers who don't want one leave the field blank.

Setup:

  1. Declare the engraving as a text parameter: back_text = "";
  2. Create a personalization "Back Engraving" and link back_text to Back Engraving → Value
  3. On the SKU, tick Optional next to "Back Engraving". Etsy imports do this for you when the personalization question isn't marked required

What an order does: An order with no engraving still processes instead of waiting in review as missing, and back_text receives empty text. An order with one prints it.

Result: One listing covers both. Design the part so it prints cleanly with no text.

Example 9: Dimensions for One Product Only​

Scenario: A trophy uses your shared "Size" variant, but its base needs widths no other product uses.

Setup:

  1. Add the "Size" variant to the trophy's SKU
  2. On the SKU page, click Add next to the Size variant and create a Text property "base_width_mm". It belongs to this SKU only
  3. Set a width per size: Small → 50, Medium → 75, Large → 100
  4. In the trophy's OpenSCAD file, declare base_width = 75; and link it to Size → base_width_mm

What an order does: "Size: Large" builds the trophy with base_width=100.

Result: The trophy gets its own dimensions while other SKUs using "Size" are unaffected, and the shared variant doesn't collect product-specific properties.

Plates and Packs​

Example 10: Multi-Packs​

Scenario: Signs sold as a 2-pack and a 10-pack, from a 3MF with pre-arranged plates.

Setup:

  1. In your slicer, build a 3MF with two named plates: "Qty1" (one sign) and "Qty8" (eight signs)
  2. Create a variant "Pack Size" with a Plate Quantities property "Pack plates"
  3. Add the values, then click each value's Pack plates cell to set how many times to print each plate. Plate names must match the 3MF's plate names:
    • 2-Pack → Qty1: 2, Qty8: 0
    • 10-Pack → Qty1: 2, Qty8: 1
  4. On the SKU, edit the linked part, click the link icon in its Plates section, and pick Pack Size → Pack plates

What an order does: A 2-Pack prints the "Qty1" plate twice. A 10-Pack prints "Qty8" once and "Qty1" twice: three plates instead of ten.

Result: Bigger packs print on fewer, fuller plates. A plate a value doesn't list prints zero times.

Example 11: A Plate for Each Combination​

Scenario: A coaster set sold in two sizes and two styles. The 3MF has one pre-arranged plate per combination, and which plate prints depends on both choices.

Setup:

  1. Build a 3MF with four plates: "Small Minimal", "Small Deluxe", "Large Minimal", "Large Deluxe"
  2. Add the "Size" (Small, Large) and "Style" (Minimal, Deluxe) variants to the SKU
  3. On the SKU page, click Add next to either variant, check both Size and Style under Source Variants, and create a Plate Quantities property "Set plate". A property based on two or three variants is a compound property, and belongs to this SKU only
  4. Open the property's matrix and, in each cell, set that combination's plate to 1: Small + Minimal → "Small Minimal": 1, and so on
  5. Link the part's plates to Set plate

What an order does: "Size: Large" with "Style: Deluxe" prints only the "Large Deluxe" plate.

Result: One SKU picks the right plate for four combinations. Compound properties work the same way for Material and Text properties.

Controlling What Each SKU Sells​

Example 12: A Premium Subset of Colors​

Scenario: Your "Color" variant has ten colors, but the Premium Mug only comes in Gold, Silver, and Rose Gold.

Setup:

  1. Add the "Color" variant to the Premium Mug SKU
  2. Click the filter icon next to it, choose Include only, check Gold, Silver, and Rose Gold, and click Save Filter

What an order does: "Color: Gold" prints normally. An order for the Premium Mug in Red waits in review as filtered out rather than printing a color you don't sell, and if the Premium Mug uses SKU suffixes, a code ending in Red's suffix doesn't match it at all.

Result: When printing the Premium Mug, only the three premium colors are offered, while every other mug keeps all ten. There's no need for a separate "Premium Color" variant.

Orders From More Than One Listing​

Example 13: Same Product, Different Names on Each Channel​

Scenario: The same mug sells on Shopify, where the option is "Color" and a value is "Navy Blue", and on Etsy, where the option is "Mug Color" and the value is "Navy".

Setup:

  1. Keep one "Color" variant with a "Navy" value mapped to your navy material
  2. On the variant, add "Mug Color" as a variant alias
  3. On the Navy value, add "Navy Blue" as a value alias

What an order does: Shopify's "Color: Navy Blue" and Etsy's "Mug Color: Navy" both resolve to Color = Navy and print with the same material.

Result: Neither listing needs renaming, and you maintain one set of mappings.

Example 14: One Listing by SKU Code, One by Options​

Scenario: A keychain sold two ways. On WooCommerce in PETG, every color is its own variation with its own SKU code (KEY-PETG-BLK, KEY-PETG-RED). On Shopify in PLA, every variant carries the same SKU code, KEY-PLA, and the color comes across as an option called "Key Color".

Setup:

  1. One "Color" variant with values Black, Red, and White, and two Material properties: "PETG Colors" and "PLA Colors"
  2. On the Color variant, check Enable SKU Suffixes and give each value a suffix: Black → -BLK, Red → -RED, White → -WHT
  3. Add "Key Color" as a variant alias of Color
  4. Create two SKUs, KEY-PETG and KEY-PLA, add the Color variant to each, and map their parts' material slots to Color → PETG Colors and Color → PLA Colors

What an order does:

  • KEY-PETG-BLK from WooCommerce isn't exactly a SKU, so Printago reads it as KEY-PETG plus the suffix -BLK. It prints in PETG Black, whatever options WooCommerce sent.
  • KEY-PLA from Shopify is exactly a SKU, so the value comes from the "Key Color: Black" option, matched through the alias. It prints in PLA Black.

Result: One variant serves both listings, one through suffixes and one through names. If the Shopify variants were later given their own codes like KEY-PLA-BLK, those orders would switch to suffix matching and the "Key Color" option would be ignored; see where the values come from.