Most custom auto parts start with a question about the customer’s vehicle. About a third of auto parts stores ask for it on the product page, as a year, a model or a platform, meaning a group of vehicles built on the same chassis, such as “2011–2025 heavy-duty pickup”. Shopify’s variants handle the parts you stock, such as a light bar in two lengths. A part welded, coated or printed for one vehicle after the order is different: the vehicle is an instruction for the shop. The shop also needs the coat, the mounts and any custom color code on the order line. Where each choice lives decides whether your stock counts are real and whether the order says exactly what to build.
In short: if you stock it and count it, it is a variant; if it is an instruction for the shop, it is a custom option; if a shopper would search for it on its own, it is a separate product. This guide applies that rule to the vehicle, finishes, mounts, kits and installation, and then covers pricing and conditional logic. Which parts fit which vehicle, the catalog side of fitment, is in the fitment guide. It draws on our research into how hundreds of e-commerce auto parts stores configure their custom options.
Start with how you stock and build auto parts
The catalog structure follows your operation. Most auto parts businesses are one of these, or a mix:
- Stocked parts with part numbers. Bought or made ahead and held on the shelf: a bracket for one platform, a light bar in two lengths, a remanufactured transmission.
- Built or finished to order. Traction bars, racks and panels welded or powder coated after the order, wheels built to a spec, shocks tuned for the rider’s weight, graphics printed for one bike.
- Sold alongside. Mounting kits, bulbs, fluid, installation, shipping insurance, and core charges: a refundable deposit on a remanufactured part, returned when the customer sends back their old part (the core).
Shopify has three places to put a choice, and each matches one of these:
| Where the choice lives | Use it when | What Shopify gives you |
|---|---|---|
| Separate products | Shoppers search for, compare and buy the parts separately | Own page, photos, price, description and place in search and collections |
| Variants | You stock and count each version | Own SKU, barcode, stock level, price, weight and image; the theme’s picker; collection filters |
| Custom options | The choice is an instruction to build, coat or fit the part, a deposit, or a service | Choices saved on the order line for your shop; add-on prices; text, numbers, uploads; conditional logic |
Custom options are not built into Shopify: they come from a product options app such as OptionWise, or from custom theme code.
Which auto parts should be separate products
The vehicle rule is the one that matters most. Give each vehicle its own product, or its own variant, when you stock a separate part per vehicle or shoppers search for it by vehicle. A part built for the customer’s vehicle after the order is one product with a vehicle dropdown, like the traction bars below. Products you split by vehicle are tagged and collected by vehicle, as the fitment guide describes.
Mounting kits, bulbs and fluid are separate products too, because each is a stocked item with its own count. Offer them on the main part’s page as add-on products (covered below) rather than as values inside its options.
When auto parts variants make sense
Use a Shopify variant for every version you stock and count. A light bar held in 20 in and 30 in lengths is two variants with two stock counts, and a bracket made in one version per platform is one variant per platform. Variants power the filters on your collection pages (Shopify’s filter documentation), so a shopper can narrow a collection by length or finish. Name variant values by what the customer knows: a rack stocked per length sells as “5.5 ft bed (64 in rack)”, so the shopper chooses by the bed and the shop reads the rack length.
Built-to-order parts are different. Shopify allows up to three options and 2,048 variants per product. Traction bars built for eight vehicle types, in four powder coats, with two mount styles, are 64 variants. That is too many to create and price for bars welded after the order. A color for the overlays, the stainless steel covers fitted over the bars, would be a fourth option, and it does not fit. In Shopify, a product built after the order can have its inventory left untracked, or keep tracking with “Continue selling when out of stock” turned on (inventory tracking).
The hybrid that works: a bed rack made ahead in each length and powder coated after the order (length is a variant; the finish is a custom option). Keep the variant axes to what you count and what shoppers filter by.
Each stocked variant keeps its SKU; custom options add none. The customer’s choices are saved on the order as line item properties: notes attached to that one item, such as “Vehicle: 2011–2025 heavy-duty pickup, Powder coat: Custom, Custom color: RAL 6005, Mounts: Bolt-on front, weld-on axle”. That is the build sheet, on the order page, packing slips and notification emails, with any uploaded photo attached to the same line (where options appear). Choices are per item, so two sets of bars for two trucks are two cart lines, each with its own vehicle.
Custom options for built-to-order auto parts
Custom options carry every choice that is an instruction rather than a stock item. The vehicle comes first, and a color or finish is as common:
- The vehicle, as an OptionWise dropdown of the platforms you build for, each value with its year range, or as separate make, model and year choices. Make it required with no default, so nobody orders for the first truck on the list.
- An engine confirmation on drivetrain parts, as a required choice with values such as “I confirm I have a 3.0 liter engine” and “I don’t know, contact me”, so an unsure customer can still order and the shop can call.
- Powder coat and overlays: a fixed list of standard coats, priced, and a “Custom” value that reveals a required OptionWise text field for the color name or code from the coater’s chart.
- Interior trim: smooth leather, perforated leather or Alcantara, as image swatches of the real material.
- Mounts and hardware made with the part, such as bolt-on or weld-on mounts, as radio buttons with the upgrade priced. Put “no charge” in the value when a request is free: “Add tabs for a 50 in light bar – no charge”.
- Wheel builds: width, offset and hubcap as buttons, and the bolt pattern as a text field.
- Motorcycle and ATV shocks: rider weight as an OptionWise number field with a minimum and maximum.
- Graphics: the style from numbered designs in the product photos; the rider number as a text field with a maximum of 3 characters, so “07” keeps its zero; the print media (white, or chrome and holographic at a price); and a proof choice with the trade-off in the value: “No proof, print and ship (faster turnaround)” or “Email me a proof before printing”.
- Notes and photos: an OptionWise text area and a file upload for a photo of the wheel or the existing part.
In OptionWise, any option can be required and any single choice can carry a default, and add-to-cart and express checkout (Shop Pay, Buy it now) are held until required choices are made. Default the coat and mounts to the standard build, and leave the vehicle without a default. Assign the option set (the group of custom options you build once and share across products) to a tag or collection rather than product by product, so a new part has its build options the moment it is published (assign to products).
Conditional logic for auto parts forms
Conditional logic shows a field only after the choice that makes it relevant:
- “Custom” reveals the color code field, after the list of standard coats.
- A custom-coated overlay reveals its own color code field, separate from the bars’ coat.
- The make reveals its own model list. Make is one dropdown, and each make has its own model dropdown that appears only when that make is chosen. In OptionWise that is one revealed option per branch, and the fitment guide builds the full make, model and year chain.
In OptionWise, any buttons, dropdown, radio, checkbox or swatch choice can reveal other fields, on one value or any of several. Fields the customer can’t see aren’t required and send nothing to the order. See conditional logic.
Pricing auto parts choices and add-on products
Both variants and custom options can change the price, so pricing is not the reason to choose between them; stock is. Stocked lengths and versions carry their own variant prices. On the custom options, price what changes the build or adds a service: powder coats and overlays, custom colors, bolt-on upgrades, special print media, installation, delivery and insurance. Keep the vehicle, the standard finish and the proof free. In OptionWise, add-on prices are fixed amounts on a value, totaled live on the page and carried through the cart, checkout and order, where the add-ons appear as their own line. Add-on prices are per unit, so two sets of bars with a custom coat add the coat twice. Amounts are entered in your base currency and shown in the shopper’s (currencies).
Three priced choices recur in this industry:
- Core charges: a required choice between “Send core in first” and “Core charge (+$1,750)”, with the amount in the label. Refund the core line when the core arrives.
- Installation and delivery: one choice whose values are the locations, from “No installation, ship to me” to partner shops priced from under $200 to about $1,300.
- Shipping insurance on large items: “Yes, insure this item up to its value (+$110)” or “I waive coverage and accept the risk of shipping damage”, so the order records which the customer chose.
When the extra is a stocked product, such as a mounting kit, a case of transmission fluid or a pair of LED bulbs, offer it on the part’s page as an add-on product: OptionWise’s linked-product option shows it there and adds the real product to the cart with its own price and stock. Its stock count goes down with each sale. Mounts welded onto the part are made with it, so a priced value is enough.
Worked examples
Each example is the product page as the customer sees it, with each part labeled: what is a Shopify variant, what is a custom option, and what is an add-on product.
Traction bars, built to order
Nothing is stocked: the bars are built for the chosen vehicle and coated after the order, so there are no variants. The vehicle is required, the coat is priced, “Custom” reveals the color code field, and the upgraded mounts carry a price. This is the page the starter option set below builds.
A truck bed rack, stocked per length
The hybrid case. The racks are made ahead in each length, so length is a variant with a stock count, named by the bed it fits. The finish is coated after the order, so it is a custom option with the coat priced, and the light-bar tabs are welded on request at no charge. The light bar is a stocked product of its own, so it is an add-on product with its own price and stock.
A starter option set for built-to-order parts
Install OptionWise, then build this set: create an option set, add each option below, and assign it to a tag such as built-to-order. Prices are examples in dollars; use your own amounts and currency.
| Option | Type | Values | Notes |
|---|---|---|---|
| Vehicle | Dropdown, required, no default | One value per platform you build for, such as 2011–2025 heavy-duty pickup | |
| Powder coat | Buttons, required, default Raw | Raw; Black (+$249.99); White (+$249.99); Custom (+$299.99) | Controls the next field |
| Custom color | Text, required, max 40 characters | Shown for Custom; color name or code | |
| Mounts | Radio, required, default Bolt-on front, weld-on axle | Bolt-on front, weld-on axle; Bolt-on front and rear (+$49.99) | |
| Notes | Text area | Optional |
The custom color field is required only when Custom is chosen, so a raw or black set goes to the cart with the vehicle chosen and nothing typed.
Common mistakes
- Built-to-order parts as variants. Every vehicle by every coat by every mount, for bars that do not exist until the order. Keep them as custom options.
- Stocked fitments as custom options. No stock count goes down, so you oversell the bracket for the popular platform. If each fitment is its own part on the shelf, make it a variant.
- Stocked bulbs, fluid and kits as priced option values. The upsell works and the stock is never counted. Offer them as add-on products.
- A vehicle choice with a default. Customers who do not look order for the first truck on the list. Require it with no default.
- A custom color with no code field. “Dark green” reaches the coater. Reveal a text field for the chart name or code.
- A rider weight as free text. “About 180” reaches the shop that tunes the shock. Use a number field with a minimum and maximum.
- Fitment only in the options. Shoppers browsing by vehicle never reach the part. Tag and collect it, as in the fitment guide.
Options should load with the page
On an auto parts page, the vehicle, the coat and the mounts are one decision to the customer, and the price moves by hundreds of dollars with each. Most options apps add their fields after the page has loaded, so the vehicle and coat choices appear a moment later and push the add-to-cart button down. OptionWise’s custom options load as part of the product page, next to the variant picker, so they appear with the price and photos and nothing moves (learn more).
Frequently asked questions
How do I ask for the customer's vehicle on a Shopify auto parts product page?
Add the vehicle as a required custom option with no default, so the customer has to choose it. A dropdown of the platforms you build for, each with its year range ('2011–2025 heavy-duty pickup'), covers most built-to-order parts. In OptionWise the choice is saved as a Shopify line item property, so it shows on the order page, the packing slip and the notification email next to the coat and mounts.
Should vehicle fitment be a Shopify variant or a custom option?
A variant when each fitment is a different part you stock and count, such as a bracket made for one platform and another made for the next. A custom option when the part is built to the vehicle after the order, or when the part is the same and you only need to know which vehicle it is going on. Custom options come from a product options app such as OptionWise.
How do I offer custom powder coating on a Shopify product?
List your standard coats as buttons with a fixed add-on price on the coated values, and add a 'Custom' value that reveals a required text field for the color name or code from your coater's chart. In OptionWise the reveal is conditional logic, and fields the customer can't see aren't required and send nothing to the order.
How do I charge a core charge on Shopify?
Take the core as a required choice between 'Send core in first' and 'Core charge (+$1,750)', with the deposit as the add-on price on the second value. In OptionWise the amount is totaled live on the page and carried through the cart, checkout and order, where it appears as its own line. Refund the deposit in Shopify when the old part arrives.
Should LED bulbs or fluid sold with a part be custom options or separate products?
Separate products, offered on the part's page as add-on products. Bulbs, fluid and mounting kits are stocked items with their own counts. OptionWise's linked-product option shows them on the part's page and adds the real product to the cart with its own price and stock, so the stock count goes down with each sale.
How do I offer installation at different locations with different prices on Shopify?
As one choice whose values are the locations, each with its own fixed add-on price, plus a 'No installation, ship to me' value. In OptionWise the chosen amount is totaled live on the page and carried through the cart, checkout and order, and the order records where the part is going to be fitted.
OptionWise for auto parts stores
OptionWise is a Shopify product options app. For an auto parts store, it puts the vehicle, powder coats, custom color codes, mounts, installation and add-on products next to the theme’s variant picker, and saves every choice to the order line for the shop that builds the part.
OptionWise is free for life for stores that install today. It adds a block to your theme, with no code changes.