Latest posts Visit blog

Global B2B e-commerce will reach USD 36 trillion in 2026 at an annual growth rate of 14.5% (International Trade Administration). In Germany, EUR 509 billion of that falls to B2B internet trade by wholesalers and manufacturers, up 7 percent year over year (IFH Cologne). Expectations are shifting as well: 64 percent of business buyers at manager level and above are Millennials or Gen Zers and bring their B2C expectations into B2B purchasing (Forrester). Anyone still serving an identical standard assortment to every customer in a B2B shop in 2026 loses margin, repeat-purchase rate, and trust at the same time. This guide shows how Customer Catalogs map roles, contract prices, and whitelists cleanly, which use cases matter most in medical technology, machinery, and office/MRO, and how the technical implementation on Shopware CE looks in practice.

Why Standard Catalogs Fail in B2B

Wholesalers and manufacturers generated e-commerce revenue of more than EUR 1.5 trillion, of which EUR 509 billion ran through online shops and marketplaces; these channels carried 12.1 percent of their total revenue (IFH Cologne). For comparison: German B2C trade in goods reached EUR 83.1 billion after EUR 80.6 billion the year before, a growth of 3.2 percent (bevh) — the B2B side operates on an entirely different scale. Yet many B2B shops still run a single catalog that shows every customer the same products, prices, and pack sizes. This matches neither the reality of B2B purchasing nor buyer expectations.

The reason lies in how buying groups are composed: 64 percent of business buyers at manager level and above are Millennials or Gen Zers (Forrester). According to Forrester they do far more self-guided research and have less patience for generic outreach. Personalized buying experiences answer exactly that, because every customer only sees what they can actually order at agreed terms.

The flip side of a missing concept: Switch-prone B2B buyers regularly cite a poor digital customer experience as a reason to go elsewhere, and a lack of cross-channel tracking as an impediment to doing business. Pricing pressure is equally high: buyers expect clear, detailed pricing upfront in the buying process instead of waiting for a sales callback. Data-driven dynamic pricing additionally improves margins for B2B distributors and manufacturers. A standard catalog cannot meet those expectations — Customer Catalogs with per-customer pricing can.

Typical consequences of missing Customer Catalogs

Without customer-specific catalogs, buyers see products they are not allowed to order under their framework contract, list prices instead of contract prices, or items that do not fit their approval profile at all. The result: manual corrections in the back office, miss-orders, escalations — and lost conversion. The B2B digital sales transformation regularly stalls at exactly this point, because inside sales and the shop display inconsistent assortments.

Customer Catalogs: Definition and Levels

Customer Catalogs are not a simple category filter but a multi-layered concept. Across our B2B projects, four levels have proven essential — each independently configurable, and in combination forming the full access logic. Every level may influence visibility, price, and terms.

Account level

Assortment per customer company: approved categories, blocked manufacturers, negotiated framework contract items, and customer-specific private labels.

Role level

Rights per user role inside the account: purchasing orders everything, users only approved cost-center items, management holds approval authority.

Location level

Catalog variants per branch, site, or plant — including site-specific lead times and minimum order quantities.

Project / context level

Temporary catalogs for projects, construction sites, or campaigns with dedicated budget caps, validity periods, and approval workflows.

Practically, the B2B shop must evaluate these four dimensions before rendering a product list, a category, or a cart. Sequence matters: first check whether the account has access to the product at all, then whether the role allows it, then whether the location is permitted, and finally whether an active project restricts or extends the assignment. Only after this access check does the pricing logic with contract prices, tiers, and promotional discounts apply — detailed further in our article on B2B pricing strategies 2026.

Implementing Role-Based Visibility Technically

The technical foundation for Customer Catalogs on Shopware CE combines customer groups, user roles, rule builder, and individual service decorators. Out of the box, Shopware CE already provides customer groups with their own prices, product visibility via rules, and account hierarchies with sub-accounts. For advanced B2B scenarios, we extend these building blocks through custom development — especially for role-location-project combinations that cannot be modeled declaratively.

A typical implementation pattern: a catalog_assignment table stores an authorization record per account, role, location, and product. A CatalogVisibilityService decorates the product loader, filters listings and search, and applies price-related rules on the product detail page. Crucially, this logic must also apply to PunchOut responses and API calls — otherwise gaps emerge. Example of a service configuration and the corresponding permission check:

