Business meets technology

A storefront you can explore. An integration you can understand.

ai-commerce is a demo showcase of a modern shopping experience connected to SAP S/4HANA. It demonstrates how customer journeys, business processes, and cloud services fit together. It is not a production online shop.

Demo only. Not a real retail service.

Payment is mocked: this website does not process a real payment. It is not an offer to sell or deliver goods. Prices, product details, and displayed orders are for demonstration, not commercial commitments.

Demo does not mean disconnected. Confirming checkout can create a sales order in the connected SAP system. Use only an authorized test account and approved test data. Do not enter real payment details, sensitive personal information, or a password you use elsewhere.

Stock availability is currently not displayed or checked locally. Being able to add an item to a cart does not imply it is in stock; SAP still decides whether an order can be accepted.

This is a changing showcase, without production availability or fulfillment guarantees. Catalog updates, account linking, and orders depend on the connected systems and their configuration.

The business view

One customer journey, connected processes

The goal is to show a flexible customer-facing storefront with SAP as the connected enterprise system for product master data, business partners, and sales orders. This is a custom Next.js and NestJS application aligned with commerce patterns, not a hosted SAP Commerce Cloud installation.

Discover the catalog

Browse products, search by keyword, explore categories, and open product details. The storefront lists SAP-linked products with a valid selling price.

Explore products

Build a shopping cart

Add products, change quantities, and remove items before checking out. You can start as a guest; your cart is carried over when you register or sign in.

Open your cart

Try the order journey

Sign in, enter test shipping and billing details, select the mock payment method, and review your order. Checkout requires an existing SAP business partner matched to your account email.

Explore checkout

Explore your account

View a linked business partner profile and order history from S/4HANA. Registration creates a storefront account, not a new SAP business partner. Accounts linked to the same partner share that partner’s order history.

View your profile

The technical view

How a request reaches the application

The demo runs in AWS Stockholm (eu-north-1). The browser uses one HTTPS domain for the storefront and API. The following diagram illustrates the architecture; it is not a live system monitor.

  1. Your browser

    Opens mhp-ai-commerce.duckdns.org over HTTPS.

  2. Global Accelerator

    A stable public IP is published through DuckDNS.

  3. Application Load Balancer

    Terminates TLS and routes by request path.

  4. ECS Fargate

    Runs separate frontend and backend containers.

/api/*

Backend API target group, container port 3001.

All other paths

Next.js frontend target group, container port 3000.

Responses travel back to the browser. Server-rendered frontend requests also use the backend API. HTTP redirects to HTTPS; application container ports are not intended as public entry points.

Browser & storefront

Next.js 15 · React · TypeScript

Product discovery, cart, checkout, and account screens. The UI calls the application API; it never receives SAP technical credentials.

Application API

NestJS · REST · JWT

Authentication, customer permissions, cart logic, price checks, and order orchestration live in the backend. Swagger documents the API.

Application data

PostgreSQL · Prisma · Redis / Valkey

PostgreSQL stores storefront accounts, the synchronized catalog, carts, and local order records. Redis / Valkey supports caching and integration token reuse.

Enterprise integration

SAP Integration Suite · OData · OAuth 2.0

Integration Suite mediates product, business partner, and sales order APIs. A shared technical identity is used for SAP calls; the backend enforces customer-specific access.

What happens behind each journey

Flow 01

Product data comes into the storefront

SAP product master → Integration Suite → local catalog → shopper

  • The backend reads SAP product data through SAP Integration Suite using standard OData APIs. It does not connect directly to S/4HANA.
  • A catalog import runs at startup and repeats five minutes after the previous run finishes. Search and listings read the synchronized PostgreSQL catalog, rather than calling SAP for every search.
  • Products without a valid valuation price are skipped. A failed or incomplete import retains the last-good catalog, so displayed data is not guaranteed to be real-time.

Flow 02

An account is connected to a business partner

Signed-in customer → backend email match → existing SAP partner

  • The backend matches your account email to an existing SAP business partner and exposes the linked profile through its own authenticated API.
  • Product and business partner master data are read-only for the storefront. Registering here does not create or edit business partners in SAP.
  • No match means no linked profile and no order submission. An arbitrary new account is not enough to complete the integrated checkout journey.

Flow 03

An order is confirmed by SAP

Cart → price validation → pending order → SAP acceptance → confirmation

  • At checkout, the backend validates current prices and records a pending order locally before submitting a sales order through Integration Suite.
  • A technical idempotency key supports retry handling to avoid duplicate submissions. The cart is retained while confirmation is uncertain.
  • The storefront only reports successful placement after S/4HANA confirms the order. Rejections and unavailable integrations are shown as errors or pending states, not as successful purchases.

HTTPS and operation, without manual certificate renewal

A Let's Encrypt certificate is installed in AWS Certificate Manager and attached to the load balancer. EventBridge starts a daily CodeBuild job that checks expiry, uses a DuckDNS DNS challenge when renewal is needed, and re-imports the certificate into the same ACM entry with 30 days or less remaining.

Secrets Manager stores integration credentials, the DuckDNS token, and certificate automation state. Container images are stored in Amazon ECR, and application and automation logs are collected in CloudWatch. Certificate automation runs within AWS, independently of GitHub.

Start with the catalog

Browsing and building a guest cart are the easiest ways to explore. For the end-to-end SAP order journey, use an approved test account linked to an existing business partner.

Explore the demo catalog