---
title: "Lex & Hesse – B2B Shop for Vehicle Parts with 400,000 Products"
description: "Case Study: Migration to Shopware 6, Sage b7 ERP integration, TecDoc integration and high-performance parts search for a B2B auto parts distributor."
canonical_url: "https://kickbyte.de/en/references/lex-hesse"
last_updated: "2026-08-24T18:46:55.805Z"
---

# Lex & Hesse GmbH

## B2B Shop for Vehicle Parts with 400,000 Products

Lex & Hesse is part of the Swiss HESS AG – an internationally active corporate group in its third generation. The core
business is automotive parts wholesale, complemented by technical trade, hydraulic products and exchange turbochargers.
The company specializes in spare parts for buses, rail vehicles and thermal management.

We have been maintaining the [e-commerce](/en/services/ecommerce) platform for many years – from the migration to
Shopware 6 to the current platform with approximately 400,000 products, multiple warehouse locations, and a deep
integration with Sage b7.

This is not a standard setup. Customer-specific pricing with real-time calculation, a complex part number search,
vehicle assignment via TecDoc and customer-individual payment and shipping options make this project technically
demanding.

![System architecture: Shopware 6, Sage b7, TecDoc and warehouse locations](/references/lex-hesse/architecture_en.svg)

---

## 🔄 Migration from Shopware 5 to Shopware 6

The platform originally ran on Shopware 5. Growing requirements for performance, B2B functionality and integration depth
made the switch to Shopware 6 necessary. Shopware 5 was increasingly hitting its limits – both in mapping complex B2B
pricing logic and in scaling the integrations. Learn more
about [system modernization and migration](/en/services/system-modernization-migration).

The migration was completed within six months. Not only was data migrated, but the entire integration architecture was
rebuilt from scratch. The existing Sage interface, the search logic and the TecDoc integration were completely
redesigned and reimplemented. Existing workarounds from the Shopware 5 era were replaced with clean, maintainable
solutions. The frontend was modernized and tailored to B2B daily operations – fast navigation, efficient ordering
processes and a search built around part numbers rather than product names.

---

## 🔗 Sage b7 ERP Integration