config/services.yaml
services:
  App\Catalog\Service\CatalogVisibilityService:
    arguments:
      - '@Doctrine\DBAL\Connection'
      - '@Shopware\Core\System\SalesChannel\SalesChannelContextService'

  App\Catalog\Subscriber\ProductListingSubscriber:
    arguments:
      - '@App\Catalog\Service\CatalogVisibilityService'
    tags:
      - { name: kernel.event_subscriber }

  App\Catalog\Decorator\SalesChannelProductLoaderDecorator:
    decorates: 'Shopware\Core\Content\Product\SalesChannel\SalesChannelProductLoader'
    arguments:
      - '@.inner'
      - '@App\Catalog\Service\CatalogVisibilityService'
src/Catalog/Service/CatalogVisibilityService.php
<?php

namespace App\Catalog\Service;

use Doctrine\DBAL\Connection;

class CatalogVisibilityService
{
    public function __construct(private Connection $connection) {}

    public function filterVisibleProductIds(
        array $productIds,
        string $accountId,
        string $roleId,
        ?string $locationId = null,
        ?string $projectId = null
    ): array {
        $sql = 'SELECT product_id
                FROM catalog_assignment
                WHERE account_id = :account
                  AND role_id = :role
                  AND (location_id = :location OR location_id IS NULL)
                  AND (project_id = :project OR project_id IS NULL)
                  AND product_id IN (:ids)
                  AND is_active = 1';

        return $this->connection->fetchFirstColumn($sql, [
            'account' => $accountId,
            'role' => $roleId,
            'location' => $locationId,
            'project' => $projectId,
            'ids' => $productIds,
        ], [
            'ids' => Connection::PARAM_STR_ARRAY,
        ]);
    }
}

Assignments themselves are never maintained manually; they are imported from ERP and PIM systems. In practice it pays off to treat the table as a view on a rule-based engine, not as a static list. With 50,000 SKUs and 500 accounts, five-figure assignment volumes per configuration are routine in our projects. Inline admin editing does not scale here. Our custom-built ingest pipelines sync master-data changes, framework contract updates, and role mappings either nightly or event-driven.

Contract Prices and Tiered Models

Customer Catalogs only unfold their full value in combination with contract prices. Context: the average B2B cart value is typically well above B2C levels, while the B2B conversion rate is lower — the individual order weighs far more heavily in return. Every pricing decision therefore matters: a small price change moves profit far more than revenue — making accurate per-customer pricing logic exceptionally valuable.

Pricing logicUsageTechnical mappingTypical lever
List priceNew customers, non-bindingDefault price list per channelReference
Customer group priceSegmented customer typesShopware customer group + price groups-5 to -15%
Contract priceKey accounts with framework contractCustomer-specific price table, ERP sync-10 to -25%
Tiered priceVolume purchasingGraduated quantity prices per product-3 to -20%
Project/tender priceTime-limited projects, BOMProject price list with validityindividual
Quote priceQuotation workflowRFQ with approval, convert to orderindividual

In practice, the quote-to-order rate varies widely between average and best-in-class companies — the difference arises exactly where customer-specific catalogs and contract prices are cleanly integrated, not at the sales call, but in self-service. More context in our article on B2B pricing strategies 2026. There is a hard reason to retain existing customers: increasing the customer retention rate by 5 percent increases profits by 25 to 95 percent, according to research by Frederick Reichheld of Bain & Company (Harvard Business Review) — another reason to map pricing for recurring buyers exactly.

Use Case 1: Medical Technology

In medical technology, framework contracts, roles, and certifications are tightly intertwined. Hospitals operate on multi-year contracts with fixed item baskets, volumes, and prices. Inside the hospital, central purchasing, wards, and the OR operate under different approvals: purchasing negotiates, wards order routine items, and the OR procures specialised articles with batch and sterilisation constraints. A Customer Catalog must reflect this three-way split cleanly.

  • Role-based visibility: Purchasing sees the full assortment including alternatives; wards see approved consumables; the OR sees sterilised items with batch IDs
  • Framework contract prices: Items with negotiated fixed prices, tied to annual purchase volumes and automatic replenishment
  • MDR-compliant data: UDI labels, batch info, and expiry dates per SKU — visible only to eligible roles
  • Approval workflow: Orders above a threshold trigger a second approval by purchasing management
  • Location split: Dedicated stock location per hospital site with individual lead time and minimum order quantity

