Make, model, year and engine parts finder for PrestaShop 8.2 and 9.x on any theme: an indexable parts page for every vehicle over the whole catalog, fit badges on product cards, a fit check and vehicle table on the product page, My Garage, a cart warning, the vehicle on the order, a demand report and CSV import with preview. No overrides.
Tested on 9.2.0 & 8.2.8Updated Nov 2, 2026Version 1.0.0Compatible with PrestaShop 8.2 – 9.x No core file edits
Built forPrestaShop
Shoppers choose their vehicle once1 of 8
What it does
Make, model, year and engine parts finder for PrestaShop 8.2 and 9.x on any theme: an indexable parts page for every vehicle over the whole catalog, fit badges on product cards, a fit check and vehicle table on the product page, My Garage, a cart warning, the vehicle on the order, a demand report and CSV import with preview. No overrides.
Features
For your shoppers
Dependent selects for make, model, year and engine, on the home page, in the left column or in a vehicle bar
A parts page for every vehicle, over the whole catalog, in your theme's product list, with category and brand filters
Fits your vehicle, Check the engine, Universal fit or May not fit on every product card
A fit check near the price and a Vehicle fitment tab with years, engines and notes
My Garage: in the browser for guests, in the account for customers
A clear warning in the cart when a part is not listed for their vehicle
For you
CSV import with a preview of every row before anything is written, Merge or Replace, an error report, and an export that imports back unchanged
A demand report: the most searched vehicles, and the vehicles shoppers want and you have no part for
The customer's vehicle on the order page, with the lines not listed for it
A Vehicles screen with edit and merge, and a panel on the product page
Found by search engines
/parts/corvan/lumo/2018: each page has its own title, description, canonical address and breadcrumb
Makes, models and years go into the sitemap of the Google sitemap module
Empty and filtered pages stay out of the index
Built for PrestaShop 8.2 and 9
Tested on Classic and Hummingbird, classic checkout and the 9.2 one-page checkout
Indexed tables: tested with 100,000 fitment rows, storefront queries under 40 ms on a development machine
No overrides, no core changes, no external services, page cache friendly
Next to our Axle theme: no second finder, one-click copy of its vehicles
Sell parts the way drivers shop: by vehicle. Shoppers choose their vehicle once and every page answers the question that stops a parts sale: will it fit?
What you get
Download & installOne module .zip for PrestaShop 8.2 and 9.x, installed in Modules > Module Manager > Upload a module. Download it from My licenses right after payment.
12 months of updates & supportNew versions and help for 12 months (24 or 36 months at checkout). After that the module keeps working; renew anytime at 50%.
License for your storeOne production domain with all its subdomains; staging and local development hosts are free. How licensing works
30-day refundFull refund within 30 days of your first purchase, no reason needed. Refund policy
Tested buildsPrestaShop 8.2 – 9.x. Tested on PrestaShop 9.2.0 and PrestaShop 8.2.8.
Documentation & supportFull guide (Installation, Configuration, Usage, FAQ) on this page. Tickets from your account, first reply within 1 business day.
Compatibility
Vehicle Fitment works with PrestaShop 8.2 – 9.x.
We list the builds we install and test on. “Tested” means the test plan ran on that build; “Supported” means the build is inside the supported range.
Compatibility
Version
Range
Runs on
Status
PrestaShop 9
9.0 – 9.2
PHP 8.1 – 8.4
Tested on 9.2.0
PrestaShop 8.2
8.2.0 – 8.2.x
PHP 7.2.5 – 8.1
Tested on 8.2.8
1.0.0
Nov 2, 2026
Latest
First release for PrestaShop 8.2.x and 9.x, one code base.
Finder: dependent selects for make, model, year and engine (or year first) on the home page, in the left column, in the vehicle bar and through a widget.
Parts pages: all makes, then a page for every make, model, year and engine, with the theme's product list, category and brand filters, title, description, canonical address, breadcrumb and sitemap entries.
Fit badges on product cards, fit check and Vehicle fitment tab on the product page.
My Garage: browser for guests, account for customers.
Cart warning for parts not listed for the chosen vehicle; the vehicle stays with the order and shows on the order page.
Demand report: most searched vehicles, and searches without parts.
CSV import with preview, Merge or Replace, error report, export that imports back unchanged. Same columns as the WooCommerce and OpenCart editions and the Axle theme.
Vehicles screen with edit and merge, panel on the product page.
Next to the Axle theme: no second finder, one-click copy of its vehicles.
How do I install the module?
Upload. Modules > Module Manager > Upload a module: drop the .zip from My licenses. One package for PrestaShop 8.2 and 9.x.
Configure. Click Configure. Settings follow the shop context, so in a multistore you set them for all shops or per shop.
Enter the license key. Paste the key from My licenses in the License panel and save. You have 14 days to do it; local and staging addresses are included.
PrestaShop 8.2 – 9.x. Tested on PrestaShop 9.2.0 and PrestaShop 8.2.8. The Compatibility tab lists every version range.
Do the modules use overrides?
No. They work through PrestaShop hooks, widgets and the core product customization system. Nothing is written to /override and no core file is changed, so PrestaShop updates and other modules keep working.
Which themes do they work with?
They are tested on Classic and Hummingbird, the two themes PrestaShop ships. Themes based on them work; a theme that removes the standard product page containers may need a small CSS adjustment, and support helps with that.
Do they work with multistore?
Yes. Settings follow the shop context, like PrestaShop's own modules. A license covers one production domain with its subdomains, so shops on other domains need a license each.
What does the license cover?
One production store domain with every subdomain (www, shop., staging.), plus local development hosts such as localhost, *.local and *.test. A store on another domain needs its own license; a second-store license is 40% off. You have 14 days after installing to enter the key. 12 months of updates and support are included; after that the module keeps working and renewals are 50% off. How licensing works
Can I get a refund?
Yes. Ask for a full refund within 30 days of your first purchase, no reason needed: open a ticket or write to [email protected] with your order number. The money goes back to the card or bank account you paid with within 5 business days of approval. Refund policy
How do I get help?
Open a ticket from your account, so your license details are attached. We answer Monday to Friday: bug reports within 1 business day, how-to questions within 2. Support policy. Not a customer yet? Ask a pre-sales question.
Shoppers choose their vehicle once and see what fits: a make, model, year and engine finder, a parts page for every vehicle, fit badges and a garage. It works on any theme, on PrestaShop 8.2 and 9.x.
Finder: dependent selects for make, model, year and engine, or year first. On the home page, in the left column, in the vehicle bar, or anywhere with a widget
Parts pages: a page for every make, model, year and engine at /parts/ford/focus/2018, with the product list of your theme, category and brand filters, over the whole catalog
Made for search engines: each page has its own title, description, canonical address and breadcrumb, and goes into the Google sitemap module's file. Empty and filtered pages stay out of the index
Fit badges: Fits your vehicle, Check the engine, Universal fit or May not fit on every product card
Product page: a fit check near the price and a Vehicle fitment tab with years, engines and notes
My Garage: in the browser for guests, in the account for customers, up to 10 vehicles
Cart warning: a clear note when a part is not listed for the chosen vehicle
Vehicle on the order: your team sees which vehicle the customer chose, and which lines are not listed for it
Demand report: the most searched vehicles, and the vehicles shoppers look for that you have no part for
CSV import: every row is checked in a preview before anything is written; Merge or Replace; an error report with row numbers; an export that imports back unchanged
Manual editing: a Vehicles screen with edit and merge, and a panel on the product page
Fast with large lists: indexed tables instead of features. Tested with 100,000 fitment rows and 12,600 vehicles: the selects and the parts query took under 40 ms on a development machine
Works next to the Axle theme: Axle keeps its finder, this module adds the parts pages, and one button copies Axle's vehicles
Clean: no overrides, no core changes, no external services. Pages stay cacheable because the chosen vehicle lives in the browser
The module does not include a vehicle database. You list the vehicles your parts fit, so the list stays short and correct. Fitment is what you enter: check your data.
FinderParts page
Installation
Requirements
PrestaShop 8.2.0 to 9.x (tested on 8.2.8 and 9.2.0, on the Classic and Hummingbird themes, with the classic checkout and the one-page checkout of 9.2)
PHP 7.2.5 to 8.5, as your PrestaShop version allows
Friendly URLs on for the short addresses (Shop Parameters > Traffic & SEO). Without them the parts pages work with a longer address
Install
Go to Modules > Module Manager > Upload a module and choose kvvehiclefitment-1.0.0.zip.
Open Catalog > Parts fitment > Settings and enter your licence key. The module runs for 14 days without a key.
Add your data, see Import and export in Usage. The finder appears as soon as one fitment row exists.
In the Google sitemap module, generate the sitemap again to add the parts pages.
The licence
The key is checked against our licence server from the back office only, at most once a day. Your customers' data is never sent. When a licence is no longer valid, the storefront features stop and the parts pages answer 404; your vehicles, fitment rows and orders stay.
Update
Upload the new zip the same way. Vehicles, fitment and settings stay. Back office pages repair their tables and hooks when they open.
Uninstall
Uninstall in the Module Manager deletes all vehicles, fitment rows, garages, the demand report and the settings. Export a CSV first if you want to keep them. Products, orders and customers are not touched.
Configuration
Catalog > Parts fitment > Settings, or Configure in the Module Manager.
Setting
What it does
Default
Order of the selects
Make, model, year, engine, or year first
Make first
Word for what shoppers drive
vehicle, car, bike, tractor. Used in the storefront texts
vehicle
Address of the parts pages
The first word after your domain. Changing it changes the address of every parts page, so set it before search engines find them
parts
Finder on the home page
First block of the home page
On
Finder in the left column
On pages with a left column
On
Vehicle bar above the page content
The chosen vehicle, All parts that fit, Change
On
Fit badges on product cards
Works with any theme that marks its cards with data-id-product, as Classic and Hummingbird do
On
Fit check on the product page
Near the add to cart button
On
Vehicle fitment tab on the product page
Years, engines, notes
On
Show universal parts on the parts pages
After the parts that fit
On
Warn in the cart
When a part is not listed for the chosen vehicle
On
Keep the chosen vehicle with the order
Shown on the order page in the back office
On
Let search engines index the parts pages
Pages without parts and filtered pages stay noindex in any case
On
With the Axle theme
Keep Axle's finder and add the parts pages, or show this module's finder too
Keep Axle's
Moving the finder
The blocks are normal hooks: use Design > Positions to move them, or the {widget name='kvvehiclefitment'} tag in a template.
Permissions
Employees need Parts fitment rights in Advanced Parameters > Team > Permissions. With View only they can read every screen; saving, deleting and importing are refused.
Multistore
Fitment and vehicles are shared by all shops. The parts pages list only the products of the current shop. Settings can differ per shop.
Personal data
The garage of a customer holds the chosen vehicles. It is included in the official GDPR module's export and removed with the customer. The demand report holds no personal data.
Usage
Import and export
Catalog > Parts fitment > Import and export writes fitment in bulk: one row per product and vehicle.
Column
Required
Notes
sku
one product column
The product or combination reference. A combination reference counts for its product. reference, part_number and mpn work too
product_slug, product_id
one product column
Used when sku is empty. product_id also chooses between products that share a reference
year
yes (or year_from + year_to)
2018, 2015-2020, or 2019-present for a model still built
make, model
yes
submodel
no
Added to the model name
engine
no
Empty means all engines of that model
vehicle
instead of the four above
One cell: Make · Model · Engine · Years
notes
no
Shown for that vehicle, like Front axle
universal
no
yes, y, true, 1 or x marks a part that fits every vehicle
The columns are the same as in Vehicle Fitment for WooCommerce and OpenCart and in the Axle theme, so a file from there imports here. Products are matched by reference first, then friendly URL.
Choose the file and click Upload and preview. Every row is checked; nothing is written yet.
The preview shows the rows that are ready, the rows with a problem, the new vehicles and the new fitment rows. Download the full error report gives every problem with its row number.
Choose Merge to add, or Replace so that each product in the file keeps only the vehicles of the file. A product with a skipped row keeps what it has, so a typing mistake cannot empty it.
Click Import. It runs in small steps while the page is open. If the page closes, open it again and click Continue. The same file imported twice changes nothing.
Export fitment CSV downloads every row in the same columns. It imports back unchanged, so the usual way to make large changes is export, edit, import with Replace.
Preview of a CSV file
Vehicles
Vehicles lists every vehicle with its number of parts. Add one, edit it, or delete it with its fitment rows. Merge moves the rows of a duplicate to another vehicle (enter the id of the one that stays). Changing a name changes the address of its parts pages.
A vehicle without parts is not offered to shoppers.
On a product
Open a product, tab Modules, and choose Vehicle Fitment. Add vehicles one by one, remove them, or mark the part as a universal fit with a note for all vehicles.
Panel on the product page
What shoppers see
Finder: each select opens when the one before it is chosen. Make and model are enough to search, year and engine narrow it down
Parts page: the parts that fit first, then universal parts. Filters by category and brand, the sort list and the pages of your theme
Badges: Fits your vehicle; Check the engine when only some engines fit and no engine was chosen; Universal fit; May not fit when the part has fitment for other vehicles. A part without fitment data gets no badge
Vehicle bar: the chosen vehicle, a link to all its parts, and Change. On a category page the link goes to the parts of that category
Product page: the fit check and the Vehicle fitment tab
My garage: guests keep their vehicles in the browser. After signing in they move to the account and come back on any device. Customers manage them under Your account > My garage
Fit check
Demand report
Overview counts every vehicle shoppers choose. Most searched vehicles shows where your traffic is. Searched, no parts to sell lists the vehicles shoppers want and you have no active part for: that is your buying list. It holds vehicles and counts only, no customer data.
Vehicle on the order
The chosen vehicle is stored with the order. The order page in the back office shows it in Customer vehicle and names the lines that are not listed for it. Useful when a customer asks for a return.
With the Axle theme
When Axle is the active theme, its own finder, badges and Fitment tab stay on and this module adds no second one. What you get on top: the parts pages over the whole catalog, the demand report and the vehicle on the order.
Under Overview, Copy vehicles from Axle reads the vehicles of Axle's product feature into this module. Existing rows stay, so run it again after you change vehicles in Axle. To show this module's finder as well, change With the Axle theme in Settings.
Add the finder anywhere
{widget name='kvvehiclefitment'}
Colours follow the primary colour of the theme. To change them, override the --kvvf- CSS variables, like --kvvf-accent, in your theme.
FAQ
Is a vehicle database included?
No. You import the vehicles your parts fit, so the list stays short and correct. The module does not guarantee fitment: it shows what you enter.
Does it work on my theme?
The finder, the vehicle bar, the fit check, the tab and the parts pages use standard hooks and the product list of your theme. Tested on Classic and Hummingbird. Badges need the data-id-product attribute on product cards, which comes from the standard templates.
Do I need the Axle theme?
No. With Axle you do not need a second finder, see Usage.
Does the filter work on normal category pages?
Category pages keep showing all products with badges, and the vehicle bar links to the parts of that category that fit. The filtered list is the parts page. The faceted search module is not changed.
Does a part need one row per year?
No. One row holds a year range. 2019-present grows by itself each new year.
What does Check the engine mean?
The part fits some engines of this vehicle and the shopper did not choose an engine. The product page names those engines.
Why does my vehicle not appear in the finder?
Only vehicles with at least one fitment row are offered.
Can I use it for bikes or machines?
Yes. Change the word under Settings. The levels stay make, model, year and engine.
How many vehicles can it take?
Tested with 100,000 fitment rows and 12,600 vehicles on PrestaShop 9.2.0: the import took about a minute on a development machine and storefront queries stayed under 40 ms. Files of several million rows are not tested.
Does it work with a page cache?
Yes. The pages are the same for everyone. The chosen vehicle lives in the browser and badges load by script. Only the order keeps the vehicle, through the PrestaShop cookie set when the shopper chooses it.
Do search engines see every vehicle page?
Every make, model and year with parts is in the sitemap of the Google sitemap module, up to 50,000 addresses. Engine pages can be indexed but are not in the sitemap.
Can a shopper with JavaScript off use it?
The Browse all makes link and the parts pages work without scripts. The selects, badges and fit check need JavaScript.
Does it send data anywhere?
No, apart from the licence check from the back office.
The department store theme for PrestaShop 8.2 and 9.x: colour-coded departments, a department list beside the hero slider with two side promos, a big search with a department picker, tabbed product grids, a 2 + 1 + 2 offer grid, deals of the day with real countdowns, a department showcase, a promotions band and a three-column product page with a sticky buy box. Four styles (Meridian, Harbor, Citrus, Night), every colour editable. A child theme of Classic, no core changes.
Stop AI crawlers, scrapers, vulnerability scanners and unwanted countries before PrestaShop 8.2 or 9.x builds a page. Googlebot and Bingbot are verified by DNS and always allowed; 50+ bots get one switch each; country rules use free GeoIP databases and can close only the checkout; IP and network lists, rate limits for search, filters and forms, honeypots and the add to cart flood fix; a one-second challenge instead of a captcha; learning mode, dashboard, log, IP tester and Cloudflare export. Two hooks, no overrides.
Import and update products from supplier CSV, XML and JSON feeds in PrestaShop 8.2 or 9.x on a schedule: URL, FTP, SFTP or upload; field mapping with real sample values; match by reference, EAN-13, supplier reference or MPN; markup by price band and category with .99 rounding; a price guard that holds back big drops and below-cost prices; combinations from feed rows; stock-only syncs; products missing for N runs set to stock 0 with a safety limit; a dry-run preview with old and new values, run history with a row log and undo. No overrides, no storefront hooks.