Settings → Categories & SKUs

The most powerful settings page. Categories are the dropdown behind every product, and they control how SKUs are generated, what variant options a new product starts with, and its target margin and forecast.

Where: setlist → Settings → Categories Feeds: the product Category dropdown, all SKU generation, default variant options, suggested prices, starting forecast, and the Subcategory dropdown


Category is yours — "Product type" is Shopify's

Two similar-sounding fields, and the difference matters:

  • Category is setlist's own planning field, managed on this page. It drives SKU generation, default options, targets, and sub-categories. It is never written to Shopify — renaming a category here changes nothing in your Shopify catalog.
  • Product type on a product is a read-only mirror of Shopify's own product-type field. setlist reads it during sync and displays it; it is never edited in setlist and never pushed back.

Everything on this page is about Category.


What a category controls

Each category (e.g. Rings, Earrings) carries:

  • A SKU code (e.g. Ring → R) — suggested from the name, and editable
  • A SKU template — the ordered tokens that build SKUs for its products
  • Default option types — the variant options a new product of this category starts with (e.g. Size: 5,6,7,8,9)
  • Target margin — drives the suggested price for its variants
  • Target forecast — the starting forecast a new product gets
  • Sub-categories — a dependent dropdown on the product form

The global SKU prefix

At the top of the page, set one SKU prefix for the whole shop (e.g. ACME). It's prepended to a SKU only when a category's template includes the "Prefix" token. Type it and click Save prefix (this one uses an explicit save, not autosave). Leave it blank for no prefix.


Adding & editing categories

  1. In the Categories section, the add box takes a Name (e.g. "Ring") and a SKU code. The code auto-fills as you type the name; type over it if you want your own. Click Add category (a "Category added" toast confirms).
  2. Click a category to open its detail page, where you configure everything below. Each field there autosaves.
  3. Delete a category with the trash icon on its detail page. If it can't be removed, the page shows a "Couldn't remove category" banner.

Each row in the list shows the category name, its SKU code as a badge, and a one-line summary — e.g. "3 subcategories · default: Size (5,6,7,8,9)".

How the SKU code is suggested

  • It's the first letter of the name, uppercased: Ring → R, Earring → E.
  • If that letter is already taken by another category, it uses first + last letter: a second category starting with R (e.g. "Rope") → RE.
  • Existing categories keep their codes — only the one you're adding or editing adjusts.
  • The code is editable: 1–12 letters or numbers, stored uppercased. Leave it blank to fall back to the derived code. This is how you keep a deliberate legacy code (e.g. RNG).

Shopify-imported products that still have the placeholder category Other also use this code for late matching. If you add a category after the import and its code appears as a complete token in every SKU (for example, R in HA-R-ADELARING-GF-3), setlist applies that category's targets and defaults without requiring another sync. If more than one category code matches, setlist keeps the product unassigned rather than guessing.


The SKU template (token builder)

This is how SKUs are assembled. A SKU is an ordered list of tokens; each resolves to an uppercased code, empty ones are skipped, and the rest join with -.

Building it

On the category's detail page, the SKU template section shows your chosen tokens as an ordered list. Use Add a token… plus Add token to add one, the up/down chevrons to reorder, and the trash icon to remove. A live Preview shows a sample SKU as you go. The builder autosaves.

A category with no saved template starts the builder on the default: Type code → Name → All option values. That default is also what SKU generation falls back to.

The tokens

TokenResolves toExample
PrefixYour global SKU prefix (skipped if blank)ACME
Type codeThe category's SKU codeR (Ring)
Subcategory codeDerived from the sub-category nameBand → BA
NameThe product's working name, uppercased with spaces strippedLayered choker → LAYEREDCHOKER
All option valuesEvery variant option value not placed by its own token (the catch-all)GF, 7
Option type: {name}One specific option's value, at this positionSize → 7

Codes are derived automatically: multi-word values use initials (Sterling Silver → SS, Gold Filled → GF); single-word values use the first two letters (Silver → SI); numbers keep their digits (size 7 → 7). You can override any option value's code on the value itself.

Use "Option type: {name}" to place a specific option at an exact spot (say, material right after the type code). Anything you place explicitly is dropped from the "All option values" catch-all so it never appears twice. Only option types defined as this category's defaults are offered as tokens.

Examples

  • Template Type code → Name → All option values for a necklace "Layered choker" in Gold Filled, 18": N-LAYEREDCHOKER-GF-18
  • Template Prefix → Type code → Option type: Material → Name with prefix ACME: ACME-N-GF-LAYEREDCHOKER

Heads up on the Preview: it's built from stand-in values (name "Sample", sub-category "Band", the first value of each default option type) and always shows DEMO for the prefix — it demonstrates the shape your template produces, not your actual prefix.

Tokens join with a dash, in order, to build every variant SKU. Reorder them and watch the preview.

  1. 1Prefix
  2. 2Type code
  3. 3Name
  4. 4All option values
PreviewDEMO-R-STACK-SS-7
SKU template — reorder the tokens, watch the preview

Default option types

The variant options a new product of this category starts with. Set up, say, Size: 5, 6, 7, 8, 9 for Rings, and every new ring begins with those options pre-filled (the merchant can still change them on the product).

It uses the same row-based editor as the product page:

  • Up to 3 option types (Shopify's limit), each a name + a list of values.
  • Each value can have an explicit SKU code (blank = auto-derived).
  • Tests required for this option (on by default) — turn off for options that don't need QA tests (e.g. Size).
  • Apply forecast weights (off by default) — split this category's forecast across its values by weight instead of evenly (weights are relative; they don't need to total 100%). A Distribute evenly button helps.

Targets

Two defaults that pre-fill product work (both autosave):

  • Target margin (%) — the gross margin used to suggest each variant's price (suggested = COGS ÷ (1 − margin)). Leave blank to fall back to a variant's own target.

  • Target forecast + Per — the default forecast a new product of this category starts with:

    • Flat total — the number as-is.
    • Per week / Per month — a rate multiplied by the whole weeks/months in the assigned launch's window (falls back to a flat total when the launch has no end date, or when the product has no launch).

    The total lands on the product and is apportioned across its variants as they're created — evenly, or by weight when one of the category's option types has Apply forecast weights on.

Merchants still finalize price and forecast in the Review stage — these are just smart starting points.


Sub-categories

A dependent picklist owned by the category (e.g. Earrings → Hoop, Stud, Threader…). Add them in the Subcategories section of the category's detail page; they populate the Subcategory dropdown on the product form once that category is chosen, and can contribute a Subcategory code token to the SKU. Each rename autosaves on blur; the trash icon removes one.


Set it up: step by step

  1. Set the global SKU prefix at the top (or leave blank), and Save prefix.
  2. Add a category by name — the SKU code auto-fills, and you can edit it.
  3. Open the category and:
    • Build its SKU template (add/order tokens; watch the Preview).
    • Add default option types + values (set per-value SKU codes, forecast weights, or tests-required as needed).
    • Set Target margin and Target forecast.
    • Add sub-categories.

Tips & gotchas

  • The prefix only shows if the template includes the Prefix token. The default template doesn't — add the token if you want your prefix in SKUs.
  • Codes auto-derive; you rarely type them. Override the category code only for a legacy scheme, and the specific option-value codes that guess wrong.
  • Targets are starting points, not locks — they pre-fill, and the merchant finalizes in Review.
  • Nothing here is pushed to Shopify. Category, sub-category, and SKU template are setlist planning data; only the generated SKU travels with a product when you hand it off.

See also