NEXSUM_LABS
  1. Home
  2. Work
  3. An apparel brand cleaned up a 300-variant catalog that checkout kept mispricing
Book a call

[ Case study ]

ApparelWix StoresCatalog V3Wix PaymentsInventory sync

An apparel brand cleaned up a 300-variant catalog that checkout kept mispricing

Variants priced wrong at checkout intermittently — a size-XL sometimes carried a different product's price. The catalog had been imported twice by two tools, and nobody could say which record was authoritative.

CLIENT a workwear apparel brand — FOCUS Establish one source of truth

Wix Ecommerce DevelopmentEcommerceWix Ecommerce DevelopmentApparelRepresentative example
Client
a workwear apparel brand
Industry
Apparel
Engagement
5 weeks — commerce lead + engineer
Service
Ecommerce / Wix Ecommerce Development
Headline outcome
Mispriced-checkout incidents per month, three months post-fix versus three months before: 14 → 0, read from Order audit against the rate card

Representative examplesEvery case study in this library is an illustrative composite of the kind of engagement we deliver — written to show our method and standards, not to name clients.

Where they started

The brand makes workwear that sells year-round to trade customers and weekend buyers alike, with daily paid traffic feeding a catalog of roughly 300 size-and-color variants. Catalog management sat with one part-time merchandiser, who also handled imagery and copy. Stock levels lived in a warehouse spreadsheet that synced into the store on its own schedule. The store had grown by accretion — two catalog imports from two different tools over the years — and pricing truth had quietly become a matter of guesswork.

What it was costing

Variants priced wrong at checkout intermittently — a size-XL sometimes carried a different product's price. The catalog had been imported twice by two tools, and nobody could say which record was authoritative.

What they could see

  • A size-XL would occasionally price itself as a different product entirely — the wrong rate card applied at checkout, never on the product page.
  • The same hoodie existed as two catalog records from two imports, and edits to one did nothing for the other.
  • Refund requests arrived citing prices that matched no current rate card, and nobody could reconstruct where the figure came from.
  • The merchandiser avoided touching variants at all, because a cleanup attempt the prior spring had visibly broken prices for an afternoon.

The constraints we worked inside

  • The brand ran paid traffic daily; prices could not visibly wobble during the fix.
  • Inventory synced from a warehouse spreadsheet; the sync had to keep working.
  • One merchandiser managed the catalog part-time.

What had been tried before

A spot-check routine: every Monday the merchandiser opened the twenty best sellers and eyeballed variant prices against the rate card.
The mispricing was intermittent and hit long-tail variants; twenty products sampled weekly could run clean for a month while a size-XL sold at the wrong price twice.
One of the two import tools was run again in reverse, meant to deduplicate records by matching product names.
Name matching merged lookalikes that weren't duplicates — two products sharing a title but different fits — creating new conflicts in the very records it was meant to clean.

What we proposed

We proposed consolidating both imports into a single Catalog V3 structure before touching anything else: reconcile the two record sets, designate one authoritative source per product, encode variant pricing rules once, and retire the orphaned import. Only then would product templates be rebuilt on the clean model, so checkout pricing had one path to follow instead of two competing ones. Because paid traffic ran daily, the whole job would happen behind the live store with a priced test matrix per product class — no phase where shoppers could see a price move.

Just as important is what we ruled out, and why:

  • Rebuilding the catalog from scratch on a fresh storePast orders, refund history, and the inventory sync all referenced existing records; a clean rebuild would orphan the very data the brand needed for accounting and repeat-purchase marketing.
  • An automated deduplication app purchased off the shelfTheir duplicates differed in more than name — conflicting images, split stock histories — and any tool merging automatically would have guessed on exactly the records where guessing was dangerous.

How the work ran

01Establish one source of truth

The duplicated catalog was reconciled into a single Catalog V3 structure with variant rules encoded once, and the orphaned import was retired.

02Rebuild product templates around the model

Product pages moved onto one template driven by the cleaned structure, so pricing logic had one path instead of two.

03Prove it with a test matrix

Every size-color combination class went through a priced test order before relaunch — the intermittent mispricing was reproduced, fixed, and re-tested.

Delivered by the commerce lead + engineer over 5 weeks, with working increments reviewed with the client every week.

The stack, and the reasoning

Wix Stores
The storefront and checkout were already sound; the defect lived in catalog data, so we fixed the model rather than migrating a working store for optics.
Catalog V3
It encodes variant rules once per product instead of per record, which directly removes the two-paths problem that made pricing nondeterministic.
Wix Payments
Refunds for the mispricing era had to reverse cleanly; keeping the existing gateway meant refund history, chargebacks, and payouts stayed in one ledger.
Inventory sync
The warehouse spreadsheet is how stock truth actually arrives, so the sync was re-pointed at the consolidated records rather than replaced with something the merchandiser can't see.

What went wrong

Obstacle

Roughly forty records from the orphaned import had already been purchased — order history and accounting pointed at records we planned to delete.

Handled: Those records were kept as read-only archive entries with redirects to their canonical replacements, so invoices and analytics stayed coherent while the storefront showed one product.

Obstacle

The intermittent mispricing resisted reproduction for ten days; it finally appeared when a test order followed a stock sync that raced an edit.

Handled: We reproduced it deliberately by scripting a sync-edit-checkout sequence, confirmed the fix killed it, and added that exact sequence to the standing test matrix.

How we worked together

Cadence
Monday and Thursday 25-minute calls with the merchandiser — mornings, before paid campaigns peaked — with the test log shared and live.
Client side
The part-time merchandiser owned catalog truth: she confirmed canonical records, judged lookalike pairs, and approved every template before it went live.
Decisions
Ambiguous duplicate pairs got a same-day decision from her by email; anything touching live pricing waited for her explicit go.
They provided
The warehouse spreadsheet and its sync credentials, the rate card, refund correspondence for the mispricing era, and two hours a week of her time.

What changed

The headline: mispriced-checkout incidents per month, three months post-fix versus three months before14 → 0, read from Order audit against the rate card. A second check: price-related refund requests since the fix at 0.

The merchandiser's relationship with the catalog changed first: she edits variants now, because the model makes wrong entries hard rather than consequences mysterious. Monday spot-checks are gone, replaced by an audit report she reads in two minutes. Refund correspondence stopped carrying the phrase nobody could answer — where did this price come from — because every charge now traces to one record and one rule. Paid traffic feels safer to scale, since a mispriced checkout can no longer quietly tax the spend.

The result was read from Order audit against the rate card against the pre-engagement baseline over the stated window, with a guardrail check on price-related refund requests since the fix. Where platform-reported numbers and business outcomes differ, this record says which layer it is quoting.

What they own now

  • The consolidated Catalog V3 with a written naming standard for future product additions.
  • A documented reconciliation of both old imports, marking every archived record and its canonical replacement.
  • The priced test matrix as a repeatable checklist for any catalog or pricing change.
  • The inventory sync's field mapping, documented so spreadsheet changes never happen silently.

What we would do differently

We would have diffed the two catalog imports with a script on day one — the manual spot-checks took longer than the script would have.

EcommerceWix Ecommerce DevelopmentApparelWix Stores

Next case study

A 40-SKU home goods retailer replatformed to Shopify without a launch-week outage