The decisive benefit: the shop becomes an extension of the ERP system. Instead of calling central purchasing, wards order directly through the portal under exactly the negotiated terms and within the approval limits granted. This saves time across the order chain while increasing compliance against the framework contract.

Use Case 2: Machinery Spare Parts

In machinery, Customer Catalogs revolve around Bills of Materials (BOM) and serial numbers. An equipment operator should see their specific machines in the portal along with the assigned spare parts, exploded drawings, maintenance history, and approved alternatives. Typical scale is significant: 50,000 SKUs per equipment family and 500 to several thousand accounts per machinery builder are routine in our projects. Without a customer-specific catalog, operators would have to navigate a global list and risk miss-orders.

Technically the BOM is maintained in the PIM system and linked per serial number to the account. After login, the shop renders a ‘My Equipment’ view with direct access to the relevant spare parts. Maintenance roles see a different catalog than engineering or purchasing — the maintenance technician is offered typical wear parts immediately, while engineering can inspect the full BOM. Purchasing, in turn, can access alternate supplier items with their own prices. This use case is tightly connected to product configurators that cover compatible components, and to self-service portals that structure B2B self-service overall.

The effect: quote-to-order times drop, inside sales is relieved, and the operator receives within minutes what once took days. At the same time, loyalty to the manufacturer grows because the shop reflects exactly the customer's own machines. Switching to another supplier becomes less attractive — a clear competitive advantage beyond price.

Use Case 3: Office Supplies and MRO

In office supplies and MRO (maintenance, repair, operations) a different pattern dominates: many buyers per customer, small carts, tight budget and cost-center controls. In practice, large office customers typically operate with whitelisted assortments, cost-center budgets, and PunchOut integrations (OCI, cXML) into their procurement systems. The role of Customer Catalogs here is to reduce the full assortment to the customer-specific approved subset, serve contract prices, and monitor cost-center budget caps.

Younger buyers accelerate this trend: 64 percent of business buyers at manager level and above are Millennials or Gen Zers (Forrester) and, per Forrester, do far more self-guided research. They expect to find, order, and settle without a sales conversation — which only works if the assortment is pre-filtered. Combined with PunchOut catalogs (OCI, cXML) a seamless process emerges: the buyer starts inside their own SRM system, enters the shop, sees only the approved catalog with negotiated prices, and submits the order back into the procurement system as a requisition.

ERP/PIM Integration as Foundation

No Customer Catalog survives without clean data. Master data, customer-group assignments, and terms are not born in the shop but in the ERP system and the PIM. The shop is a sophisticated consumer of this data — never a primary source. Across our projects, clear roles have proven themselves: ERP delivers accounts, contract prices, tiers, credit limits, and cost centers; PIM delivers product attributes, variants, media, and BOM data; the shop combines both and translates them into a runtime logic that evaluates visibility and prices in real time.

For many customers we rely on SAP Business One or Microsoft Dynamics as the backbone. Details of those connectors are covered in our articles on ERP integration Shopware/SAP and Middleware for e-commerce integration. For larger projects, Microsoft Dynamics 365 often joins as a second pillar. Core rule: every term change in the ERP must appear in the shop within defined SLAs — via near-real-time events or scheduled syncs depending on the business model.

Performance KPIs for Customer Catalogs

Without metrics, Customer Catalogs quickly become a means in themselves. The following KPIs have proven meaningful in our projects, paired with benchmarks from current industry studies:

KPIDefinitionIndustry benchmarkImpact via Customer Catalogs
Quote-to-order rateShare of quotes converted to ordersbest-in-class well above averageDirect purchase instead of quote, self-service
Average Order Value (AOV)Average cart valuewell above B2C levelshigher AOV with returning-customer focus
Conversion rateOrders per shop sessionB2B typically below B2CPersonalized UX instead of a standard catalog
Repeat rateShare of returning customersvaries by industryFramework contracts + whitelists raise loyalty
Self-service shareShare of digitally handled ordersEUR 509 billion B2B internet trade (IFH Cologne)Fewer inside-sales contacts
Customer Acquisition CostAcquisition cost per new customerindustry-dependentLower through personalization