The ERP system Sage b7 serves as the central data source for the entire business operation. All business-relevant data –
from article master data to pricing logic to customer conditions – is managed in Sage and synchronized to the shop. The
connection runs via the Sage b7 web service and was also upgraded to Sage b7.5 during the project. Sage-side
customizations to the web service and specialized ERP configurations were implemented in collaboration
with [Schommers IT](https://schommers-it.de). Learn more about our approach
to [ERP integrations](/en/services/erp-integration).

One of the central challenges was the performance of the Sage integration. The web service delivers data for prices,
stock levels and article information – on every page load, individually per customer. In the original implementation,
total load times for a listing page – including price calculation, stock queries and rendering – exceeded one second.
Through targeted optimizations and an intelligent caching concept, we brought load times well below one second.

![Bidirectional synchronization between Sage b7 and Shopware 6](/references/lex-hesse/erp_sync_en.svg)

The interface synchronizes bidirectionally:

**Products and Categorization** – Article master data is imported from Sage and automatically assigned to the
appropriate Shopware categories. With approximately 400,000 products, this is essential – manual assignment would not be
economically viable. Changes to article data in Sage are automatically propagated to the shop without manual
intervention.

**Real-Time Stock Levels** – Inventory levels across multiple locations including consignment warehouse are queried in
real time and merged in the shop. The shop displays current stock per warehouse. Customers can see at a glance whether
an article is available at a specific location and plan their orders accordingly.

**Orders** – Incoming orders are automatically transferred to Sage. Order status, shipping information and tracking
numbers flow back to the shop. The entire process from order to shipping notification runs without manual steps.

**Customers** – Customer master data, delivery addresses, payment terms and credit limits are synchronized between
systems. New customers registering in the shop are created in Sage. Changes to customer data in Sage are synchronized to
the shop.

**Customer-Specific Pricing** – Every B2B customer sees their individually negotiated prices. The calculation takes into
account discount levels, quantity scales, special promotions and individual conditions – performant even with 400,000
articles and thousands of individual price lists.

---

## 🔍 Product Search Based on Elasticsearch

Search is the central tool in the shop. Workshops and dealers don't search by product name – they search by part
numbers: OE numbers, manufacturer reference numbers, cross-reference numbers. If you need a brake disc in this market,
you know the number – not the name.

This makes search a fundamentally different challenge compared to a typical B2C shop. A single brake disc can be known
under dozens of different numbers: the original number from the vehicle manufacturer, reference numbers from various
parts manufacturers, cross-reference numbers from catalogs. Customers enter these numbers with spaces, hyphens, dots or
in completely different formats. A standard search reliably fails here.

The solution is based on Elasticsearch (compatible with OpenSearch) and combines two search modes:

**Exact Number Search** – Precise hits when a known part number is entered correctly. If you know the right number, you
get the right result immediately – no need to navigate through filters or categories.

**Fuzzy Number Search** – Tolerance for typos, missing separators and alternative formats. Cross-reference numbers, OE
references and manufacturer numbers are mapped to each other, so a product can be found via any of its known numbers.

The combination of exact and fuzzy search ensures that precise queries hit immediately while imprecise inputs still lead
to the correct result. For daily workshop operations, this means: enter number, find part, order. No detours.

![Search process: From part number to result with vehicle assignment](/references/lex-hesse/search_en.svg)

---

## 🚗 TecDoc Integration

TecDoc is the industry standard for vehicle parts data in the automotive aftermarket. The data catalog contains
structured information on millions of spare parts – vehicle assignments, original part numbers, technical data, images
and documents. The integration connects the Shopware catalog with this data on multiple levels and strategically
enriches the shop's own product data. A typical example of [system integration](/en/services/system-integration) in
e-commerce.

**Search** – TecDoc is integrated as an extension of the search. Part numbers and OE references are found even when they
are not maintained in the shop's own inventory. The customer doesn't notice – the search works transparently in the
background and delivers a unified result.

**Article Images** – Proprietary product images and TecDoc images are merged. TecDoc fills in missing views and provides
additional perspectives – such as technical drawings or alternative angles. With 400,000 products, this is a significant
advantage for the visual quality of the shop. Very few articles remain without an image.

**OE Numbers** – Original equipment part numbers from vehicle manufacturers are displayed on the product and are
searchable. Workshops can search directly with the number from the vehicle registration document. OE numbers from TecDoc
are merged with numbers stored in the shop's own catalog to ensure the most complete assignment possible.

**Documents** – Technical data sheets, installation instructions and safety data sheets from TecDoc are merged with
proprietary documents and available for download on the product page. Workshops get the information they need for
installation directly in the shop.

**Vehicle Overview** – A searchable vehicle matrix enables parts search by vehicle manufacturer, model and engine type.
Customers can select their vehicle and see all matching parts – filtered and sorted. Vehicle data comes from both TecDoc
and an internal data source and is merged. Especially for special vehicles like buses and rail vehicles, which are not
fully covered in TecDoc, the internal data source is essential.

---

## 🏢 B2B Suite and Customer-Specific Pricing

The shop is aimed exclusively at business customers. The Shopware B2B Suite provides the foundation for company-specific
workflows.

![B2B purchasing process: Login, real-time pricing, availability, order](/references/lex-hesse/live_pricing_stock_en.svg)
Together with the Sage integration, it creates a system that maps the entire B2B purchasing process – from price
calculation through ordering to delivery.

**Customer-Specific Pricing** – Every customer sees their individual conditions from Sage b7. In practice, this means: a
customer opens a category with hundreds of articles and instantly sees their individual prices – calculated from
discount levels, quantity scales and special conditions.

**Roles and Permissions** – Companies can create multiple users with different authorization levels. Buyers place
orders, supervisors approve them. Larger customers with multiple branches can map their internal approval processes in
the shop.

**Structured Ordering Processes** – Shopping carts can be saved, shared and used as templates for repeat orders. For
workshops that regularly order the same wear parts, this saves considerable time. Instead of searching for the same
articles individually every week, an existing template is loaded and ordered with a single click.

**Customer-Individual Payment and Shipping** – Not every customer sees the same options. Payment and shipping methods
are controlled based on customer account, delivery address, article type and availability. Bulky goods and hazardous
materials trigger dedicated shipping rules. A customer with a credit limit sees different payment options than a new
customer, and an article with a hazardous goods classification is shipped differently than a standard part.

---

## 📊 Project at a Glance

<table>
<thead>
  <tr>
    <th>
      
    </th>
    
    <th>
      
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Industry
      </strong>
    </td>
    
    <td>
      Automotive Aftermarket / Vehicle Parts
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Company
      </strong>
    </td>
    
    <td>
      Part of HESS AG (Switzerland, 3rd generation)
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Platform
      </strong>
    </td>
    
    <td>
      Shopware 6 (migrated from Shopware 5)
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Products
      </strong>
    </td>
    
    <td>
      approx. 400,000
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        ERP
      </strong>
    </td>
    
    <td>
      Sage b7 / b7.5
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Search
      </strong>
    </td>
    
    <td>
      Elasticsearch / OpenSearch + TecDoc
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Vehicle Data
      </strong>
    </td>
    
    <td>
      TecDoc Integration + internal data source
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Warehouses
      </strong>
    </td>
    
    <td>
      Multiple locations
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Business Model
      </strong>
    </td>
    
    <td>
      B2B with customer-specific pricing
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        B2B
      </strong>
    </td>
    
    <td>
      Shopware B2B Suite
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Engagement
      </strong>
    </td>
    
    <td>
      Long-term, ongoing
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Hosting
      </strong>
    </td>
    
    <td>
      Managed Hosting
    </td>
  </tr>
</tbody>
</table>

---

<nuxt-link to="/en/contact" className="not-prose,mx-auto,table,text-white,px-4,py-1.5,text-base,font-semibold,leading-7,shadow-sm,ring-1,duration-300,ease,rounded-lg,bg-primary,ring-primary,hover:bg-secondary,hover:ring-secondary">

👉 Talk to us about your project

</nuxt-link>
