Skip to main content

Manage brands

A brand is a simple label you attach to products so you can group, filter, and report on them by manufacturer or product line. A brand has exactly one editable field — its name — and each product points at zero or one brand.

You manage brands under Settings → Brands. From there you can add a brand, rename it, archive it (reversibly hide it), restore it, and delete it — plus run those actions in bulk and move brands in and out of SKU with import/export. This page walks each task and calls out the edge cases that trip people up, especially the difference between archiving (always allowed) and deleting (blocked while any product still uses the brand).

Before you begin

Brand actions are permission-gated. You need the matching permission for each operation:

ActionPermission
View the brands list / a brand's detailbrands.index, brands.show
Create a brandbrands.create
Rename a brandbrands.update
Archive / restore a brandbrands.archive
Delete a brand (incl. bulk delete, deletability pre-check)brands.delete
Import / export brandsbrands.import, brands.export

All brand routes also require read-write access to the Products scope. See the product permissions reference for how these fit into the wider catalog permission set.

Read the brands list

The Settings → Brands table is a paginated list served by the V2 settings endpoint. It shows 10 brands per page by default and sorts newest-first (by ID descending) until you click a column header.

  • Sortable columns: ID, Name, Created, Updated.
  • Search: type in the search box to match on brand name.
  • Archived brands are hidden by default. Use the archived filter to show archived brands only, or to include archived alongside active ones.

Each row links through to that brand's detail page (see Read a brand's detail header below).

Find a brand with the picker

Wherever you assign a brand to a product — for example the Brand field on the create and edit product forms — the field is a searchable typeahead backed by a dedicated brand-search endpoint. It behaves differently from the list search above:

  • Type to filter — it matches your text against the brand name.
  • Capped at 50 results, always ordered by name (alphabetical), so the picker stays fast even with thousands of brands. Narrow your search text if the brand you want isn't in the first 50 matches.
  • An empty search returns the first 50 brands (alphabetical), giving you an immediate starting list before you type anything.

Create a brand

  1. Go to Settings → Brands.
  2. Click Add Brand.
  3. Enter a Name and click Create.

The name is required, capped at 255 characters, and must be unique across all brands. If you enter a name that already exists, SKU rejects the save with a validation error — pick a different name or reuse the existing brand.

Once created, the brand is immediately available to assign to products. To attach a brand to a product, set its Brand field while creating or editing the product.

Rename a brand

  1. In the brands list, open the brand and click Edit (the dialog title reads Edit Brand).
  2. Change the Name and click Update.

Renaming follows the same rules as creating: the name is required, max 255 characters, and unique — except the uniqueness check ignores the brand's own current name, so re-saving without changing the name never trips the "already exists" error. The rename is recorded in the brand's activity log.

Renaming a brand updates it everywhere at once — every product pointing at that brand now shows the new name, because products reference the brand by ID, not by a copied string.

Archive and restore a brand

Archiving hides a brand from the default list without deleting it. Unlike delete, archiving is never blocked by usage.

To archive:

  1. Open the brand and choose Archive.

To restore (unarchive):

  1. Show archived brands using the archived filter, open the brand, and choose Unarchive.

Key behaviors:

  • Products keep their reference. Archiving doesn't detach the brand from products — any product using an archived brand still points at it. SKU surfaces a warning at archive time telling you how many products still reference the now-archived brand, so nothing silently changes on those products.
  • Re-archiving is a no-op with a warning. Archiving a brand that's already archived (or unarchiving one that's already active) returns a warning, not an error — the state simply doesn't change.
  • Archived brands still load. A deep link to an archived brand's detail page resolves normally, so saved links and reports don't break.

Delete a brand (blocked when in use)

Deleting a brand permanently removes it. A brand can only be deleted when no product uses it.

  1. Confirm the brand is unused — clear its Brand field on every product still assigned to it, or reassign those products to another brand.
  2. Open the brand and choose Delete.

If any product still references the brand, the delete is rejected with a per-relation error that names the blocker and the product count (for example, "Currently used by N products"). Reassign or clear those products first, then delete.

There is no force-delete for brands — the in-use guard can't be overridden (this differs from attributes, which offer a force option). This is deliberate: it prevents orphaning products against a brand ID that no longer exists.

Archive instead of delete

