← All work

Apex

A dealer plugin designed to offer only accessories that fit the listed vehicle

Apex set out to show dealer shoppers the accessories that fit the car, motorbike or side by side they are viewing. We kept data collection apart from matching, built per site crawlers into one fitment catalog and designed the plugin as one button on dealer pages.

Automotive & DealershipsDealer accessory matching pluginBuilt from zero

From a vehicle page the shopper picks accessories that fit that model, grouped by category.

The challenge

Fitment sat on many maker and retailer sites, each structured differently and written in free text, while dealer listing titles rarely matched it exactly.

What we did

Per site crawlers into one normalized fitment catalog, text matching kept to the same maker, and a plugin designed as one button and an iframe on dealer pages.

The outcome

The client received the architecture, schema, screen designs and working crawlers with shared data. The product did not launch, and he rated the work five stars.

What we built
Per site crawlers and one fitment catalog
What we designed
Plugin architecture, shopper and dealer screens
Matching
Text similarity, same maker only, no generative model
Status
Groundwork delivered, product not launched

The starting point

Project APEX was a new accessory product for dealers that list cars, motorbikes and side by side vehicles on their websites. Shoppers had no easy way to add fitting accessories, such as headlights or bumpers, at the moment of interest.

What had to change

Accessory data lives on many manufacturer and retailer sites, each structured differently, and fitment is written in free text that lists models, variants and model years. Dealer listing titles rarely match that text exactly, so a plain lookup fails.

What could not break

  • Accessories come only from the same maker as the vehicle
  • Dealer sites stay untouched apart from one button
  • Fitment text arrives in a different shape on every source site
  • The catalog is built to refresh daily as supplier data changes

The calls we made

We separated collecting accessory data from matching it, so each could be fixed and improved on its own.

  1. 01

    One output shape for every site

    Each site got its own crawler, but every crawler returned the same fields into one database of products, categories, models by maker and compatibility, so matching never depends on how a single site is built.

  2. 02

    Rules and text similarity, filtered by maker

    Fitment is a match between a listing title and compatibility text, kept to the same maker, so a Honda bike only sees Honda accessories. Rules and text similarity keep every match checkable by a person.

    Ruled out

    A plain lookup on listing titles, which fails when the wording differs.

  3. 03

    One button on the dealer page

    The button sends the vehicle title to our endpoint and opens an iframe, so matching, data and leads live behind the endpoint and dealer sites stay untouched apart from that button.

    Ruled out

    Changes inside each dealer's own site code.

How the system fits together

views a vehicleone buttonvehicle titlecompatibility lookupdaily crawlnormalized rowsleadDealer site shopperViewing a vehicle listingAccessory sitesMaker and retailercatalogs, free textDealer listing pageThe dealer's existingwebsitePer site crawlersScrapy, one JSON shape forallAccessory button andiframeSends the vehicle title,shows matchesFitment catalogMySQL: products, models,compatibilityMatching endpointText similarity, samemaker onlyDealer lead portalDesigned: leads withvehicle and items
PeopleOutside serviceClient's existing systemBuilt by DaticsData storeCollection and matching are separate: crawlers fill one catalog, and the dealer page only gains a button that calls the matching endpoint.

What we built

Plugin and dealer screens

The architecture for the listing page button, the matching endpoint and the accessory iframe, plus designs for the shopper's picker and a dealer portal that lists each accessory lead with the vehicle and the chosen items.

The dealer portal shows each accessory lead with the shopper, the vehicle and the chosen items.
02

Per site accessory crawlers

Scrapy crawlers for the accessory sites the client chose, each returning title, price, style number, category, availability, compatibility text and category path in one JSON shape.

03

One fitment catalog

A MySQL schema for products, category variants under parent categories such as bumpers and guards or fender flares, model names by maker and product to model compatibility.

How it works

Collect

Per site crawlers, designed to run daily, pull accessories and their compatibility text into the catalog.

Click

A shopper on a vehicle listing taps the add accessory button.

Match

The endpoint compares the vehicle title with compatibility text and keeps only the same maker's accessories.

Capture

The shopper adds or removes accessories in the iframe and submits a lead for the dealer's portal or email.

A closer look

The dealer portal design ranks manufacturers by accessory products sold over the week.
The dealer portal design ranks manufacturers by accessory products sold over the week.

What changed

The client received the plugin architecture, the fitment schema, the screen designs and working crawlers with shared accessory data. The product was not launched, and the client still rated the work five stars and recommended the team.

Under the hood

Datics role
Product built by Datics
Integration
A button and an iframe on dealer listing pages, calling a backend endpoint with the vehicle title.
Data
Accessory data crawled from the client's chosen sites into one MySQL schema, built for a daily refresh.
Boundary
Matching uses rules and text similarity on crawled compatibility text, with no generative model.

Apps and APIs

PythonReact

Also in the stack

ScrapyFlaskNLP text matchingMySQLGitLab

How it shipped

  1. Architecture and schema

    A high level architecture and a database schema for products, categories, models by maker and compatibility.

  2. Crawlers in rounds

    A crawler plan per site, with each crawler delivered and its scraped data shared with the client as it was ready.

  3. Plugin and screen designs

    The listing page button, the matching endpoint and the iframe, with designs for the shopper's picker and the dealer lead portal.

A crawler plan per site

We planned the crawlers site by site, delivered them in rounds and shared the scraped accessory data with the client as each one was ready.

The whole feature on paper first

The architecture, the database schema and the screen designs were set out before the build, so the client could review the full shopper and dealer journey.

What this unlocked

The same pattern, one normalized catalog and a single button on existing pages, is how a dealer platform can add accessory offers without rebuilding its sites.

Have a product with the same kind of constraints?

Tell us what already exists and what you want it to do. We will tell you what it takes.

Book a 30-minute Product Review