Skip to content

IntershopReady

Schedule a conversation

Choose the time slot that works best for you.

Functional scope

Intershop accelerator features

The IntershopReady functional scope, verified in the repository. Partial support, known limitations and project dependencies are explicitly identified.

144 capabilities

Storefront foundation

Cross-cutting capabilities shared by every implementation.

  • Next.js, Nuxt or Angular SSR

    The same functional scope is delivered in three implementations so the storefront can match the team’s skills.

    IntershopReady Supported Included B2C + B2B
  • Server-first architecture with SSR

    Server rendering and server-side metadata generation call ICM domain modules directly through the ICM access layer; the layout server-prefetches the category tree and hydrates only interactive surfaces in the browser.

    IntershopReady Supported Included B2C + B2B
  • Secure BFF between browser and ICM

    Sensitive calls go through domain-specific server modules that protect tokens, normalise ICM responses and limit API exposure.

    IntershopReady Supported Included B2C + B2B
  • End-to-end TypeScript

    Types run from the ICM configuration (IcmConfig) through the view-model adapters to the feature-flag registry; forms pair the form layer with shared Zod validation schemas.

    IntershopReady Supported Included B2C + B2B
  • Localised routes and language switcher

    The internationalisation layer always emits a locale prefix (en-US/fr-FR/de-DE) on the localised routes; the switcher persists the choice then reloads, and the BCP-47 locale is mapped to ICM's underscore form (en_US) at the wire boundary.

    IntershopReady Supported Included B2C + B2B
  • Locale detection and synchronisation

    The middleware runs the internationalisation routing then reconciles the locale cookie against the URL segment, which is the source of truth; the corrected cookie is written back into the request headers so server rendering and the BFF query ICM in the right language.

    IntershopReady Supported Included B2C + B2B
  • Multi-currency from ICM configuration

    The currency choice is stored in a cookie and injected by the ICM server transport as matrix parameters (;loc=;cur=) on the ICM URL, mirroring the Intershop PWA; ICM then returns prices in the requested currency per channel configuration.

    IntershopReady Supported Through ICM B2C + B2B
  • Centralised brand theme

    The brand accent is defined once - colour, name and PWA metadata - then feeds the manifest, the installable icons, the Open Graph image, the address-bar tint and the UI's accent token.

    IntershopReady Supported Included B2C + B2B
  • Feature flags across UI and BFF

    The feature-flag registry exposes guards on the UI and on the BFF, so a disabled feature 404s both the page and its server route; two env vars (allow-list and kill-list) shape the mix without forking.

    IntershopReady Supported Included B2C + B2B
  • Identity-provider abstraction

    The identity factory selects the provider at runtime per configuration behind a shared IdentityProvider interface (session resolution, login/logout/register URLs); ICM-OAuth2 is the default, with Auth0 provided as a connector still to be completed.

    IntershopReady Supported Optional B2C + B2B

PWA & web performance

A modern PWA strategy compatible with server rendering and application navigation.

  • Web manifest and installable icons

    The manifest is generated server-side from the brand registry, with 192/512 and maskable icons rendered on the fly in the brand accent, plus an Apple touch icon.

    IntershopReady Supported Included B2C + B2B
  • Service worker with versioned caches

    The service worker maintains versioned caches: on every deployment, stale caches are evicted automatically so no outdated content lingers.

    IntershopReady Supported Included B2C + B2B
  • Multilingual offline shell

    A trilingual offline page (fr/en/de, language detected from the locale cookie) is precached when the service worker installs and served as the offline last resort, with logo and recent basket still available.

    IntershopReady Supported Included B2C + B2B
  • Offline banner and network recovery

    The offline banner flags loss of connectivity using browser events plus a real HEAD probe of /manifest.webmanifest, since navigator.onLine can lie; detection is event-driven, with no periodic polling.

    IntershopReady Supported Included B2C + B2B
  • Install prompt and update handling

    The PWA install component registers the service worker, turns beforeinstallprompt into a branded install banner (with an iOS "Add to Home Screen" fallback) and surfaces an update banner that triggers skipWaiting then reloads.

    IntershopReady Supported Included B2C + B2B
  • Locale- and user-scoped caches

    The hand-rolled service worker isolates five versioned cache families: static, navigation, catalogue and CMS data are scoped by locale (URL prefix), while personal pages and APIs are scoped by the sub claim of the session JWT.

    IntershopReady Supported Included B2C + B2B
  • User-cache purge on logout

    On logout, the storefront posts a PURGE_USER message to the service worker, which deletes every user cache; the sweep is deliberately broad so no personal data stays readable on a shared machine.

    IntershopReady Supported Included B2C + B2B
  • Client hydration limited to interactions

    The architecture is server-first: pages are produced by server rendering and only interactive components are hydrated, keeping the shipped JavaScript confined to what genuinely responds to user interaction.

    IntershopReady Supported Included B2C + B2B
  • Responsive images and lazy loading

    Images carry a responsive sizes attribute and are lazy-loaded by default; only above-the-fold images receive loading priority (eager + fetchpriority) to protect the LCP. Format optimisation (AVIF/WebP) depends on the delivery layer.

    IntershopReady Supported Included B2C + B2B
  • Public-route prefetching

    Route prefetching targets a list of public routes about 1.5s after first render, draining one route per idle slot and honouring data-saver mode, to warm the offline cache with server payloads.

    IntershopReady Supported Included B2C + B2B
  • Optional RUM and error monitoring

    Monitoring relies on Sentry, dynamically imported only when the sentry feature is on, a DSN is provided by configuration and analytics consent was granted; error capture and 10% transaction sampling stay off by default.

    IntershopReady Supported Optional B2C + B2B

