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
DwParts online car-parts store

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.

Homepage: products on sale.

Homepage: 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.

Searching for parts by OE number.

Store and filters

The store page offers filters and convenient browsing of the whole catalogue.

The store page with filters.

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.

The product page with price history and an Omnibus-compliant price.

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.

The cart with a coupon field and availability control.

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.

Stripe payments with support for many methods and currencies.

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.