Rethinking product data for complex b2b commerce

Problem

Digital transformation is rarely a one-off exercise. For CFS, an initial programme moved their extensive product data from offline printed catalogues into Sanity, laying the foundations for a more connected digital ecosystem. The next challenge was to build on that work by improving how customers understood and selected products across platforms.

CFS manufactures fixing systems for construction projects, where products follow highly complex and variable technical structures. Unlike standard ecommerce models, product data could not be limited to simple attributes such as size or colour. Each product type, from bolts to cast-in channels, required entirely different schemas, making traditional PIM solutions inflexible and difficult to scale.

This complexity made it hard for customers to compare products and for internal teams to manage and launch new variants efficiently. At the same time, B2B trade customers needed deeper technical detail to support procurement decisions, highlighting the need for a more adaptable and future-proof approach.

Solution

We built a composable, best-of-breed platform using NetSuite, Sanity, Next.js, Algolia, ShapeDiver and Vercel, designed specifically to handle the complexity of CFS’s product catalogue.

At the core of the solution is a fully custom product model in Sanity that allows CFS to define the schema of each product as it is created. This enables product data structures to flex based on real-world requirements, while maintaining consistency through shared standards such as NBS materials. Products with overlapping characteristics can still be meaningfully compared, even when their underlying schemas differ.

These dynamic schemas are bound to parametric 3D models via ShapeDiver, allowing product visuals to update automatically based on variant data such as dimensions or performance values. This removes the need for unique renders per variant and significantly reduces time to market. Algolia powers fast, accurate product discovery, while integration with NetSuite allows products to be enriched in Sanity and automatically generate up-to-date product datasheets. The frontend is delivered in Next.js and deployed on Vercel for performance and scalability.

Results

CFS now has a scalable product platform purpose-built for complex B2B commerce. Customers can more easily discover, understand and compare products, while internal teams benefit from reduced overhead and faster product launches.

Dynamic 3D visualisation, flexible product schemas and automated datasheet generation have created a robust foundation for future growth, supporting more informed procurement journeys across digital channels.

CFS Product Page showing product table in a Desktop Mockup
CFS Product Category Page Mobile Design
CFS Product Category Page Desktop Design
CFS Product Hero with 3D element as a Desktop Mockup

Questions This Project Answered

01What is the alternative to a traditional PIM?

A traditional PIM struggles with complex product catalogues because it relies on rigid, table-based schemas that are difficult to evolve over time.

A more effective approach is to treat product data as structured, decoupled content rather than rows in a database. This allows complex attributes, nested variants, and evolving product models to be handled flexibly without constant migrations or system rewrites.

Modern headless CMS platforms make this possible by acting as a “content lake,” where product information is modelled as flexible objects instead of fixed tables. Tools like Sanity are often used for this because they support dynamic schemas and multi-dimensional content modelling.

02How do we help customers compare products when their data structures are completely different?

Shared standards such as NBS (National Building Specification) materials and structured relationships allow products with overlapping characteristics to be compared meaningfully, even when their underlying schemas differ. Customers can evaluate options based on performance and specification rather than simple attributes.

03Creating renders for every product variant is slowing us down. Is there a better way?

We connected product data to parametric 3D models using Grasshopper 3D and ShapeDiver. As dimensions and performance values change, the product visual updates automatically. This removes the need for thousands of static renders, reduces storage overhead, and significantly improves frontend performance while accelerating time to market.

04How do we keep product data, visuals and datasheets in sync?

Product data managed in Sanity is integrated with NetSuite and used to automatically generate up-to-date datasheets. The same data also drives the 3D models and the website, ensuring consistency across every output without manual duplication.

05Our customers need deep technical detail to make procurement decisions. How do we present this without overwhelming them?

The flexible content structure allows technical data to be layered and presented contextually. Trade users can access the depth of detail they need, while the interface remains usable and searchable through Algolia-powered discovery.

06How do we make a highly technical catalogue searchable and easy to navigate?

Algolia search is powered by the structured product data, allowing users to find products by specification, performance or intent rather than browsing endless categories. Search becomes the primary navigation tool.

07How do we future-proof a complex product platform as the catalogue grows?

Future-proofing a growing product catalogue comes down to two key strategic decisions.

First: choose the right technology architecture.
Decouple your data from the presentation layer by using an API-first, headless approach. This ensures your product data is not locked into a single frontend or vendor and can evolve as your business does. Our preference is Sanity, as it allows you to leverage an open and flexible content platform and configure the frontend around your business needs, rather than forcing your business to adapt to rigid technology constraints.

Second, and arguably most importantly, design your products as data, not visuals.
Avoid modelling products purely based on how they look today. Instead, structure them around clear, reusable real-world data attributes (for example, Material = Carbon). These atomic attributes tend to remain stable over time, whereas fashionable or marketing-led terms change frequently. A product described today as “eco-friendly” or “low-carbon” may be labelled very differently in five years, but the underlying material, composition, or performance data remains constant.

Do not reinvent the wheel. Lean on established industry standards such as schema.org or, in construction, NBS Uniclass. Every industry has its own conventions. By following them, you make your catalogue more scalable, interoperable, and ready for whatever comes next.

Next project

Adlestrop

Reinventing E-commerce for Fast Fashion