SEO & discoverability

Technical foundations required to index a multilingual catalogue.

  • Server-generated metadata

    Two factories (publicPageMetadata, privatePageMetadata) emit title, description, canonical and Open Graph tags during server-side metadata generation, fed by the internationalisation layer's translations for the active locale.

    IntershopReady Supported Included B2C + B2B
  • Canonical URLs

    Every indexable page exposes a canonical pointing at its current-locale variant (SITE_URL/{locale}{path}), kept consistent with sitemap and JSON-LD URLs to avoid Search Console inconsistency warnings.

    IntershopReady Supported Included B2C + B2B
  • hreflang and x-default

    alternatesFor() builds the alternate-languages map with one entry per locale plus an x-default targeting the default locale, surfaced as hreflang tags on every public page.

    IntershopReady Supported Included B2C + B2B
  • Segmented sitemap index

    The /sitemap.xml endpoint emits a sitemapindex referencing four content-type sub-sitemaps, letting Search Console report coverage per segment and keeping each file under Google's 50,000-URL cap.

    IntershopReady Supported Included B2C + B2B
  • Product, category, CMS and static sitemaps

    Four separate endpoints generate the product, category, CMS-page and static-route sitemaps; each URL is emitted once per locale with its hreflang alternates, the host derived from the incoming request.

    IntershopReady Supported Included B2C + B2B
  • Configurable robots.txt

    A dedicated endpoint renders robots.txt with a request-derived host, disallows private segments (account, basket, checkout…) and adds a Content-Signal directive (ai-train, search, ai-input) tunable via environment variables.

    IntershopReady Supported Included B2C + B2B
  • Open Graph and social cards

    Every page emits a complete Open Graph block (type, url, locale, alternateLocale) plus a Twitter summary_large_image card; the default 1200×630 image is produced server-side by on-the-fly image generation in the B2C/B2B theme colours.

    IntershopReady Supported Included B2C + B2B
  • Product structured data

    Product pages render a server-side @type Product JSON-LD with an Offer (price, currency, availability, condition), plus brand and mpn when ICM provides them and AggregateRating when reviews exist.

    IntershopReady Supported Included B2C + B2B
  • Breadcrumb, Organization and Website structured data

    The layout emits Organization (name, url, /apple-icon logo) and WebSite with a sitelinks-searchbox-eligible SearchAction once per locale; each PDP and category page adds a BreadcrumbList built from the ICM categoryPath.

    IntershopReady Supported Included B2C + B2B
  • FAQ, list and store structured data

    Three complementary schemas: ItemList on category and search pages, one LocalBusiness per store (address, geo, contact) from the ICM /stores endpoint, and FAQPage conservatively extracted from CMS headings ending in a question mark.

    IntershopReady Supported Included B2C + B2B
  • Redirects and URL rewriting

    The accelerator ships built-in redirects: legacy paths (e.g. /store-finder → /stores) via config, a 308 redirect of product pages to the canonical slug URL, and locale redirects; migration-specific URL maps are configured per project.

    IntershopReady Supported Included B2C + B2B
  • Google Merchant Center feed

    Behind the merchant-feed flag (B2C, off by default), an endpoint paginates the ICM catalogue and renders an RSS 2.0 feed with the g: namespace, one feed per locale via ?locale=; identifiers, item_group_id and availability follow Google's vocabulary.

    IntershopReady Supported Optional B2C
  • Agent-ready llms.txt and API catalogue

    Under the agentic flag (off by default), the storefront publishes /llms.txt and Markdown mirrors /llms/{locale}/… of PDPs, categories and CMS pages, advertised via Link rel=alternate headers, plus /openapi.json and /.well-known/api-catalog describing the public API surface.

    IntershopReady Supported Optional B2C + B2B
  • MCP server and agent-skills discovery

    Beyond llms.txt, the storefront exposes a read-only MCP (Model Context Protocol) server at /api/mcp — JSON-RPC catalogue tools (search, browse), advertised via /.well-known/mcp/server-card.json — plus Agent Skills discovery at /.well-known/agent-skills (index + SKILL.md artifacts). Public-catalogue scope, no authentication.

    IntershopReady Supported Optional B2C + B2B