Measuring these KPIs in a segmented way — by account type, role, and region — matters. A single global average hides the real effect of Customer Catalogs. Typically, key accounts with framework contracts show disproportionally strong improvements, while walk-in customers remain stable.

Implementation Roadmap in 5 Phases

Introducing customer-specific catalogs is not a plugin switch but a project with IT, sales, and data perspectives. We recommend a phased approach that delivers early outcomes while laying the foundation for longer-term extension:

  1. Phase 1 — Data audit: Inventory accounts, roles, framework contracts, and terms in the ERP. Document master-data gaps and close them before building logic
  2. Phase 2 — Access model: Define the account-role-location-project matrix. Workshop with sales, IT, and purchasing to reflect the real business model — not wishlists
  3. Phase 3 — Technical build: Activate Shopware CE foundations (customer groups, rules, sub-accounts) and extend with custom service decorators for visibility, pricing, and projects
  4. Phase 4 — Pilot with key accounts: Migrate 2-3 strategic customers, validate visibility, pricing, and workflows jointly. Build in feedback loops and measure KPIs before and after
  5. Phase 5 — Rollout and iteration: Migrate all accounts step by step, expand self-service tools for buyers, add AI-supported catalog and pricing optimization, continuously monitor KPIs

Phases 4 and 5 benefit especially from robust monitoring. Signals that require adjustment include falling quote-to-order rates in specific segments, rising cart abandonments after login, or a strikingly low self-service share. Periodic consistency checks between ERP terms and shop terms — including automated discrepancy reports — regularly pay off in our experience.

Sources and studies

This article draws on: International Trade Administration (eCommerce Sales & Size Forecast — USD 36 trillion in global B2B e-commerce by 2026, 14.5 percent annual growth), IFH Cologne (B2B market monitor — more than EUR 1.5 trillion in e-commerce revenue from wholesalers and manufacturers, of which EUR 509 billion is B2B internet trade, up seven percent, 12.1 percent revenue share), bevh (German B2C goods revenue of EUR 83.1 billion, up 3.2 percent), Forrester (Buyers’ Journey Survey 2025 — 64 percent of business buyers at manager level and above are Millennials or Gen Zers) and Harvard Business Review (research by Frederick Reichheld, Bain & Company — a five percent gain in retention equals 25 to 95 percent more profit). Actual figures vary by industry, company size, and region.

Customer groups are a single attribute with price and visibility rules. Customer Catalogs combine four levels — account, role, location, and project. This makes it possible to model scenarios such as ‘Only the Hanover-plant maintenance role sees the spare parts of machine series X at the framework price’, which pure customer groups typically cannot express.

Shopware CE provides all technical foundations as open source: customer groups, rule builder, sub-accounts, and an extensible plugin system. For complex matrix access covering role, location, and project, we extend these building blocks through custom development. This approach delivers maximum flexibility with full control over business logic.

It depends heavily on ERP data quality and access-model complexity. In our experience a thorough data audit takes 2-4 weeks, access-model design a further 2-3 weeks, and technical delivery including pilot typically 8-12 weeks. For a reliable plan we assess the individual starting point in a scoping workshop.

Usually through a combination of batch sync (nightly full reconciliation) and event-based near-real-time updates (contract changes, new accounts, price updates). The right frequency and protocol depend on ERP system, transaction volume, and business needs. See our articles on ERP integration Shopware/SAP and Middleware for e-commerce for details.

Yes — typically from around 20-30 business customers with differing terms. The key is manageable maintenance: as soon as sales teams maintain Excel lists of customer-specific prices, automation becomes economical. With a lean implementation, basic role and pricing logics can be rolled out at reasonable effort.

Via defined KPIs: quote-to-order rate, self-service share of orders, average order value, repeat rate, and customer acquisition cost. Segmented analysis matters — key accounts with framework contracts typically show significantly stronger effects than walk-in customers. In our projects we establish before/after measurement points during phase 4 of the rollout to document impact reliably.