What challenge was the customer facing?
The retailer needed one home for its OEM parts catalog, inside the same Odoo that runs its products, stock and orders. Its customers shop by model: they choose their engine, open the exploded-view diagram for a section, such as the carburetor of a 1991 Evinrude outboard, and find the part by its callout number. Every one of those diagrams had to be backed by Odoo data.
The catalog is deep. Models sit under a brand such as Yamaha, Evinrude or Quicksilver, then a product line, a year and a series. A single diagram page is often shared by many models, and each part line needs its part number, callout, quantity and the spot on the diagram where a shopper clicks. Behind it sits a product database of about 1.5 million products.
Part numbers change over time. Manufacturers replace parts with newer ones, and chains run for decades: a ring from the 1970s is replaced in the 1980s and again later. Chains branch, some loop back on themselves through data errors, and every step can carry its own alternative products, which stayed on the old part they were entered on.
That made the most common question hard to answer: will this part fit my engine? A product can fit a model directly, fit through a newer part that replaced it, or serve as an alternative to a direct fit, and none of that showed on the product itself.
Two more needs completed the picture. The retailer wanted SKUs coded by category, with a revision step whenever a part is superseded. It also needed protection for catalog pages, which are rebuilt from manufacturer data and could not easily be restored if someone deleted one by mistake.
What did the business need to achieve?
The retailer wanted Odoo to be the single source for its parts catalog and the relationships between parts:
- Every model, diagram and part line held in Odoo for the web store to read
- Clickable hotspot positions stored with each part line
- Fitment visible on every product, including fits through supersession
- Alternatives gathered on the newest part of each chain, never on older ones
- SKUs generated by category, with revisions for superseding parts
- Catalog pages safe from accidental edits in the back office
How did TeqStars help?
TeqStars designed the catalog's data model with the retailer's team, starting from the structure of its existing online catalog, and built the parts catalog, product fitment, alternative syncing and an SKU generator as Odoo modules. The retailer's web store reads the catalog from Odoo, so shoppers see interactive diagrams drawn from Odoo data.
- A catalog that mirrors the store. Catalogs follow the store's own path from brand to product line, year and model, and every diagram page stores a page key and web address the store matches.
- Diagrams shared by many models. One exploded-view page serves every model that uses it, and its image is stored in Odoo with its width and height recorded.
- Part lines with hotspots. Each line carries part number, description, quantity, callout number, level and linked product, plus the rectangle the web store turns into a clickable hotspot.
- A Fitment tab on every product. Staff see each model and diagram a product fits, marked Direct Fit, Superseding or Alternative, and answer fit questions from the product form.
- Fits beyond the diagram. A product also lists models it serves through a supersession or alternative link to a part printed on the diagram, so the tab covers more than direct fits.
- Alternatives inherited by the newest part. The sync walks each supersession chain to its last part, stops safely on loops, and adds every older part's alternatives to it, never the reverse.
- Reverse links. Each product shows where it is used as an alternative, optional or accessory item, and the retailer tested the view against its full product database.
- SKUs by category. Products in a coded category get SKUs in the format AA-00000-00, such as EC-00015-00, numbered on from the highest SKU already used in the category; uncoded categories are skipped.
- Revisions that follow supersession. A part that supersedes an older one takes the old SKU with the next revision code, from 00 to A1, B1 and on to Z1 and A2.
- Superseding catalogs. A catalog can point to the newer catalog that replaces it, and an internal code records which import created it.
The project began with design. The retailer shared how its online catalog was organized, from brand pages down to a single carburetor diagram, and the two teams agreed the Odoo data model before development started. TeqStars then built the first version of the catalog and extended it as the catalog data was imported: hotspot coordinates and part levels, stored diagram images, then page keys and web addresses.
Later work followed daily use. The Fitment tab came next, then brand records that show their catalogs, superseding catalogs and import codes. The catalog was made read-only in the back office, with changes arriving only through imports, so a page cannot be deleted by mistake. Alternative syncing and the SKU generator followed, each built to examples and rules written by the retailer's team, and a scheduled job brought existing products in line in batches.
Key capabilities delivered
- Business Process Automation
- eCommerce Integration
- Custom Development
Challenges we solved
- Catalog data needed a home inside Odoo
- Diagrams shared by many engine models
- Hotspot positions for clickable diagrams
- Part numbers replaced over decades
- Supersession chains that loop back on themselves
- Alternatives stuck on old part numbers
- Fit questions not answerable from the product
- Catalog pages lost to accidental edits
What business processes improved?
Before
Catalog data for the web store was kept outside Odoo, and products in Odoo had no link to the models and diagrams they fit. Alternatives stayed on whichever old part number they were entered on, and fit questions had to be answered outside the product record.
After
Odoo holds every model, diagram and part line, and the web store reads them to draw interactive diagrams. Staff open a product and see its fitment, the newest part in each chain carries every alternative from the parts it replaced, and new products in coded categories receive SKUs that record their revision.
What results did the project achieve?
- products in Odoo database
- 1.5M
- part links tracked: superseding, alternative, optional, accessory
- 4
- hand edits to catalog pages
- 0
The parts catalog now lives where the products, stock and orders live. The web store reads models, diagrams, part lines and hotspots straight from Odoo, so a shopper who clicks a callout lands on a product that Odoo manages, not on a copy kept somewhere else.
Support and sales staff answer fit questions from the product form, where the Fitment tab lists every model and diagram with its relationship, such as the starting motor diagram of a 1997 Yamaha 75 hp outboard as a direct fit. Every staff role can open the catalog read-only, and the product team updates it through imports instead of hand edits. When a manufacturer supersedes a part, the newest part collects the alternatives of the whole chain, and its SKU shows the revision. Brand records such as Quicksilver show their catalogs, and a catalog that has been replaced points to its newer version.
TeqStars keeps building on the catalog, and the same supersession data now feeds the purchasing alerts and the receiving screen TeqStars built for the warehouse.
Customer success story