Security, consent & compliance

Controls applied in the browser, middleware and BFF.

  • Sessions through httpOnly cookies

    Session tokens remain server-side in httpOnly cookies so browser JavaScript cannot access them.

    IntershopReady Supported Included B2C + B2B
  • Token refresh and validation

    The middleware checks the session JWT's expiry and, when stale, runs a grant_type=refresh_token rotation before the route, rewriting the session and refresh cookies.

    IntershopReady Supported Included B2C + B2B
  • Authenticated-route protection

    An auth gate in the middleware redirects anonymous visitors hitting a protected segment (account, orders, wishlists, organization-management…) to /login with a returnUrl, preserving the locale prefix.

    IntershopReady Supported Included B2C + B2B
  • Schema-based input validation

    Forms share a typed Zod field library through the form layer, giving consistent client-side validation and error messages; some advanced forms still need wiring onto this foundation.

    IntershopReady Supported Included B2C + B2B
  • Security headers and CSP

    The configuration sets X-Content-Type-Options, X-Frame-Options DENY, HSTS, Permissions-Policy and a Content-Security-Policy (report-only or enforced per environment), plus a dedicated header locking down the service worker.

    IntershopReady Supported Included B2C + B2B
  • Category-based cookie banner

    The cookie banner offers accept, reject or open /cookies, persisting the choice by category (required, functional, analytics, marketing) to the cookieConsent localStorage entry, with no re-prompt.

    IntershopReady Supported Included B2C + B2B
  • Consent-gated tracking

    GTM only injects when the tracking feature flag is on, a container id is set and the visitor has granted the analytics category; a consent-changed event re-evaluates without a reload.

    IntershopReady Supported Included B2C + B2B
  • Data access or deletion request

    The /data-request page confirms a GDPR export or deletion request from the emailed link (requestID + hash); the BFF calls ICM anonymously and distinguishes a first confirmation, an already-used link or an invalid one.

    IntershopReady Supported Included B2C + B2B
  • Optional captcha on forms

    reCAPTCHA v3 is enabled via the captcha flag and a site key provided by configuration; a per-action token is minted just before submit, and without a key forms work with no challenge.

    IntershopReady Supported Optional B2C + B2B
  • SSO, MFA or external identity provider

    An identity factory selects the provider per configuration: ICM OAuth2 by default, or an Auth0 connector (JWT verification against the JWKS) delegating SSO and MFA to the external provider, which remains to be integrated.

    IntershopReady Supported Optional B2C + B2B

CMS & content

Rendering of ICM content with preview and targeted cache invalidation.

  • ICM content pages

    ICM content pages are loaded from /cms/pages, their pagelet/slot tree flattened into a typed map, then each pagelet is server-rendered by its definitionQualifiedName, with SEO attributes lifted from configuration parameters.

    IntershopReady Supported Through ICM B2C + B2B
  • CMS-driven navigation and menus

    The category tree is server-prefetched and drives both the desktop megamenu and the mobile drawer; help and legal pages expose a side-rail navigation built from /cms/pagetree.

    IntershopReady Supported Through ICM B2C + B2B
  • CMS containers and layouts

    The container pagelet translates ICM's Grid parameter (breakpoint:columns pairs, 12-column base) into a responsive grid driven by the design tokens and recursively renders each slot's children from the shared pagelet map.

    IntershopReady Supported Through ICM B2C + B2B
  • Rich text and sanitised freestyle HTML

    HTML authored in ICM is rewritten for URIs then passed through an allow-list sanitiser: only whitelisted tags and attributes survive, script/style blocks are stripped, and href/src are URL-guarded before server injection.

    IntershopReady Supported Through ICM B2C + B2B
  • Images, videos and carousels

    ICM file references resolve to absolute static URLs; videos handle native files plus YouTube/Vimeo embeds, and the carousel chunks its slides server-side before handing playback to a client island.

    IntershopReady Supported Through ICM B2C + B2B
  • Manual, filtered or dynamic product lists

    Manual (authored SKUs), category, named-ICM-filter, or REST-endpoint-driven lists; the REST variant is pinned to the ICM host (SSRF guard) and reads SKUs from the standard list envelope, never evaluating operator JS.

    IntershopReady Supported Through ICM B2C + B2B
  • Dialogs and reusable content includes

    Reusable includes are fetched via /cms/includes and rendered wherever they are dropped (home, footer); dialog pagelets render their content slot, ready to be surfaced as a modal trigger.

    IntershopReady Supported Through ICM B2C + B2B
  • Content preview mode

    A ?PreviewContextID parameter is captured by the middleware into a cookie, then appended as a ;pgid= matrix segment to ICM calls so drafts render uncached; the preview bridge syncs with ICM's Design View over postMessage.

    IntershopReady Supported Included B2C + B2B
  • Publication revalidation webhook

    A bearer-token-protected endpoint receives ICM's publication event and triggers on-demand revalidation of the affected pages (pageId, includeId, explicit paths or all), expanded per locale.

    IntershopReady Supported Included B2C + B2B
  • Publishing workflow, versioning and scheduling

    Approval workflow, versioning and scheduling stay governed in ICM; the storefront consumes the outcome, distinguishing the published surface from the draft (preview), then syncs through the revalidation webhook.

    IntershopReady Supported Through ICM B2C + B2B

