Product

The complete product operations stack.

Everything you need to run product data across multiple stores — without the spreadsheets, the bulk-edit panic, or the broken syncs.

14 days free. Card required. Cancel anytime.

Two halves of the same workflow.

Shopify EU2,431 SKUs

Imported into canonical catalog

Shopify US2,431 SKUs

Imported into canonical catalog

Wholesale2,431 SKUs

Imported into canonical catalog

Canonical catalog · 5,247 master products

Duplicates merged. Attributes normalized. Variants aligned.

Eight features that replace your stack.

Canonical product authority

One master record per product. Every store reads from it. No more conflicting copies.

Per-store overrides

Override any field for any store — without losing the link to the master record.

Template Engine

Reusable templates and AI prompts that generate localized titles, descriptions, and prices at scale.

Preview & diff

See exactly what will change in every store before you deploy. No more blind syncs.

Governed jobs

Every deploy is a versioned job — pending, running, succeeded, rolled back. All visible.

Version history

Every change tracked. Roll back any product, any field, to any prior version in one click.

Feed validation

GMC and Meta feeds validated against platform rules before they ever leave Commercer.

Audit trail

Who changed what, when, in which store. Complete history for compliance and debugging.

Canonical-catalog advantage

Shopify is a mirror. Spin up another whenever you want.

Because every product lives in Commercer first, replicating a store, pruning underperformers, or expanding winners is one workflow — not a manual rebuild.

Bulk Store Export

Push a full catalog (or a Catalog Intelligence cohort) to a fresh Shopify store via the bulk-operation API. Localize copy, apply pricing templates, set up smart collections — all in minutes.

Catalog Intelligence

AI scans connected-store performance and tells you which SKUs to remove (they stay in Commercer, ready to re-publish) and which winners to expand with similar variants.

Pre-built marketplace

Skip the setup. Acquire a turnkey store with active GMC, conversion tracking, and the catalog already in Commercer. Curated by us or by approved partners.

In-Place Repurpose

Past Shopify's 50k-variant threshold? Mutate existing variant slots in place — same product IDs, new title, images, options, price, SKU. Unthrottled. Archive (don't delete) unused slots so the slot bank stays renewable for next time.

Slot bank

Every over-50k store carries an inventory of variant slots that can be rewritten without touching the 1k/day creation cap. Commercer surfaces the bank, pairs it with Catalog Intelligence cohorts, and treats it as a renewable asset.

SKUs that survive every rewrite

Default schema: {org}-{canonical-id}-{v1}-{v2}-{v3}-R{rev} — e.g. ACME-P7K2X9-NAVY-L-CTN-R1. Canonical IDs are workspace-stable base32 (no collisions across agency client orgs or marketplace packs). The R-suffix increments on every rewrite, all rotations log to a permanent ledger, and a sku.rotated webhook keeps ShipStation, ShipBob and downstream systems in lock-step.

AI SKU Sanitizer

Variant values get normalized against a workspace codebook before they ever touch a SKU. "Navy Blue" → NAVY. "X-Large" → XL. "500 ml" → 500ML. "100% Cotton" → CTN. Rules cover the common cases; AI handles the long tail (fragrance notes, paint shades, multi-language supplier feeds) and proposes new codebook entries you approve once. Clean, readable, collision-free SKUs from day one.

Variant order, locked

Each canonical product carries an explicit ordered option_axes ([color, size, material]) so v1/v2/v3 in the SKU always mean the same axis. A workspace axis codebook collapses synonyms (Colour, Farbe → color). Reorders never silently shuffle slots — they bump the R-suffix, fire sku.rotated with reason: 'option_order_change', and update the ledger.

Order Sanity Check on every deploy

Before any push to Shopify, Commercer resolves canonical and per-store option order, verifies projected option1/option2/option3 mapping is stable vs the last successful deploy, and gates unstable changes behind a dedicated Variant Order banner in the diff panel. Bindings (size charts, GMC g:size/g:color, CGID fingerprints) target axis names, not v-slots — so they survive any reorder.

Size Chart Studio

Size charts that ship with the product.

Smart-create with AI, import from a supplier doc, or paste a printed chart. One structured chart, every region, every unit, theme-ready HTML.

Smart Create with AI

Describe it in one line — "women's tops, EU/US/UK, XS–XL, with bust/waist/hip in cm" — and AI drafts a complete chart from a curated reference dataset (apparel, footwear, kids, ring, hat, glove, bra). Review and accept.

