Spare Parts
Learn how to configure and manage a spare parts catalogue that automatically displays matching components and purchase links on your Smartlinks product pages.
Spare Parts Finder — User Guide
Welcome! The Spare Parts Finder lets you attach a catalogue of spare parts and accessories to your SmartLinks collection, then automatically show the right ones to your customers on each product page. Customers click out to your existing online shop to buy.
Overview
- Admins build and maintain a catalogue of spare parts (titles, images, prices, purchase links, and which products they fit).
- Customers see a carousel of matching parts on the SmartLinks public page for each product.
- This app does not process payments — every Buy button opens your e-commerce site in a new tab.
Getting Started
When you first set up the app, you'll be asked four questions:
- Public heading — the title shown above the parts list (e.g. Spare parts & accessories).
- Default currency — three-letter code like
USD,EUR,GBP. Used when a part has a price but no currency. - Default click behaviour — what happens when a customer clicks a part:
- Direct — opens the purchase URL straight away (fastest).
- Modal — shows a detail popup with the full description and a Buy button (better for considered purchases).
- Empty-state message — what to show when no parts match the current product.
You can change all of these any time under the Settings tab.
Day-to-Day Usage
What customers see
On any SmartLinks product page that uses this app:
- A carousel of spare parts that fit that specific product.
- Each card shows an image, title, optional subtitle, optional description excerpt, and price.
- A Buy button takes them to your online shop in a new tab.
If no parts match, they see your friendly empty-state message instead — never an error.
Where parts can appear
- The full public page in the SmartLinks portal.
- An embeddable widget (Spare Parts Widget) in three sizes:
- Compact — image + title + price + Buy. Great for sidebars.
- Standard / Large — rich cards with description.
- A full-app container if a partner wants to embed the entire experience.
Admin Configuration
The admin has three tabs.
1. Catalogue
The list of every spare part. From here you can:
- Add spare part — open a form to create one.
- Edit — change any field.
- Delete — remove a part (with confirmation).
- Search — filter by title, SKU, or GTIN.
Spare part fields
| Field | What it does |
|---|---|
| Title (required) | Main name shown to the customer. |
| Subtitle | Short tagline under the title. |
| Description | Longer text shown in the detail modal. |
| Image URL | Direct link to a publicly-hosted image. |
| Purchase URL (required) | Where the Buy button sends the customer. |
| Price + Currency | Optional. If you only enter an amount, the default currency is used. |
| Product IDs | Comma-separated list of SmartLinks product ids this part fits. |
| GTINs | Comma-separated list of GTINs (barcodes) this part fits. |
| SKUs | Comma-separated list of SKUs this part fits. |
| Facet expression | A flexible rule based on product facets (see below). |
| Click behaviour | Override the global setting just for this part. |
| Internal notes | Admin-only memo, never visible to customers. |
A part is shown on a product when any of: a matching ID, GTIN, SKU, or a facet expression that evaluates to true. A part with none of these never appears.
Facet expressions
Facet expressions let you say things like "this part fits any X-series model from 2020 onwards" without listing every product id.
- Operators:
=,!=,>,<,>=,<= - Combine with
AND,OR,NOT, and parentheses - Wrap text in quotes when it has spaces
Examples:
model = "X200"
model = "X200" AND year >= 2020
(category = "interior" OR category = "trim") AND NOT discontinued = true
The form validates your expression as you type and warns if there's a typo.
2. Import / Export
Manage the catalogue in bulk with CSV.
- Download template — a sample CSV with the right columns and two example rows.
- Export catalogue — download everything currently in your catalogue.
- Import CSV — upload a file. The app shows live progress and a summary at the end (added, updated, failed).
Imports upsert by id:
- A row with an
idthat already exists in your catalogue → that part is updated. - A row with no
id(or a new id) → a new part is added.
Multi-value columns (productIds, gtins, skus) use the pipe character | as the separator, e.g. prod_001|prod_002.
If a row has invalid data (missing title, bad facet expression, non-numeric price), it's reported and skipped — the rest of the import continues.
3. Settings
The same four questions from setup. Update any of them, click Save, and the changes take effect immediately.
Import / Bulk Setup
CSV columns:
id,title,subtitle,description,imageUrl,priceAmount,priceCurrency,
purchaseUrl,productIds,gtins,skus,facetExpression,clickBehaviour,internalNotes
A starter row:
,Brake Pad Set,Front,Ceramic pads,https://example.com/pad.jpg,
49.99,USD,https://shop.example.com/pad-001,prod_001|prod_002,,SKU-PAD-FRONT,,direct,
(Leave id blank for new rows.)
Widgets
The Spare Parts Widget is the embeddable version of the public carousel.
- Compact — minimal cards, optimised for sidebars and small spaces.
- Standard / Large — full rich cards with description.
Widgets show the same matched-parts logic as the public page, so you only manage the catalogue in one place.
FAQ / Troubleshooting
A part I added isn't appearing on the product page. Check the part's matches: at least one of Product IDs, GTINs, SKUs, or a Facet expression must apply to the current product. A part with no match criteria is never shown.
My facet expression isn't matching. Confirm the facet key and value on the product itself. String comparisons are case-insensitive but the facet key must match exactly. Use the form's validator to catch syntax issues.
My CSV import says "0 added". Open the failures list. The most common causes are a missing title, missing purchase URL, or an invalid facet expression.
Prices show in the wrong currency.
Either set a priceCurrency per row in the CSV, or update the Default currency in Settings.
Customers reach my shop in the wrong language.
The Buy button opens whatever URL you provide in purchaseUrl. If you have localised shop URLs, store the relevant one per part.
I want to remove the entire catalogue. Delete parts individually from the Catalogue tab. Imports only add or update — they never delete missing rows, so an "empty" import won't wipe your data.