Catalogue, navigation & search

Catalogue discovery journeys and merchandising rules exposed by ICM.

  • Category tree

    The categories module walks the ICM tree level by level (concurrency 8) and assembles a typed CategoryNode tree, consumed directly by server rendering for the mega-menu and rebuilt from a leaf id when needed.

    IntershopReady Supported Through ICM B2C + B2B
  • Customer-context categories and assortments

    Every category call goes through the ICM server transport carrying locale, currency and channel/customer context, so online availability and per-subcategory product counts reflect the assortment ICM resolves for the visitor.

    IntershopReady Supported Through ICM B2C + B2B
  • Server-rendered category pages

    The /category/[...path] route resolves the URL path to an ICM category server-side, renders the breadcrumb from categoryPath, redirects single-id links to the canonical URL and emits breadcrumb/itemList JSON-LD.

    IntershopReady Supported Included B2C + B2B
  • Catalogue search

    Search queries products?searchTerm server-side then resolves each SKU's detail; the /search page reads ?q from the URL as the source of truth, so a refresh or shared link reproduces the same results, served noindex/follow.

    IntershopReady Supported Through ICM B2C + B2B
  • Suggestions and autocomplete

    The search overlay queries ICM /suggest (PascalCase SearchTerm param) through the client-side data cache, falling back to top matching products when the index returns no terms; keyboard navigation across the list.

    IntershopReady Supported Through ICM B2C + B2B
  • Facets and filters

    The facet component renders the /productfilters groups (brand, price, colour, supplier) as clickable links server-side; each click merges ICM's query fragment into the URL's ?filter, with active chips, toggling and a colour-swatch grid.

    IntershopReady Supported Through ICM B2C + B2B
  • Product-list sorting

    Sorting is passed straight to ICM as the sortKey (name-asc, ProductSalePriceGross-desc, bestSellers, newest…); options surface as links in the sort-and-filter drawer and sync the URL's ?sort, honoured by both server render and progressive loading.

    IntershopReady Supported Through ICM B2C + B2B
  • Pagination and progressive loading

    The progressive-loading component pairs a real crawlable (a href=?page=N) link and server rendering of each page with client-side accumulation: append via fetch, URL replaceState, IntersectionObserver auto-load capped at three pages, plus a load-previous path for deep links.

    IntershopReady Supported Included B2C + B2B
  • No-results experience

    Each journey has its own empty state: a search with no term invites browsing the catalogue, a query with no match shows a clear message, and a category with no children or products renders a designed empty state with back-to-parent and catalogue links.

    IntershopReady Supported Included B2C + B2B
  • Recently viewed products

    A tracker mounted on each product page pushes the SKU into a localStorage MRU list (max 12 entries), surfaced in the search overlay and on the /recently page, refreshing on focus, pageshow and cross-tab storage events.

    IntershopReady Supported Optional B2C + B2B
  • Product comparison

    A client-side store persists the list of SKUs to compare in localStorage; the /compare page resolves them via the client-side data cache and renders a sticky-label-column table that highlights diverging attribute rows.

    IntershopReady Supported Optional B2C + B2B
  • Search boosts, synonyms and keyword redirects

    Boosting, synonyms and keyword redirects are applied by the ICM search engine server-side within the channel/customer context; the storefront simply forwards searchTerm and sortKey and renders the order and matches it returns.

    IntershopReady Supported Through ICM B2C + B2B

Product & merchandising