Import anything

Paste HTML or CSV from a supplier, or upload a photo of a printed chart. Vision OCR extracts rows, AI normalizes column headers ("Chest (cm)" → chest_cm) and flags suspected typos and conversion errors.

Theme-ready HTML export

Self-contained snippet (inline CSS, vanilla JS, no deps) that drops into Shopify's size-chart metafield. Renders in the size-guide pop-up Dawn, Impulse, Prestige, Motion and Empire already ship with.

Live preview · Layout B (brand + dynamic region)

Buyers switch region and unit. Values reflow client-side.

BrandChestWaist
S3686 cm68 cm
M3891 cm73 cm
L4096 cm78 cm
XL42101 cm83 cm

Four layout modes ship by default: all regions side-by-side, brand + dynamic region (shown), measurements-only, and combined. Per-store defaults mean your US store opens in inches and your EU store opens in cm — no buyer toggling required.

Commerce Graph

Two layers of product identity.

Your workspace canonical ID stays private and drives your SKUs. The Commerce Graph ID (CGID) is a network-wide fingerprint — opt-in, privacy-first — that unlocks dedup, fulfillment routing, and instant quotes.

Layer 1 · Workspace canonical ID

Private. Stable. Yours.

6-char base32 (Crockford), workspace-stable, collision-free across every store and client org. Drives your SKUs, RLS, audit trail and bindings. Never exposed to other tenants.

P7K2X9 → ACME-P7K2X9-NAVY-L-CTN-R2
Layer 2 · Commerce Graph ID (CGID)

Network-wide. Optional. Earned, not assigned.

12-char base32 fingerprint shared across workspaces selling the same physical product. Computed from perceptual image hashes, normalized attributes, GTIN/MPN/ASIN, and dimensional signatures. Many workspace products → one CGID.

cg_7K2XQ9R4M1N3

Dedup at import

Pull a Shopify catalog into Commercer and AI Lint flags products with a CGID match in your existing catalogs (or — for agencies — across your other client orgs, with their consent). Side-by-side merge UI, never silent.

Fulfillment routing

A 3PL holding stock against a CGID receives orders from any workspace selling that CGID — no per-customer SKU mapping spreadsheets. Inventory pooling and cross-dock become trivial.

Automated Quotation

Click 'Get fulfillment quote' on a product. Commerce Graph queries the network and returns ranked quotes (price, lead time, MOQ, region, rating) in seconds. No RFQ email chains. Buyers free; suppliers pay per accepted quote.

Privacy + opt-in

Three workspace toggles, all default off: Match against graph (receive CGIDs and dedup hints, contribute nothing), Contribute to graph (your products' fingerprints — hashes, embeddings, normalized attributes — are added; never your prices, customers, or analytics), and Quote Marketplace (separate fulfillment-side discoverability). Image embeddings are stored, raw images are not. Purge any time.

Template Engine

One template. Every store. Localized.

Define the rule once. Commercer generates store-perfect copy at scale.

Template
{{material}} {{type}}
— {{season}} Edition
in {{language}}, {{tone}} tone
Output (per store)
  • EU · "Merino Wool Crew — Spring Edition"
  • DE · "Merino-Pullover — Frühjahrs-Edition"
  • FR · "Pull en mérinos — Édition Printemps"

Governed deploys. No blind syncs.

See every change before it ships.

Every deploy is a job. Every job has a diff, a status, and a rollback button.

Diff panel

Field-by-field changes across every store, side by side.

Job status

Live progress, success/fail per store, retries on transient errors.

Audit trail

Who, what, when, where — for every product, every change.

Diff panel · Variant Order banner
Approval required

Variant option order changed for P7K2X9 — auto-rotating SKUs.

Before
option1 = color · option2 = size
ACME-P7K2X9-NAVY-L-CTN-R1
After
option1 = size · option2 = color
ACME-P7K2X9-L-NAVY-CTN-R2

Triggers sku.rotated with reason: option_order_change. Bindings (size chart, GMC g:size, CGID) target axis names — unaffected.

How Commercer compares.

CapabilityBulk editorMulti-store appsCustom scriptsCommercer
Single source of truthPartialDIYYes
Per-store overridesLimitedDIYYes
Preview diff before deployDIYYes
Version history & rollbackDIYYes
AI-generated contentSomeDIYYes
GMC + Meta feed syncSeparate appDIYYes

Ready to run product ops the right way?

14-day free trial. Connect your stores in minutes.