Striking the right match for B2B and B2C Commerce

Archivist hero image

Problem

Archivist needed one platform to serve two very different customers. Retail shoppers wanted a clean, simple checkout, while trade buyers needed live pricing, account rules and fast repeat ordering. The business also wanted better performance and product discovery without migrating away from its existing ERP.

Solution

We built a unified headless commerce setup using Sanity for content, Algolia for product discovery and Cin7 for inventory and trade logic. Cloudflare Workers powered custom workflows. Retail users get a streamlined storefront, trade buyers get the tools they need and the team manages everything from one place.

Results

Archivist saw an 18 percent increase in sales in the first two months year on year, doubled its Google search click through rate and doubled the total number of clicks. The business kept its existing ERP while gaining a flexible, scalable platform that supports both retail and trade with ease.

Archivist Product Page on Desktop
Archivist Retail Basket on Mobile
Archivist website of the homepage showing winter products
Archivist Product Pages showing versions for Retail and Trade ingesting data and pricing from Shopify and Cin7 into Sanity
Archivist CMS showing the ingesting of product data from Shopify and Cin7 into Sanity Headless CMS
Archivist website showing basket for trade customers
Archivist Product Collection creation in Sanity
Archivist Image Wall
Archivist Trade Application screens on mobile
Archivist Trade Application VAT Number validation
Archivist Trade Account Area

Questions This Project Answered

01We sell to both retail and trade customers. How do we serve both without building two websites?

We built a single headless ecommerce platform that adapts to the user. Retail customers see a clean, simple storefront and checkout, while trade buyers log in to access live pricing, account rules and fast reordering. One platform, two tailored experiences, managed from the same system.

02How do we support complex trade pricing and account rules without breaking the ecommerce experience?

Cin7 handles inventory, pricing and trade logic as part of the ERP integration, while the headless frontend controls the user experience for both retail and B2B ecommerce users. Trade functionality runs in the background, allowing the storefront to stay fast and simple.

03We want better product discovery and search. How do we fix this without rebuilding everything?

Algolia was integrated with structured product data and content models, allowing users to find products instantly by relevance, category and intent. Search became a primary navigation tool rather than a fallback.

04We can’t replace our ERP because the factory and back office rely on it. How do we modernise the website around it?

Instead of trying to replace Cin7, we integrated it directly into the headless ecommerce architecture. The ERP continues to run inventory, pricing, accounts and production workflows exactly as before, while the new frontend and CMS layer sit on top to deliver a modern ecommerce experience.

05How do we keep performance high on a feature-heavy ecommerce site?

By separating the frontend from the backend in a headless ecommerce setup, pages are pre-rendered and delivered through edge infrastructure. Even with live pricing, account logic and search, the site remains fast and responsive.

06How do we manage content, products and ecommerce in one place?

Sanity powers all content and structured product data for the site, allowing the team to manage pages, product stories and campaigns alongside the ecommerce experience without touching code.

07Our trade customers have multiple accounts and logins. How do we simplify this without breaking existing data?

We unified multiple trade and retail accounts into a single identity linked to one email address. This simplifies customer identity across the B2B ecommerce platform while the underlying account structures remain intact in Cin7.

08How do you handle SSO when customers exist across retail and trade systems?

We implemented a single sign-on layer that sits above both retail and trade logic within the ecommerce platform. Users authenticate once, and the platform determines which pricing and account rules apply based on their profile.

09Cin7’s API and rate limits make real-time data difficult. How do you build around that?

We introduced a shared database that syncs with Cin7 as part of the ERP integration, rather than querying it directly for every request. This removes API bottlenecks and allows the ecommerce platform to access fast, reliable inventory and pricing data without putting strain on the ERP.

Next project

CFS

Rethinking product data for complex b2b commerce