Presentation of simple or complex products and their conversion elements.

  • Simple products, variants and masters

    The product is fetched server-side and mapped to a typed model; a master 307-redirects to its default variation resolved from ICM's /variations endpoint, and shows a from-price across its variant range.

    IntershopReady Supported Through ICM B2C + B2B
  • Variation attributes

    Each ICM variation axis is rendered server-side: hex-based colour swatches for colour axes, text pills otherwise, with every value linking to the matching variation's SKU.

    IntershopReady Supported Through ICM B2C + B2B
  • Bundles, kits and retail sets

    Bundles and kits render on the product page; retail sets expose each member with its price, an adjustable quantity, an aggregated total and one-click add-all to basket.

    IntershopReady Supported Through ICM B2C + B2B
  • Responsive image gallery with zoom

    The gallery shows a single hero or a two-column grid depending on image count, with full-screen zoom of ICM's ZOOM variant, keyboard navigation, focus trapping and a thumbnail strip.

    IntershopReady Supported Included B2C + B2B
  • Documents and attachments

    Product attachments linked in ICM (data sheets, manuals, certifications) are shown as downloadable cards with an icon derived from the file extension; the section disappears when none are linked.

    IntershopReady Supported Through ICM B2C + B2B
  • Prices, promotions and strike-through prices

    The ICM price is shown with a struck-through reference price and savings percentage when discounted, plus a scaled tier-price table; promotions are resolved via /promotions/{id} and honour the disableMessages flag.

    IntershopReady Supported Through ICM B2C + B2B
  • Availability and shipment information

    Availability combines ICM's inStock and availability flags to drive the buy box, and the dispatch lead time renders as "ships in X-Y working days" from the readyForShipmentMin/Max bounds.

    IntershopReady Supported Through ICM B2C + B2B
  • Sales units and minimum/step quantities

    Next to the price, a note surfaces the packaging constraints from ICM: sales unit, minimum order quantity and order step; it appears only when those fields are populated.

    IntershopReady Supported Through ICM B2C + B2B
  • Ratings, reviews and review submission

    Behind the rating feature flag, ICM reviews are loaded server-side with a star average, a form posts a new review through the BFF, and the aggregated rating feeds the product JSON-LD.

    IntershopReady Supported Optional B2C
  • Cross-sell and recommendations

    Recommendations are resolved server-side from ICM's /products/<sku>/links (cross_selling, up_selling, accessories, replacement, similar), falling back to same-category products when the catalogue configures none.

    IntershopReady Supported Through ICM B2C + B2B
  • Stock and price notifications

    A signed-in user subscribes from the product page: a back-in-stock alert on an out-of-stock product, and a price-drop alert with a threshold on an available one, both emailed via ICM.

    IntershopReady Supported Optional B2C + B2B
  • Tacton/CPQ product configurator

    Behind the tacton feature flag and an eligible-SKU list, the /configure page drives the CPQ wizard (session start, value commit, step navigation, submit-to-cart); saved-config resume and conflict resolution still need completion.

    IntershopReady Supported Optional B2B

Basket, pricing & checkout

From mini basket to order confirmation, including B2B constraints.

  • Header mini basket

    A header popover that auto-opens for 2.5 s after each add, with an optimistic badge counter backed by a client-side store and a line preview fed by the client-side data cache.

    IntershopReady Supported Included B2C + B2B
  • Add, update and remove basket lines

    Lines are managed by ICM line id (not SKU) through the basket BFF: POST to add, PATCH to change quantity, DELETE to remove, with the basket cache refreshed after each mutation.

    IntershopReady Supported Included B2C + B2B
  • Basket-rule validation

    The basket is validated server-side by ICM per scope (stock, line count, addresses) via POST /baskets/-/validations; ICM's transient promotion and info messages surface in a dedicated banner with sanitised HTML.

    IntershopReady Supported Through ICM B2C + B2B
  • Coupons and promotions

    Promotion codes are added and removed through ICM promotioncodes; the discount stays computed by ICM in the basket totals, and invalid or inactive codes (HTTP 422) bubble up as a clean validation error in the form.

    IntershopReady Supported Through ICM B2C + B2B
  • Quick order by SKU and quantity

    Feature-flagged B2B extension: a list of SKU + quantity rows added in bulk, in parallel, isolating failures line by line, with each failure reported by SKU without blocking the successful adds.

    IntershopReady Supported Optional B2B
  • CSV import for quick order

    Import of a two-column CSV (SKU, quantity), with auto-detection of comma or semicolon separators and an optional header row, then a fail-soft add to basket: failing rows are listed without cancelling the rest.

    IntershopReady Supported Optional B2B
  • Billing and shipping addresses

    Checkout loads ICM addresses, lets users pick a separate billing address and enter a new one directly in the funnel.

    IntershopReady Supported Through ICM B2C + B2B
  • Guest checkout

    Guest checkout is implemented: the buyer provides their email and billing/shipping addresses (guest-address) and orders without creating an account.

    IntershopReady Supported Through ICM B2C
  • Shipping methods and desired delivery date

    Eligible methods are loaded from ICM (eligible-shipping-methods) and applied via PATCH commonShippingMethod; the desired delivery date is persisted as an ICM basket attribute and floored to today at the earliest.

    IntershopReady Supported Through ICM B2C + B2B
  • Click & Collect with store locator

    Feature-flagged B2C store locator: ICM store locations are prefetched server-side by country, augmented with browser geolocation and Nominatim reverse-geocoding to pre-fill the filters and run the search automatically.

    IntershopReady Supported Optional B2C
  • Customer purchase-order reference

    The B2B buyer's external order number is persisted to the ICM basket field externalOrderReference via PATCH (auto-saved on blur), then echoed read-only on the checkout review page.

    IntershopReady Supported Through ICM B2B
  • Cost centre and merchant message

    Cost-centre picker scoped to the buyer's eligible centres (PATCH costCenter) and a free-text merchant message persisted as the ICM basket attribute messageToMerchant; both hidden for B2C customers with no data.

    IntershopReady Supported Through ICM B2B
  • Standard payments and PSP parameters

    Eligible payment methods are loaded from ICM; parameterised methods (card/IBAN) render a form that validates the ICM constraints, creates the payment instrument and attaches it to the basket. Redirect PSPs stay behind a flag.

    IntershopReady Supported Through ICM B2C + B2B
  • Redirect-based payments

    Hosted-page methods (PayPal, PSP) are detected via ICM's Redirect capability but stay disabled behind the payment-redirect feature flag (off by default); the return path handles cancel and failure outcomes with a toast.

    IntershopReady Partial Optional B2C + B2B
  • Order confirmation and tracking

    After ordering, the confirmation page shows the real order number and clears the orders cache; tracking renders a five-step timeline anchored on the ICM creation date, ready to fold in real carrier webhooks (DPD, Colissimo, DHL).

    IntershopReady Supported Included B2C + B2B

