Skip to content
Y
YAS.SH
Case Study

ShopFlex Commerce: Taming 10,000 Product Links With a UTM Standard

How an e-commerce team with 10k products standardized UTM hygiene, cut link chaos, and gained print QR analytics with yas.sh.

yas-team4 min readecommerceutmqr
ShopFlex Commerce: Taming 10,000 Product Links With a UTM Standard
Featured imageShopFlex Commerce: Taming 10,000 Product Links With a UTM Standard

The company

ShopFlex Commerce runs a multi-brand online store with over 10,000 active SKUs across three regions. Marketing operates from a central team with country pods, and everything — email, social, influencer, print, packaging — carries links back to product pages.

The problem

Three chronic issues were costing the team real money:

1. UTM chaos. Every pod built links by hand. The analytics account contained Newsletter, newsletter, NL, email-news, and newsletter-july as separate sources for the same channel. GA4 reports were unreadable; channel comparison was guesswork.

2. Broken print QR. Packaging carried QR codes generated at 256px from a free tool. On textured boxes, a meaningful share failed to scan — support tickets mentioned "broken codes" weekly, and a reprint of one campaign cost €4,800.

3. No attribution for print. Even when scans worked, there was no data: no scan counts, no device mix, no way to compare print against email or social.

The requirements

The team wrote down what a fix had to satisfy:

  • One taxonomy enforced by tooling, not by a document.
  • Batch creation — thousands of links per product feed, automated.
  • Print-grade QR with formats suitable for packaging and large-format POS.
  • One analytics surface for digital and print, bot-filtered, exportable.
  • No per-seat costs that would break the free-trial of the tool inside the team.

The solution

ShopFlex adopted yas.sh in two weeks, in three phases.

Phase 1 — taxonomy + builder (week 1). The marketing ops lead defined the UTM standard (source = platform lowercase, medium = fixed list, campaign = {year}{quarter}-{initiative}) and made the campaign manager the only sanctioned way to build campaign links. Enforcement was instant: the builder can't produce a mixed-case source or a missing parameter.

Phase 2 — API batch creation (week 2). The engineering pod wrote a nightly job that reads the product feed, builds UTM-tagged destinations per region, and calls the links API in batches:

# nightly job — one call per SKU, 60/min rate limit respected
for sku in $(cat feed.txt); do
  curl -X POST https://yas.sh/api/v1/links \
    -H "Authorization: Bearer yas_live_..." -H "Content-Type: application/json" \
    -d "{\"originalUrl\":\"https://shopflex.example/p/$sku?utm_source=$REGION&utm_medium=email&utm_campaign=$CAMPAIGN\",\"customAlias\":\"$sku\"}"
  sleep 1
done

The job writes each returned short link back into the PIM, so every downstream system (emails, ads, support templates) picks it up automatically.

Phase 3 — print QR at scale (week 3). Packaging artwork generation switched to 1024px PNGs for small formats and SVG for large-format POS:

curl "https://yas.sh/api/v1/qr?url=https://go.shopflex.com/$sku&size=1024&format=png" -o print/$sku.png

Each printed code points at a dynamic short link, so campaign retargeting never requires a reprint.

Results after 90 days

Metric Before After
Properly tagged campaign links ~15% 99.8%
GA4 source rows for email channel 5+ 1
Print QR scan-failure tickets weekly 0 in 90 days
Print attribution data none full series + devices
Link creation for new SKU ~4 min manual 0.6s automated
Reporting cycle 3 days of cleanup 15 minutes

The channel comparison that used to be impossible became the opening slide of the monthly review: email at X clicks, social at Y, print at Z — one axis, bot-filtered, no arguments.

What the team says

"The taxonomy fight just disappeared. The builder enforces it, the API scales it, and the analytics settle it. We spent three years trying to fix UTM hygiene with a document; it took one week with a tool that does it by construction."

— Head of Marketing Operations, ShopFlex Commerce

Lessons for other teams

  1. Enforce taxonomy with tooling, not documents — a builder that can't produce bad links beats a guideline nobody reads.
  2. Print QR is an engineering problem — size, resolution, quiet zone, and dynamic targets are all decisions, not defaults.
  3. Batch APIs change workflow math — 10,000 links is a job for a script, and the rate-limited API makes the script safe.
  4. One analytics surface wins — when print and digital report to the same pipeline, channel budget debates end.

Start where ShopFlex started

The same building blocks are free: the campaign manager for taxonomy enforcement, the links API for batch creation, and the QR endpoint for print assets. The UTM taxonomy guide is the standard ShopFlex uses — copy it.

Frequently asked questions

How did ShopFlex scale link creation to thousands of SKUs?

They scripted the yas.sh API: product feeds were processed by a nightly job that created tagged links in batches, respecting rate limits, and wrote the map back to the PIM.

Did print QR codes actually scan?

Yes — after moving from 256px exports to 1024px PNGs (and SVG for large formats), scan failure complaints dropped to zero in the first month.

What was the biggest measurable win?

Campaign reporting went from ~15% of links properly tagged to 99.8%, and print/social attribution became trustworthy enough for budget decisions.

Was this helpful? Share
🍪 Cookies & privacy. yas.sh uses only essential cookies to keep you signed in and remember your preferences. We do not run third-party trackers. See our cookie policy and privacy policy.
Settings