DwParts online car-parts store
A car-parts store in Nuxt. OE-number search in the hero, a separate SEO URL for every part variant (OE + SKU), Stripe payments, three languages and four currencies.
- 3
- language versions
- 4
- currencies
- SEO + GEO
- visible to AI models too
- Nuxt
- Stripe
- TypeScript
- i18n

Overview
DwParts is the company's online store for car parts. After the first version of the store, I analysed the site traffic and saw that customers most often search for parts by OE number. That's why I put the search right in the hero section. The store runs on Nuxt, and payments go through Stripe.
Our own store means no marketplace commission, so the company sells on its own terms.
The hardest part, though, wasn't the store itself. It was SEO. The company keeps several parts under the same OE number, so each variant had to get its own indexable URL. I describe that below.
Homepage
The hero leads straight to the search, because that's the most common customer path. Below it sit products on sale, extra promotions and bestsellers.
Search by OE and by car
The customer enters an OE number or picks a specific car, and the store shows the matching parts. This shortens the path to the right product, especially when someone only knows the number from the registration.
Store and filters
The store page offers filters and convenient browsing of the whole catalogue.
OE variants and SEO
The hardest element was SEO. The company keeps several parts with the same OE number in stock. For example, several identical bumpers, but each in a different condition, a different colour and from a different package, so the purchase cost of each item can differ.
If the product URL held only the OE number, all those variants would point to one link and compete for the same spot in Google. So the address is made of the OE number plus the specific variant, in the form oe-number?sku=X. The OE number captures traffic from number searches, while the sku distinguishes the physical items, so each variant gets its own indexable URL and doesn't cannibalise the others.
Every variant of the same part gets its own URL,
oe-number?sku=X, so identical bumpers don't fight for one spot in Google.
Product page
On the product card the customer sees previous prices and the lowest price from the last 30 days, in line with the Omnibus Directive.
Each part also has its own shipping, calculated by destination country, so the customer sees the real delivery cost for their location right away.
Cart
In the cart the customer enters discount coupons. A guard makes sure you can't add a part beyond the stock on hand.
Payments
Payments go through Stripe, meaning card, BLIK, Apple Pay, Google Pay and other methods, plus plain bank transfers. The store works in three languages (Polish, English, German) and four currencies (PLN, EUR, USD, GBP). A customer from the EU who provides a VAT number gets the price without the 23% tax, but only when the number is active in VIES. The store checks this automatically, so a number from outside the EU (the US or Asia, for example) won't work.
Results
- A separate SEO URL for every part variant (OE number +
sku), so variants don't cannibalise each other in Google. - OE-number search in the hero, because that's how customers search most often.
- SEO and GEO, meaning visibility in Google and in AI model answers.
- Stripe payments (card, BLIK, Apple Pay, Google Pay) and transfers, in four currencies, with shipping calculated per destination country.
- Three languages, the Omnibus Directive, and a 23% VAT deduction for EU customers whose number is active in VIES.