Customer account & retention

Self-service capabilities for consumer and business buyers.

  • Account registration and optional approval

    The BFF creates a PrivateCustomer (or a business SMBCustomer) in ICM with captcha validation; consumers are logged in immediately, while company accounts are routed to an approval screen pending administrator validation.

    IntershopReady Supported Through ICM B2C + B2B
  • Login, logout and forgotten password

    Login exchanges credentials for an ICM OAuth2 token kept in an httpOnly cookie and merges the anonymous basket; logout clears the tokens, and forgotten-password calls ICM /security/reminder, always returning 200 to prevent enumeration.

    IntershopReady Supported Included B2C + B2B
  • Profile and personal preferences

    The profile loads the current user and saves edits via a PATCH on /users/me; the preferences page resolves language, currency and newsletter granularity server-side so the form ships with the right defaults, with no client flash.

    IntershopReady Supported Included B2C + B2B
  • Address management

    The address book reads and writes /customers/-/addresses (or /privatecustomers for consumers) through the secure BFF, with a country-driven validation schema and cache refresh on every create or delete.

    IntershopReady Supported Through ICM B2C + B2B
  • Saved payment instruments

    Saved instruments are rendered from /users/me/payments through the BFF session, showing masked references with on-demand deletion; adding a new method stays within the checkout flow.

    IntershopReady Supported Through ICM B2C + B2B
  • Order history and details

    The order list comes from ICM through the BFF session, and each detail is server-rendered from fetchRealOrder then adapted into a typed model: lines, addresses, carrier, payment and cost summary.

    IntershopReady Supported Through ICM B2C + B2B
  • Reorder from a previous order

    A single button replays every line of a past order into the current basket in parallel, isolating each individual failure (out-of-stock, removed product) to flag unavailable items without blocking the rest.

    IntershopReady Supported Included B2C + B2B
  • Printable orders

    The order detail triggers the browser's native print, with a layout tuned for paper: actions and badges marked print:hidden drop away, leaving only the order content.

    IntershopReady Supported Included B2C + B2B
  • Multiple wishlists

    Behind a B2C feature flag, signed-in customers manage several lists via the BFF: create, rename, delete, set preferred, plus moving and removing items between lists; anonymous visitors keep a single localStorage list.

    IntershopReady Supported Optional B2C
  • Order templates

    B2B templates are viewed and managed in the account; all their lines add to the basket in one click, with a report of any unavailable items.

    IntershopReady Supported Optional B2B
  • Contextual account dashboard

    The dashboard aggregates orders, basket, addresses and wishlist into summary tiles with a recent-orders feed and quick actions; an organisation section appears only for B2B users, gated on their ICM authorities and the active feature flags.

    IntershopReady Supported Included B2C + B2B
  • Newsletter subscription

    An optional module off by default: the subscription checkbox surfaces in the profile only when the channel setting marketing.newsletterSubscriptionEnabled is active in /configurations, alongside a lazily loaded sign-up block in the footer.

    IntershopReady Supported Optional B2C + B2B

B2B & organisation

