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.

01

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.

02

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.

03

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.

01 — SEARCH

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.

02 — CATALOG

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.

03 — CHECKOUT

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.

04 — PAYMENTS

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.

05 — FINANCE

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.

06 — OWN BRAND

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.

01

Cracking Qliro's Checkout Auth

Problem

The docs didn't spell out request signing; the first integration returned nothing but 401s.

Approach

Reverse-engineered the scheme — Qliro Base64(SHA256(body+secret)) — probed test vs production hosts, and satisfied the merchant-reference and push-URL rules.

Result

Real production payments, verified end-to-end — plus a /api/qliro/health endpoint that reports live/test/mock status and names what's misconfigured.

02

A Compliant Part-Payment Widget With No API

Problem

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.

Approach

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).

Result

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).

03

Rim Search That Actually Fits the Car

Problem

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.

Approach

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.

Result

Exact parity — 148 fitting rims, first result identical to the incumbent. Fixed everywhere the plate is known, catalog browsing left untouched.

04

Getting Orders Into the Right Queue

Problem

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.

Approach

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.

Result

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

148/11.9k
rim-fitment results brought to exact parity with the incumbent
~50×
faster cached search — 10s → 0.2s on repeat & paged queries
94%
lighter imagery — typical 2.3MB PNG → 134KB WebP
LIVE
payments confirmed in Qliro production mode, end-to-end

// Post-launch business KPIs (conversion, AOV, revenue) layered in as they land.

Stack & Tooling

FrameworkNext.js 16 — App Router, React Server Components, standalone output
UIReact 18 + a hand-built CSS design system — no Tailwind/Bootstrap
CommerceEonTyre — catalog, vehicle lookup, order creation (server-only clients)
PaymentsQliro One — HMAC-signed REST, iframe checkout, webhooks, part-payment
ShippingFraktjakt — consignment booking for home delivery
InfraDocker (standalone) · Coolify · GitHub · ffmpeg / WebP media pipeline

Have a hard integration?

Let's build something great together

Start Your Project