strategy
A winner per repair, not a guess
Every supplier offer for the same device, repair and quality tier is compared on live cost. Your strategy decides which one becomes the price: cheapest, most expensive, or closest to the average.
Live parts pricing for repair shops
RepairPricer follows your suppliers' catalogs, picks the winning part for every device and repair, then applies your margin, VAT and rounding. Paste one snippet and your customers get a price they can book — no spreadsheet, no stale price list.
A real widget, running on sample data. Book a repair — the flow is the one your customers get.
Catalog figures are from the most recent verified sync. G-SP and Spares run in the production crawl today; the remaining adapters are built and waiting on supplier access.
How it works
The hard part of repair pricing is not arithmetic — it is knowing what a part costs today, at which supplier, in which quality. That is the part we own.
Each supplier — REST API, GraphQL or catalog crawl — is normalized behind one contract, so a part number, its stock and its price mean the same thing whichever source it came from. The crawl runs on a schedule; nobody re-types a price list.
G-SP · Spares · Foneday · Mobileparts · MobileSentrix
Offers are matched into slots — a device, a repair and a quality tier — and the winner is the offer your strategy picks: cheapest, most expensive, or closest to the average. Anything out of stock is never quoted.
iPhone 14 · Screen · Refurbished → 4 offers → 1 winner
Winning cost runs through your pipeline — margin (percent or fixed, with floors and ceilings), VAT, then rounding to a number that looks like a price. The result is what your customer sees, in your currency and language.
cost → margin → VAT → rounded shelf price
The portal, in miniature
These are the same settings a subscriber edits in the portal. Move one and watch the widget on the right — appearance, strategy, margin, VAT, rounding and catalog filters all reach the customer immediately.
Auto follows the visitor's own light/dark setting on the shop's site.
Switch off what you do not service. Excluded brands disappear from the widget and can never be quoted or booked.
The platform's tiers are fixed so suppliers stay comparable — what your customers read is yours to name, per language.
What you get
Everything a repair shop normally does by hand — comparing suppliers, deciding a margin, keeping the website honest — turned into settings you change once.
strategy
Every supplier offer for the same device, repair and quality tier is compared on live cost. Your strategy decides which one becomes the price: cheapest, most expensive, or closest to the average.
pricing pipeline
Percentage or fixed margin, with an optional floor and ceiling. Then VAT, then rounding — up, down or nearest, to the step you choose. Prices land on numbers that look deliberate.
tier names
The platform keeps tiers fixed so suppliers stay comparable. What the customer reads — Original, Renoverad, Kompatibel — is yours to name, in Swedish and English.
filter rules
Exclude a brand, a device type, a single model or a supplier. Filtered items vanish from the widget entirely; they cannot be quoted, and they cannot be booked.
verification
Each price carries its verification status. Verified prices have been checked as defensible; guide prices are formula-derived; anything unverifiable is labelled rather than dressed up.
bookings
A customer books at the tier they picked. The server re-derives the quote, stores it against your team only, and POSTs it to your endpoint signed with your secret.
Install
No plugin to maintain, no price file to upload. The widget asks the server what your shop charges, and the server answers with display-safe data only.
<script src="https://app.repairpricer.se/widget.js"
data-key="wk_7f3c1a94d2e05b6819af4c3d"></script>POST widget_resolve
{
"widgetKey": "wk_7f3c1a94d2e05b6819af4c3d",
"action": "repairs",
"manufacturerName": "Apple",
"modelName": "iPhone 14"
}
200 OK
{
"ok": true,
"manufacturerName": "Apple",
"modelName": "iPhone 14",
"repairs": [
{
"repairName": "Skärmbyte",
"tierKey": "official",
"tierName": "Original",
"priceMinor": 386500,
"currency": "SEK",
"verificationStatus": "verified"
}
]
}POST https://mobilfix.se/hooks/repairpricer
X-RepairPricer-Signature: sha256=9f86d081884c7d65…
{
"bookingId": "68f2c1a94d2e05b6819a",
"createdAt": "2026-08-13T09:41:22Z",
"customer": { "name": "Sara L.", "email": "sara@…", "phone": null },
"device": { "manufacturer": "Apple", "model": "iPhone 14" },
"repair": { "name": "Skärmbyte", "tierKey": "official" },
"quotedPriceMinor": 386500,
"currency": "SEK",
"note": "Sprucken skärm, fungerar annars"
}WordPress, Wix, Shopify or hand-written HTML. The snippet carries your public widget key — that key is an identifier, never a credential.
The widget renders in a shadow root, so your site's CSS cannot break it and its CSS cannot touch your site. No framework runtime rides along.
Origins you allowlist can embed the widget. Anywhere else gets a polite refusal — a copied snippet does not become someone else's price list.
A customer picks a quality tier and books. The price is re-derived server-side and POSTed to your endpoint, signed with your secret.
The data boundary
The widget runs on a public page with no session, so it is built as though the page is hostile. The server resolves your key, applies your config and returns display-safe fields only — the sourcing side of the business stays yours.
Plans
Your customers can check a price as often as they like. Tell us how many sites you run and we will quote the subscription — no card needed to see the number.
One workshop, one website
Several locations or brands
CRMs and booking systems
Questions
From supplier catalogs. Each supplier is wrapped in the same contract — REST, GraphQL or a crawl — and synced on a schedule (daily today). Offers are matched into device–repair–tier slots, and the winner for each slot is what your margin is applied to.
The pricing engine, the portal settings and the widget backend are live; the embeddable front end is rolling out with our first shops. You can configure everything now — appearance, key, allowed domains — and the snippet starts serving the moment your account is switched on.
It is not quoted. The winner is chosen among in-stock offers, and a slot with nothing in stock simply does not appear in the widget. A customer can never book a repair you cannot source that day.
A guide price is derived by formula from the winning part cost plus shipping and labour. A verified price has additionally been checked as defensible against the market. Anything that could not be established is labelled unconfirmed rather than shown as fact.
Yes. Platform mode shows prices exactly as RepairPricer computes them; custom mode re-runs the pipeline with your margin type and value, your floors and ceilings, your VAT rate and your rounding rule.
The widget speaks Swedish and English, and renders money in your display currency — SEK by default. Tier names carry both languages, so the same tier reads correctly to either customer.
A booking row scoped to your team, plus an immediate POST to your endpoint with the customer, the device, the repair, the tier and the price the server derived — signed with your secret so you can verify it came from us.
No. Cost prices, supplier identity and your margin never leave the server. The widget receives display fields only, and every read is scoped to your own team.
Tell us which suppliers you buy from and which repairs you sell. We will show you what your catalog looks like priced — with your margin, on your domain.