Professional purchasing, administration and approval journeys available in the storefront.

  • Organisation user management

    The organisation account lists, creates and edits the customer's B2B users through the customers/-/users BFF route, gated on the ICM manage-users permission carried by the session.

    IntershopReady Supported Optional B2B
  • B2B roles and permissions

    ICM roles are exposed in the organisation account, and each action (create, edit, delete, budgets) is shown only to users holding the matching permission.

    IntershopReady Supported Optional B2B
  • CSV user import

    A CSV upload bulk-creates users: each row carries profile data, APP_B2B role columns and budget fields, then is processed sequentially (create, assign roles, set budget) with per-row progress.

    IntershopReady Supported Optional B2B
  • Recurring budgets and per-order limits

    Each buyer gets a recurring budget over a period (weekly to yearly) plus a single-order limit, set via PUT users/{login}/budgets; ICM tracks spent and remaining amounts server-side.

    IntershopReady Supported Optional B2B
  • Cost centres and buyer assignment

    Cost centres are created with an owner and budget, then buyers are attached to them with their own budget and period through customers/-/costcenters/{id}/buyers.

    IntershopReady Supported Optional B2B
  • CSV cost-centre import

    A CSV upload bulk-creates cost centres (id, name, owner, budget and period), each row firing a sequential POST with per-row status feedback.

    IntershopReady Supported Optional B2B
  • Purchase requisitions

    Buyers view their submitted requisitions and per-line detail; the list is read from users/me/requisitions using the session's real login.

    IntershopReady Supported Optional B2B
  • Approval or rejection with comments

    An approver acts on a requisition via PATCH with an APPROVED or REJECTED status; rejection requires a non-empty comment, validated in the modal before the call reaches ICM.

    IntershopReady Supported Optional B2B
  • Triggering from ICM budgets and rules

    When ICM B2B rules and budgets require validation, the basket surfaces approvalRequired; checkout swaps Place order for Submit for approval, and ICM creates the requisition on submission.

    IntershopReady Supported Through ICM B2B
  • Quote creation from product or basket

    Two entry points start a quote request: an Add-to-quote action on the product page that feeds the active draft, and a whole-basket convert offered only to signed-in B2B users.

    IntershopReady Supported Optional B2B
  • Quote-request editing and submission

    While a quote request is unsubmitted, the buyer adjusts quantities, removes lines and edits name and description in one batched update; submitting turns it into a quote on the ICM side.

    IntershopReady Supported Optional B2B
  • Sales response, acceptance or rejection

    The sales-rep's quote response is read-only, showing the struck-through old price and a validity window; its state (responded, expired, rejected) is computed client-side and the buyer can reject it.

    IntershopReady Supported Optional B2B
  • Quote-to-basket conversion

    A responded quote is added to the basket via POST baskets/{id}/quotes; the resulting lines are then grouped in the basket under a per-quote heading with a dedicated remove action.

    IntershopReady Supported Optional B2B
  • Customer-specific catalogue and pricing

    Because catalogue and product requests carry the B2B session token, ICM applies the customer's contract catalogue and pricing; quantity-tier prices are fetched via productprices and shown in the buy-box.

    IntershopReady Supported Through ICM B2B

Punchout & e-procurement

Dedicated coverage for purchasing through SAP, Ariba, Coupa and other procurement systems.

  • OCI 5 punchout entry

    The /punchout entry point detects OCI parameters (HOOK_URL, USERNAME, PASSWORD), authenticates the buyer via OAuth password grant, then routes on FUNCTION: product detail, price validation or silent background search.

    IntershopReady Supported Optional B2B
  • cXML 1.2 punchout entry

    On receiving cXML parameters (sid, access-token), the procurement-issued token is installed into the session through a dedicated route, then session metadata (ReturnURL, basketId) is loaded before redirecting to the catalogue.

    IntershopReady Supported Optional B2B
  • Basket transfer to procurement system

    A transfer button appears on the basket only when a punchout context is present; it picks the active protocol and ships the basket back to the procurement system, leaving the standard checkout untouched.

    IntershopReady Supported Optional B2B
  • OCI and cXML user management

    The administration area creates and maintains punchout users together with their OCI or cXML settings.

    IntershopReady Supported Optional B2B
  • OCI mapping configuration

    At customer level, each OCI rule (field, transform, formatter) is editable with a sub-editor of ICM-value to procurement-value mappings, with the whole set saved in a single round trip to ICM.

    IntershopReady Supported Optional B2B
  • Per-user cXML configuration

    Because Ariba or Coupa adapters diverge per tenant, cXML configuration is held per user: each entry (name, value, default value, input type) is edited and sent back to ICM via PATCH.

    IntershopReady Supported Optional B2B
  • cXML session and access-token handling

    The pre-issued access token is set as an httpOnly cookie through a route guarded by a same-origin check, which gates reading the ICM session metadata; with no refresh token, session lifetime follows the procurement token's expires_in.

    IntershopReady Supported Optional B2B
  • Secure return to HOOK_URL / ReturnURL

    The return to the procurement system first validates the target URL (HTTPS or same origin), then posts a self-submitting form: an OCI attribute array to the HOOK_URL, or an XML PunchOutOrderMessage in a cXML-urlencoded field to the ReturnURL.

    IntershopReady Supported Optional B2B

