Project
Däckcentrum i Helsingborg is a tyre & rim workshop running since 2004. We took a static design prototype and turned it into a production Next.js storefront wired straight into their live tyre platform's inventory, vehicle database, payments and shipping — much of it reverse-engineered against the incumbent site to reach exact parity.
The Brief
A real shop, a design mockup, and a platform that doesn't document itself. The finished site had to sell from actual live inventory, take real payments, and file orders back into the exact system their staff already use every day.
A Design, Not a Shop
The client had a beautiful static React-on-Babel mockup — but it sold nothing. It had to become a live storefront on real stock.
An Undocumented Platform
Their business runs on EonTyre, a Nordic tyre platform with sparse public docs. The integration path largely didn't exist on paper.
Exact Parity Required
Fitment, pricing and order routing had to match their existing webshop call-for-call — staff workflows and reporting couldn't change.
What We Built
A full commerce flow, driven end-to-end by live data — from a Swedish registration plate to a confirmed, correctly-filed order.
Vehicle-Aware Search
Enter a Swedish reg plate and the site resolves the car's exact tyre size and rim fitment from EonTyre's vehicle database — no manual specs.
Live Tyres, Rims & Wheels
Products stream straight from EonTyre stock across three categories, with 13 filters, a B2B/B2C VAT toggle, and per-product delivery estimates.
Tamper-Proof Checkout
Every price and stock level is re-verified server-side against live inventory at payment time. Manipulated carts are rejected with a 409.
Qliro One, Production
Invoice, part-payment, card and Trustly through Qliro's iframe checkout, with an authoritative payment webhook and a self-diagnosing health endpoint.
Part-Payment Calculator
A clickable “from X kr/month” widget with a 12/24/36-month breakdown — built from scratch, because Qliro exposes no installment API.
DC Wheels Showroom
A configurator-style showcase for the shop's own alloy range, plus tyre-hotel storage booking and rim-refurb pages with cinematic video heroes.
Hard Problems, Solved
Four integration problems where the documented path didn't exist — each solved by reverse-engineering the platform's real behaviour, then verifying the fix against ground truth.
Cracking Qliro's Checkout Auth
The docs didn't spell out request signing; the first integration returned nothing but 401s.
Reverse-engineered the scheme — Qliro Base64(SHA256(body+secret)) — probed test vs production hosts, and satisfied the merchant-reference and push-URL rules.
Real production payments, verified end-to-end — plus a /api/qliro/health endpoint that reports live/test/mock status and names what's misconfigured.
A Compliant Part-Payment Widget With No API
The client wanted an interactive “pay from X kr/month” breakdown. Qliro's own widget shows one line, and no public API returns installment plans.
Built the finance engine ourselves — annuity math for monthly cost, effective APR via an IRR solver — wrapped to meet Swedish consumer-credit law (representative example, prominent effective interest, risk warning).
A conversion feature that's also legally defensible, matching Qliro's published terms tables to the krona (10 000 kr / 36 mån → 372 kr/mån).
Rim Search That Actually Fits the Car
Searching rims by plate returned 11,912 results — every rim of that diameter — where the incumbent returned 148 that actually bolt on. The client spotted it instantly.
Captured the incumbent's own network call and found the undocumented trick: pass the plate as query with isFixedCentreBore, so EonTyre filters by the car's real bolt pattern, offset and centre bore.
Exact parity — 148 fitting rims, first result identical to the incumbent. Fixed everywhere the plate is known, catalog browsing left untouched.
Getting Orders Into the Right Queue
Web orders landed in EonTyre's “Admin Order” list; the business needed them under “Externa Ordrar” like the old site, so workflow and reporting stayed intact.
Reverse-engineered the undocumented webshop-order endpoint through its validation chain — including a parser bug where a single “å” in a name breaks the request — fixed by escaping non-ASCII to \uXXXX.
Purchases now file under Externa Ordrar, correctly tagged, Swedish characters intact — verified with controlled test orders.
Under the Hood
Performance, media and security got the same rigour as the features you can see.
Media Pipeline2.3MB → 134KB
A per-context image strategy plus video heroes transcoded from 60–164MB masters down to 1.5–4.6MB web loops.
Search Speed~10s → 0.2s cached
30-per-page pagination over EonTyre's slow catalog API, backed by a 5-minute server cache and next-page prefetch.
Security Pass13 advisories cleared
Framework upgraded to clear known advisories, baseline security headers added, and every API proxy rate-limited.
Secret Hygiene0 leaks
No API key or secret ever reaches the client bundle or git history; webhook callbacks token-authenticated; price/stock verified before any charge.
Outcomes
// Post-launch business KPIs (conversion, AOV, revenue) layered in as they land.
Stack & Tooling