Generate SKUs in bulk for a Shopify catalog

Use a consistent pattern to fill missing SKUs, keep existing identifiers stable, and review duplicates before changing them.

SKUs and barcodes have different jobs

A SKU is an identifier your business assigns to a product variant. It helps connect inventory, picking, purchasing, and reporting. Your suppliers, warehouse, or connected apps may also use it, so changing a SKU can affect more than the product page.

A barcode is a scannable representation of data. It may encode an internal identifier or a standardized product identifier such as a GTIN. An internal code is not automatically a valid retail GTIN.

For EAN or UPC identifiers used outside your own operation, use legitimately assigned product identifiers. Markio can work with your licensed GS1 company prefix, but generating a number does not license a prefix or register a product for you.

Build a pattern your team can read

Markio numbering rules combine tokens with a sequence counter. Choose fields that remain stable and include enough information to distinguish variants.

TokenWhat it inserts
{seq} / {seq:5}The counter, optionally zero-padded to N digits
{vendor} / {vendor:3}Vendor, optionally cut to N characters
{productType}Product type
{title}Product title
{option1} {option2} {option3}The variant's options — size, color
{sku}The variant's existing SKU
{date} / {date:YYYYMMDD}The date the code is issued
{random:4}Random digits, 1 to 12 of them

For example, {vendor:3}-{option1}-{seq:5} could produce ACM-M-00042 for an Acme variant whose first option is M.

Check the sample preview before saving a rule, including products with long titles or non-Latin characters. Shortening a vendor name or title can make different products look alike, so descriptive tokens alone are not a reliable uniqueness strategy.

Keep sequence numbers consistent

Each rule has its own sequence counter. Markio allocates counter ranges together so simultaneous runs of that rule do not receive overlapping sequence numbers.

Include the sequence token in the pattern if you rely on it for uniqueness. A counter does not resolve every possible collision with imported codes, another rule, or an existing catalog value. Review audit findings and coordinate rules across your team.

Numbering rules can also have a ceiling. For a licensed GS1 range, check the prefix, available capacity, and identifier format before issuing codes.

Fill missing SKUs without replacing everything

  1. Audit the catalog. Separate variants with no SKU from variants sharing an existing SKU.
  2. Select the products to update. Narrow by vendor, product type, tag, or collection.
  3. Generate missing values. The fill-missing workflow skips fields that already contain a code.
  4. Review duplicates separately. Decide which variant should keep an identifier before changing others. Check any warehouse or supplier systems that use it.
  5. Verify a sample. Check the resulting values in Shopify and in the connected workflows that depend on them.

Bulk generation processes up to 500 variants per run; repeat it to continue. Markio records writes in the activity log. Pro bulk fixes include a preview and conflict-aware undo, but a catalog undo does not update printed labels or external systems.

Assign codes to new products

Automatic assignment is off by default. Choose a rule for new products, or enable the separate option to fill missing codes when products are edited. Use a bulk-generation run to fill existing gaps without waiting for edits. Placeholder replacement is a separate setting; enable it only if values such as 0 or N/A are placeholders in your store.

Test the rule on representative variants before enabling it, and rerun the audit after catalog imports or changes to your naming scheme.

Give missing SKUs a consistent format

Markio is coming soon to the Shopify App Store.

Barcode and SKU generation are free, with no total generation quota. Create a rule, inspect the preview, and fill missing codes in batches.