Integrations & operations

Extension points required for production-grade operations.

  • Server-side ICM REST API consumption

    A single server-side transport calls the ICM REST API (/INTERSHOP/rest/WFS), handling locale and currency via matrix parameters and a per-resource Accept header, without exposing ICM to the browser.

    IntershopReady Supported Included B2C + B2B
  • Domain-specific API modules

    Each ICM domain (basket, products, orders, quotes, requisitions) has its own server module that calls the transport and normalises the JSON response into a typed model before rendering.

    IntershopReady Supported Included B2C + B2B
  • Consistent ICM error handling

    ICM errors are converted into a single type carrying the status, code and structured body; the BFF wrapper passes through business 4xx codes and masks infrastructure failures behind a clean 502.

    IntershopReady Supported Included B2C + B2B
  • Typed forms and shared validation

    Forms combine the form layer and Zod; a central field library holds the validation schema and display metadata, shared between rendering and input checking.

    IntershopReady Supported Included B2C + B2B
  • Optional GTM, GA or Tealium

    A tracking layer pushes e-commerce events into a GTM-, GA4- or Tealium-compatible dataLayer; it activates only when the flag is on, the container id configured and analytics consent granted.

    IntershopReady Supported Optional B2C + B2B
  • Consent-aware optional Sentry

    The Sentry SDK is dynamically imported only when the flag, analytics consent and a DSN are all present; without a DSN or consent, error capture stays inert and out of the bundle.

    IntershopReady Supported Optional B2C + B2B
  • Application health check

    The server in production mode answers hosting-platform probes directly; environment variables are validated by validation schemas on first request, failing a misconfigured deployment early.

    IntershopReady Supported Included B2C + B2B
  • Container-ready and self-hostable build

    The standard build (compile then start) deploys on cloud platforms or self-hosting; all ICM, identity and CDN configuration flows through environment variables, with no platform lock-in.

    IntershopReady Supported Included B2C + B2B
  • Universal Commerce Protocol / agentic checkout

    An off-by-default REST scaffolding exposes agentic checkout sessions under /api/ucp with Zod validation schemas, idempotency and JWT verification; a cookie-free ICM layer creates real baskets and orders, with graceful fallback.

    IntershopReady Supported Optional B2C + B2B

Accessibility & quality

Technical safeguards to maintain quality over time.

  • Semantic HTML and keyboard navigation

    Product listings render as ul[role=list], search exposes a keyboard-driven ARIA combobox (arrow keys, aria-activedescendant, Escape) and checkout radio groups tie to their heading via aria-labelledby.

    IntershopReady Supported Included B2C + B2B
  • Skip link and focus management

    A skip link, the first focusable element on every page, targets #main-content and moves focus there programmatically (WCAG 2.4.1); a global :focus-visible indicator traces the keyboard path.

    IntershopReady Supported Included B2C + B2B
  • Accessible form labels, errors and states

    Fields share a single component wiring label, aria-required, aria-invalid and aria-describedby to the error message; the form layer and Zod handle validation, and buttons carry aria-busy on submit.

    IntershopReady Supported Included B2C + B2B
  • Reduced motion support

    A global prefers-reduced-motion rule neutralises animations, transitions and view transitions; in script, animated navigations also check matchMedia before triggering an effect.

    IntershopReady Supported Included B2C + B2B
  • Contrast and centralised design tokens

    Colours, radii and shadows are defined as design tokens (CSS variables), with a centralised brand accent.

    IntershopReady Supported Included B2C + B2B
  • Unit and integration tests

    Targeted specs verify critical logic without a real browser: OCI punchout function dispatch, address validation, search suggestions and accessibility-audit regressions.

    IntershopReady Supported Included B2C + B2B
  • Playwright end-to-end scenarios

    Critical journeys are automated with Playwright across public pages, account, basket, checkout and B2B features.

    IntershopReady Supported Included B2C + B2B

FAQ

Frequently asked questions

Which capabilities are covered?

B2C and B2B capabilities, SEO, performance, PWA, CMS, checkout, punchout and architecture. The Features page provides a searchable, filterable matrix of the support level for each.

Are all features available in every stack?

Yes: Next.js, Nuxt and Angular SSR share the same functional scope. Only the frontend technology differs, not the business capabilities.

Is advanced B2B (organisations, punchout, Tacton) supported?

Yes: organisations, roles, budgets, quotes and requisitions, OCI/cXML punchout and the Tacton CPQ configurator are supported for B2B scenarios.