If you only want a brand out of the way but products still use it, archive it rather than delete. Archiving always succeeds and preserves the product references; delete is reserved for brands you're certain nothing needs.

Pre-check whether brands can be deleted

Before you attempt a delete — especially a bulk delete — SKU can tell you, per brand, whether it's safe to remove. The deletability check returns for each brand ID:

FieldMeaning
idThe brand ID checked
nameThe brand name
deletabletrue if no product uses it, false otherwise
reasonnull when deletable; otherwise the blocking message (for example, the product count still using it)

The bulk delete confirmation UI uses this to show, up front, which of your selected brands will actually be removed and which are blocked — so you're never surprised mid-operation.

Bulk archive, unarchive & delete

You can run archive, unarchive, and delete across many brands at once from the brands list. Select rows with the checkboxes, then use the bulk-action toolbar. The Selected / All toggle controls scope:

  • Selected — act on the rows you checked.
  • All — act on every brand matching the current filters (an apply to all operation).

When you choose All, SKU resolves the exact set of brand IDs from your active advanced-filter payload before running the operation, so the action targets precisely what the filters describe. When you choose Selected, the checked IDs are used directly. (Under the hood, a bulk request must carry either an explicit ID list or the apply to all flag plus filters.)

Bulk delete respects the same in-use guard as single delete. Brands that are still used by products are skipped rather than deleted, and the result reports how many of the total succeeded versus failed. To delete cleanly in bulk, run the deletability pre-check first and clear any blockers.

Bulk archive and unarchive are never blocked by usage — brands already in the target state are counted as no-ops in the success/fail summary.

Import and export brands

Import and export let you create or update many brands from a spreadsheet, and pull the current list out.

Export

Export produces a file with the brand's importable fields — ID and Name. The ID column round-trips: keep it in the file you re-import to update existing brands in place.

Import

Import runs in two phases so you can check your mapping before anything is written:

  1. Preview — upload the file and map columns. SKU validates the mapping (the Name column is required) and shows you what will happen. If required columns are missing, it returns you to the mapping step instead of importing.
  2. Commit — confirm to write the rows.

How rows are matched on import:

  • If a row has an ID, SKU updates that brand. If the ID doesn't exist, the row is skipped with a "doesn't exist" error rather than silently creating a mismatched record.
  • If a row has no ID, SKU matches on Name — updating the brand with that name if one exists, or creating a new brand if not (an upsert by name).

Large imports are handed off to a background job and imported shortly after you confirm, so you don't have to wait on the page.

For importing and exporting the products that carry these brands (rather than the brand list itself), see Import products and Export products.

Read a brand's detail header

Opening a brand shows a lightweight header summary:

FieldNotes
nameThe brand name
products_countCount of products currently assigned to this brand
archived_atTimestamp when archived, or empty if active
created_at / updated_atSystem timestamps

The detail header resolves archived brands too, so a link to an archived brand still opens. The header is an aggregate summary only — richer per-period brand KPIs (sales, margin, scorecards) come from the brand analytics and scorecard pages, which are outside this guide.

Read a brand's activity log

Each brand has a searchable activity log that surfaces two kinds of change:

  1. The brand's own events — rename, archive, and restore.
  2. Product brand-assignment changes — any product whose Brand was set to this brand, or cleared away from it. This lets you see which products moved into or out of the brand over time, not just edits to the brand record itself.

You can search the log by the person who made the change (causer), the event type, the changed properties, or the subject type, and it's paginated for long histories.

Brand fields reference

FieldEditableRules
nameYesRequired, max 255 characters, unique across all brands. The uniqueness check ignores the brand's own record on rename. It's the brand's unique identifier field.
archived_atNo (system-managed)Set when you archive, cleared when you restore. Never edited directly.
id, created_at, updated_atNoSystem-managed. id is used to match rows on import.

name is the only user-editable field on a brand — brands intentionally have no description, logo, or other stored attributes.

Next steps

Video transcript

Brands live under Settings, Products, Brands. A brand is a simple label you attach to products to group and filter them by manufacturer or product line. The list shows every brand with its name and dates — search by name, sort any column, or tick rows for a bulk action. Create Brand adds one: just give it a name. On each row, the pencil renames the brand, and the archive button hides it without losing it. Delete is only allowed when no product still uses the brand — otherwise you archive it instead.

Last verified: