<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Spryker Documentation</title>
        <description>Spryker documentation center.</description>
        <link>https://docs.spryker.com/</link>
        <atom:link href="https://docs.spryker.com/feed.xml" rel="self" type="application/rss+xml"/>
        <lastBuildDate>Thu, 02 Apr 2026 11:33:30 +0000</lastBuildDate>
        <generator>Jekyll v4.2.2</generator>
        
        
        <item>
            <title>Using the Support Hub</title>
            <description>This document describes how to use the support hub to create and manage your tickets.

## Prerequisites

- Log in at the [Spryker Portal](https://portal.spryker.com). If you don&apos;t have access to the Spryker Portal, please request it using [this form](https://portal.spryker.com/request-access).
- Go the the Support Hub, using the squares menu in the top right.

## Create a new ticket

To create a new ticket, click **Create a ticket** and follow the wizard.

When creating a ticket, please use the recommendations in [Share secrets with the Spryker Support team](/docs/about/all/support/share-secrets-with-the-spryker-support-team.html).


The following are the top-level categories of tickets and their description.

### Report a Problem or Incident

Problems can be reports suspecting a bug or issues with the hosting services. To speed up the resolution of such tickets, make sure to follow [Getting the most out of Spryker support](/docs/about/all/support/getting-the-most-out-of-spryker-support.html) before you submit your request.

### Ask a Question

For any questions about Spryker. We want the knowledge about Spryker to be available to everyone. So, we&apos;ll provide you with a link to [Spryker Community](https://commercequest.space/) to ask your question there. If there are docs on the topic, we will provide a link to that.

### Infrastructure Change Request and Access Management

Request all currently supported standard changes, such as requesting changes to non-production environments sizing, IAM users and environment provisioning.

### Reporting a Problem with Spryker CI

Report an issue with Spryker CI (Buddy), such as errors or issues with its UI or pipeline runs.

### Announce a Go Live

Inform the Customer Success Team about being close to go live.

### Request Help with Spryker ACP

Report an issue with an Spryker ACP connector.

### Request Professional Services

This category offers a selection of professional services we are offering. For example, you may need it when implementing a complex custom feature.

### Request Help with Spryker Code Upgrader

Request help with the Upgrader. These requests are processed by our Upgrader experts.

### Announce High Traffic/Load

Let us know about events or time periods in which you expect a higher than usual load on your production enviornments. We can use this information to check auto scaling settings and evaluate if they need to be adjusted to meet your demands.

### Emergencies

Emergencies are reserved for problems that have significant business impact now or very soon. Emergency tickets regularly start an [escalation](/docs/about/all/support/support-ticket-escalations.html). This category shouldn&apos;t be used to speed up requests or problem reports. Emergencies need to be associated with significant risk or business impact, like revenue, security, or go-lives.

### Info on Change Requests

{% info_block warningBox &quot;Plan your change requests and use the right request form&quot; %}

Because of verification processes and role-based access control mechanisms, change requests take some time to process. Expect 3-5 days of processing time.

Because of contractual reasons, only customers can request new environments or access to environment monitoring, not partners.

{% endinfo_block %}

## Manage tickets

Clicking on **View tickets** opens the list of tickets your organisation has opened. To view the details of a particular ticket, click on the &quot;Details&quot; button. Here you can take a look at the communication history, view the status of the ticket and associated Jira ticket, and inspect the assigned priority.

### Ticket receipts and notifications

When creating a ticket, or when there are meaningful updates to your ticket, like a status change or new comments, you will receive email notifications. Notifications are sent to the email address associated with the Spryker Portal account that was used to create a ticket.

If you are managing multiple projects or have a high volume of tickets and communication with us, knowing the structure of our notifications and receipts can help you prepare forwarding or labelling rules in your email client:


- Ticket confirmation emails are sent when you create a ticket or when its status is updated. Subject pattern:

```bash
Case Receipt - Case ID: {CASE NUMBER} - Customer: {CUSTOMER NAME} - Status: {STATUS}. {TRACKING ID}
```

- Change request confirmation emails are sent when you create a change request. Subject pattern:

```bash
Change Request Receipt - Case ID: {CASE NUMBER} - Customer: {CUSTOMER NAME} - Status: {STATUS}. {TRACKING ID}
```

- ETA update notification emails are sent when the ETA on your ticket is updated. Subject pattern:

```bash
Case ETA Update - Case ID: {CASE NUMBER} - Customer: {CUSTOMER NAME}} - ETA: {ETA}. {TRACKING ID}
```

- Emergency ticket emails are sent when you declare an emergency or your emergency ticket&apos;s status is updated. Subject pattern:

```bash
Emergency {STATUS} - Case ID: {CASE NUMBER} - Customer: {CUSTOMER NAME} {TRACKING ID}
```

- Ticket comment notification emails are sent when there is a new comment in your ticket. Subject pattern:

```bash
Case Comment Notification - Case ID: {CASE NUMBER} - Customer: {CUSTOMER NAME} - Status: {STATUS} {Tracking ID}
```
</description>
            <pubDate>Thu, 02 Apr 2026 00:46:15 +0000</pubDate>
            <link>https://docs.spryker.com/docs/about/all/support/using-the-support-portal.html</link>
            <guid isPermaLink="true">https://docs.spryker.com/docs/about/all/support/using-the-support-portal.html</guid>
            
            
        </item>
        
        <item>
            <title>AI IDE assistants</title>
            <description>&lt;p&gt;This document describes the AI IDE Assistants you can use when developing your Spryker projects. You will read about recommended AI IDE Assistants, how to set up and use them.&lt;/p&gt;
&lt;p&gt;Here are some examples of how you can use AI assistants in your work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generate a code completion suggestion&lt;/li&gt;
&lt;li&gt;Describe a code fragment&lt;/li&gt;
&lt;li&gt;Generate a doc block for a code fragment&lt;/li&gt;
&lt;li&gt;Fix syntax bugs in a code fragment&lt;/li&gt;
&lt;li&gt;Simplify a code fragment&lt;/li&gt;
&lt;li&gt;Generate tests for a code fragment&lt;/li&gt;
&lt;li&gt;IO interactions&lt;/li&gt;
&lt;li&gt;Code generation&lt;/li&gt;
&lt;/ul&gt;
&lt;section class=&apos;info-block info-block--warning&apos;&gt;&lt;i class=&apos;info-block__icon icon-warning&apos;&gt;&lt;/i&gt;&lt;div class=&apos;info-block__content&apos;&gt;
&lt;p&gt;Before using AI tools, consult with your legal department.&lt;/p&gt;
&lt;/div&gt;&lt;/section&gt;
&lt;h2 id=&quot;install-ai-assistants&quot;&gt;Install AI assistants&lt;/h2&gt;
&lt;p&gt;We recommend trying the following assistants:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitHub Copilot&lt;/li&gt;
&lt;li&gt;Qodo (formerly Codium)&lt;/li&gt;
&lt;li&gt;Cursor&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;install-github-copilot&quot;&gt;Install GitHub Copilot&lt;/h3&gt;
&lt;p&gt;GitHub Copilot is an AI pair programmer that helps you write code faster. It draws context from comments and code and suggests individual lines and whole functions instantly.
To start using GitHub Copilot, do the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install the &lt;a href=&quot;https://plugins.jetbrains.com/plugin/17718-github-copilot&quot;&gt;GitHub Copilot extension&lt;/a&gt; in your IDE.&lt;/li&gt;
&lt;li&gt;Authorize yourself as a GitHub user in &lt;strong&gt;Preferences&lt;/strong&gt; &amp;gt; &lt;strong&gt;Languages and Frameworks&lt;/strong&gt; &amp;gt; &lt;strong&gt;GitHub Copilot&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/ai-coding-assistants.md/github-copilot-config.png&quot; alt=&quot;github-copilot-config&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now you can use the GitHub Copilot.&lt;/p&gt;
&lt;h3 id=&quot;install-qodo&quot;&gt;Install Qodo&lt;/h3&gt;
&lt;p&gt;Qodo is an AI-powered tool that helps developers to generate code, tests, and docs.
To set up Qodo, install the &lt;a href=&quot;https://plugins.jetbrains.com/plugin/21206-qodo-gen-formerly-codiumate-&quot;&gt;Qodo Gen plugin&lt;/a&gt;. If the installation is successful, you can see Codiumate in the context menu.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/ai-coding-assistants.md/qodo-menu.png&quot; alt=&quot;qodo-menu&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;install-cursor&quot;&gt;Install Cursor&lt;/h3&gt;
&lt;p&gt;Cursor is an AI powered IDE forked from VS Code. To set up Cursor, follow the steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download Cursor from its &lt;a href=&quot;https://www.cursor.com/&quot;&gt;official website&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Install Cursor from the downloaded file.&lt;/li&gt;
&lt;li&gt;Optional: To save your work, enable autosave files in the settings.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/ai-coding-assistants.md/cursor-autosave.png&quot; alt=&quot;cursor-autosave&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;using-github-copilot&quot;&gt;Using GitHub Copilot&lt;/h2&gt;
&lt;p&gt;Most features of GitHub Copilot can be used as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Highlight a code fragment to process.&lt;/li&gt;
&lt;li&gt;Right-click to open the context menu.&lt;/li&gt;
&lt;li&gt;In the context menu, hover over &lt;strong&gt;GitHub Copilot&lt;/strong&gt; and click the needed option.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Generate suggestions based on the existing code in your project:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/ai-coding-assistants.md/github-copilot-suggestion.png&quot; alt=&quot;github-copilot-suggestion&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Explain a code fragment:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/ai-coding-assistants.md/github-copilot-description.png&quot; alt=&quot;github-copilot-description&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Generate doc blocks and add comments:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/ai-coding-assistants.md/github-copilot-generate-docs.png&quot; alt=&quot;github-copilot-generate-docs&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Generate suggestions for fixing syntax bugs:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/ai-coding-assistants.md/github-copilot-fix-syntax-bugs.png&quot; alt=&quot;github-copilot-fix-syntax-bugs&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Refactor a code fragment:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/ai-coding-assistants.md/github-copilot-refactor-code.png&quot; alt=&quot;github-copilot-refactor-code&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Generate tests:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/ai-coding-assistants.md/github-copilot-generate-tests.png&quot; alt=&quot;github-copilot-generate-tests&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Interact with GitHub Copilot using prompts:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/ai-coding-assistants.md/github-copilot-io-interaction.png&quot; alt=&quot;github-copilot-io-interaction&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;generating-tests-using-qodo&quot;&gt;Generating tests using Qodo&lt;/h2&gt;
&lt;p&gt;When it comes to generating tests, Qodo offers a more flexible configuration and a wider range of test scenarios compared to GitHub Copilot. Here’s an example of tests generated with Qodo:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/ai-coding-assistants.md/quodo-generate-tests.png&quot; alt=&quot;quodo-generate-tests&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;code-generation-using-cursor&quot;&gt;Code generation using Cursor&lt;/h2&gt;
&lt;p&gt;Cursor AI offers context-aware suggestions by considering the bigger picture within the codebase. This enables it to deliver more accurate and well-structured recommendations, in contrast to GitHub Copilot, which mainly focuses on real-time suggestions based on the specific line of code you’re working on. It’s great at generating basic code and significantly saves time, especially when you need to create something from scratch.&lt;/p&gt;
&lt;p&gt;Here’s an example of code generated with Cursor:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/ai-coding-assistants.md/cursor-generate-code.png&quot; alt=&quot;cursor-generate-code&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;ai-ide-assistants&quot;&gt;AI IDE assistants&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/docs/dg/dev/ai/ai-assistants/spryker-engineer-gpt&quot;&gt;Spryker Engineer GPT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/docs/dg/dev/ai/ai-assistants/spryker-k6-performance-assistant-gpt&quot;&gt;Spryker K6 Performance Assistant GPT&lt;/a&gt;: Assists with generating K6 performance test scripts from provided API endpoints&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/docs/dg/dev/ai/ai-assistants/spryker-devqa-assistant-gpt&quot;&gt;Spryker DevQA Assistant GPT&lt;/a&gt;: Assists in DevQA tasks by providing comprehensive QA checklists and insights into feature and module mappings and dependencies&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/docs/dg/dev/ai/ai-assistants/spryker-cypress-e2e-assistant-gpt&quot;&gt;Spryker Cypress E2E Assistant GPT&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
            <pubDate>Wed, 01 Apr 2026 18:12:39 +0000</pubDate>
            <link>https://docs.spryker.com/docs/dg/dev/ai/ai-assistants/ai-ide-assistants.html</link>
            <guid isPermaLink="true">https://docs.spryker.com/docs/dg/dev/ai/ai-assistants/ai-ide-assistants.html</guid>
            
            
        </item>
        
        <item>
            <title>Install the Marketplace Product feature</title>
            <description>{% include pbc/all/install-features/latest/marketplace/install-the-marketplace-product-feature.md %} &lt;!-- To edit, see /_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-feature.md --&gt;
</description>
            <pubDate>Wed, 01 Apr 2026 14:27:13 +0000</pubDate>
            <link>https://docs.spryker.com/docs/pbc/all/product-information-management/latest/marketplace/install-and-upgrade/install-features/install-the-marketplace-product-feature.html</link>
            <guid isPermaLink="true">https://docs.spryker.com/docs/pbc/all/product-information-management/latest/marketplace/install-and-upgrade/install-features/install-the-marketplace-product-feature.html</guid>
            
            
        </item>
        
        <item>
            <title>Update the INSPINIA theme in the Back Office</title>
            <description>The Spryker Back Office uses the INSPINIA admin theme for styling. If your project uses an older INSPINIA version, update to modernize the UI foundation and reduce front-end maintenance overhead.

To update the INSPINIA theme to version 5.0.0 in the Back Office, complete the following steps:

## 1. Update required modules

Update minor versions first:

```bash
composer update --ignore-platform-req=ext-grpc spryker/acl spryker/agent-gui spryker/analytics-gui spryker/api-key-gui spryker/availability-gui spryker/category-gui spryker/category-image-gui spryker/cms spryker/cms-block-category-connector spryker/cms-block-gui spryker/cms-block-product-connector spryker/cms-content-widget spryker/cms-gui spryker/cms-slot-block-gui spryker/cms-slot-block-product-category-gui spryker/cms-slot-gui spryker/collector spryker/comment-gui spryker/comment-sales-connector spryker/company-business-unit-gui spryker/company-gui spryker/company-gui-extension spryker/company-role-gui spryker/company-unit-address-gui spryker/company-unit-address-gui-extension spryker/company-unit-address-label spryker/company-user-gui spryker/configurable-bundle-gui spryker/content-file-gui spryker/content-gui spryker/content-navigation-gui spryker/content-product-gui spryker/content-product-set-gui spryker/country spryker/country-gui spryker/currency-gui spryker/customer spryker/customer-group spryker/customer-note-gui spryker/customer-user-connector-gui spryker/dashboard spryker/data-import-merchant-portal-gui spryker/development spryker/discount spryker/discount-promotion spryker/dynamic-entity-gui spryker/file-manager-gui spryker/glossary spryker/locale-gui spryker/merchant-agent-gui spryker/merchant-commission-gui spryker/merchant-gui spryker/merchant-product-offer-gui spryker/merchant-profile-gui spryker/merchant-profile-merchant-portal-gui spryker/merchant-registration-request spryker/merchant-relation-request-gui spryker/merchant-relationship-gui spryker/merchant-relationship-product-list-gui spryker/merchant-relationship-sales-order-threshold-gui spryker/merchant-sales-order-merchant-user-gui spryker/merchant-sales-return-merchant-user-gui spryker/merchant-stock-gui spryker/merchant-user-gui spryker/money spryker/money-gui spryker/multi-factor-auth spryker/navigation-gui spryker/oms spryker/order-custom-reference-gui spryker/payment-gui spryker/price-product-merchant-relationship-gui spryker/price-product-merchant-relationship-merchant-portal-gui spryker/price-product-offer-gui spryker/price-product-schedule-gui spryker/price-product-volume-gui spryker/product-alternative-gui spryker/product-approval-gui spryker/product-attribute-gui spryker/product-barcode-gui spryker/product-category spryker/product-category-filter-gui spryker/product-label-gui spryker/product-list-gui spryker/product-management spryker/product-measurement-unit-gui spryker/product-merchant-portal-gui spryker/product-offer-gui spryker/product-offer-service-point-gui spryker/product-offer-shipment-type-gui spryker/product-offer-validity-gui spryker/product-option spryker/product-relation-gui spryker/product-review-gui spryker/product-search spryker/product-set-gui spryker/queue spryker/refund spryker/sales spryker/sales-order-threshold-gui spryker/sales-reclamation-gui spryker/sales-return-gui spryker/sales-service-point-gui spryker/search spryker/search-elasticsearch-gui spryker/security-gui spryker/shipment spryker/shipment-gui spryker/state-machine spryker/stock-gui spryker/storage spryker/storage-gui spryker/store-context-gui spryker/store-gui spryker/tax spryker/user spryker/user-locale-gui spryker/user-merchant-portal-gui spryker/zed-navigation spryker-feature/self-service-portal
```

Then update major versions:

```bash
composer require --update-with-dependencies --ignore-platform-req=ext-grpc \
spryker-feature/spryker-core:&quot;dev-master as 202602.0&quot; \
spryker-feature/spryker-core-back-office:&quot;dev-master as 202602.0&quot;
```

## 2. Update npm dependencies

```bash
docker/sdk console frontend:project:install-dependencies
```

## 3. Clear the application cache

```bash
docker/sdk console c:e
```

## 4. Build JavaScript and CSS assets

```bash
docker/sdk console frontend:zed:build
```
</description>
            <pubDate>Wed, 01 Apr 2026 14:16:23 +0000</pubDate>
            <link>https://docs.spryker.com/docs/pbc/all/back-office/latest/base-shop/install-and-upgrade/update-inpinia-theme-version-at-back-office.html</link>
            <guid isPermaLink="true">https://docs.spryker.com/docs/pbc/all/back-office/latest/base-shop/install-and-upgrade/update-inpinia-theme-version-at-back-office.html</guid>
            
            
        </item>
        
        <item>
            <title>Release notes 202602.0</title>
            <description>Spryker Cloud Commerce OS is an end-to-end solution for digital commerce. This document contains a business-level description of new features and improvements.

For information about installing Spryker, see [Getting started guide](/docs/dg/dev/development-getting-started-guide).

## B2B Business-Ready Commerce Experiences

### Product Attachments {% include badge.html type=&quot;feature&quot; %}

Introduces out-of-the-box Product Attachments capability commonly required in industrial B2B purchasing.

{% include carousel.html
images=&quot;https://spryker.s3.eu-central-1.amazonaws.com/docs/About/Releases/release-notes-202602/product_attachments_storefront_pdp.png||::https://spryker.s3.eu-central-1.amazonaws.com/docs/About/Releases/release-notes-202602/product_attachments_backoffice_pim.png||&quot;
%}

**Key capabilities**
- Back Office management of product-related documents (for example, datasheets, certificates, manuals).
- Provide external links to product attachments via data import.
- Display and download or view attachments on the product details page.

**Business benefits**
- Supporting buyers&apos; decisions by providing more detailed product information.
- Removes approval bottlenecks and shortens the path from product view to first transaction.

**Documentation**
- [Product Attachments overview](/docs/pbc/all/product-information-management/latest/base-shop/feature-overviews/product-feature-overview/product-attachments-overview.html)
- [Install the Product Attachments feature](/docs/pbc/all/product-information-management/latest/base-shop/install-and-upgrade/install-features/install-the-product-attachments-feature.html)

### Product &amp; Merchant Offer Availability Display {% include badge.html type=&quot;feature&quot; %}

Introduces native, configurable product and merchant offer availability display for B2B Commerce and Marketplace scenarios, reducing customization and increasing buyer confidence at the point of decision.

**Key capabilities**
- Native availability display on the product details page (PDP) and in the cart
- Configurable display logic:
  - Availability indicator only (for example Available / Out of Stock)
  - Exact stock quantity combined with indicator
  - Configuration option for the sort order of merchant offers in the B2B Marketplace
- Built on existing Spryker stock data structures

**Business benefits**
- Buyers see reliable availability information at the point of decision.
- Businesses no longer need custom implementations for basic stock visibility.
- Transparent stock visibility increases direct orders and reduces operational overhead.

**Documentation**
- [Product Availability Display feature overview](/docs/pbc/all/warehouse-management-system/latest/base-shop/product-availability-display-feature-overview)
- [Buy Box feature overview](/docs/pbc/all/offer-management/latest/marketplace/buy-box-feature-overview)

### Backoffice Configuration Framework {% include badge.html type=&quot;feature,early-access&quot; %}

Introduces a structured, extensible framework to expose business-relevant configuration directly in the Spryker Back Office without code changes or redeployments.

**Key capabilities**
- Structured Business Configuration via UI
  - Developers define configuration options in YAML once.
  - The framework automatically renders validated Back Office UI pages.
- Runtime Configuration Without Deployment
  - Configuration changes are applied at runtime, no code change, no pull request, no deployment required.
- Support for Out-of-the-Box and Custom Features. The framework works for:
  - Standard Spryker features
  - Project-specific customizations
- Built-in Validation &amp; Guardrails
  - Business users can only adjust explicitly defined and validated options, preventing misconfiguration.

**Business benefits**
- Faster Time to Change
  - Business teams adjust approved behaviors instantly, no development sprint required.
- Lower Total Cost of Change
  - Reduces repetitive engineering effort for configuration updates and eliminates custom UI builds per feature.
- Faster Experimentation
  - Test different configuration setups (for example display logic, marketplace sorting) without waiting for release cycles.

### B2B-only Mode Enablement

Reduces project setup time for customers and partners who want B2B Commerce only, without Marketplace complexity.

**Key capabilities**
- Added a **guideline and deployment script** to start the unified demo shop in a standardized **B2B Commerce–only mode**, reducing required manual cleanup and configuration.

**Business benefits**
- Faster project initialization for B2B-only projects.
- Lower implementation cost and reduced efforts.
- Clearer positioning and smoother kick-off experience.

**Documentation**
- [Uninstall the Marketplace from B2B Demo Marketplace](/docs/about/all/uninstall-marketplace-from-b2b-demo-marketplace)

### New Industrial Homepage Sample Data {% include badge.html type=&quot;improvement&quot; %}

The new sample data allows you to explore more realistic B2B Commerce journeys and capabilities without needing to import your own data.

**Key capabilities**
- Updated homepage content to industrial goods and services across key blocks (banners, featured categories, featured products, top sellers).

**Business benefits**
- More realistic demos that reflect real industrial buying journeys.
- Faster evaluations by showing realistic catalog and merchandising scenarios out of the box.
- Less manual demo preparation for partners and solution teams.

### UX &amp; Design Improvements for Storefront &amp; Back Office {% include badge.html type=&quot;improvement&quot; %}

Improves clarity, consistency, and perceived quality across core pages and navigation.

{% include carousel.html
   images=&quot;https://spryker.s3.eu-central-1.amazonaws.com/docs/About/Releases/release-notes-202602/Menu Icons.png||::https://spryker.s3.eu-central-1.amazonaws.com/docs/About/Releases/release-notes-202602/Empty_status_page.png||::https://spryker.s3.eu-central-1.amazonaws.com/docs/About/Releases/release-notes-202602/Toast_notifications.png||&quot;
%}

**Key capabilities**
- Redesigned the Back Office 404 page with clear recovery actions and consistent styling, removing technical error output for a smoother user experience.
- Improved empty states for Addresses, Orders, and Returns pages in storefront to guide users with clear next steps and better first-time usability.
- Updated navigation to Google Material Icons for visual consistency with the Merchant Portal.
- Replaced full-width banner of toast notifications with stacked, auto-dismissing toast notifications for lightweight, non-disruptive feedback.
- Fixed Back Office form validation errors showing untranslated message keys (restored translation rendering).

**Business benefits**
- Faster task completion and reduced confusion in Back Office operations.
- Better first-time experience for B2B customers on key storefront pages.
- Higher perceived product quality and consistency for enterprise users.
- Reduced support noise caused by unclear errors and untranslated validation messages.


### PunchOut: cXML Compatibility in Spryker API &lt;span class=&quot;inline-img&quot;&gt;![feature](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/feature.png)&lt;/span&gt;

Enables standardized B2B PunchOut integrations via cXML support.

**Key capabilities**
- Support for **cXML (Commerce XML)** as an additional data exchange format in the Spryker API Platform.
- Documentation and guidance for implementing PunchOut integrations with external eProcurement systems.

**Business benefits**
- Enterprise-ready B2B integration  API Compatibility with leading procurement platforms.
- Simplified implementation of PunchOut scenarios for customers and partners.
- Stronger positioning in complex B2B commerce environments.

**Documentation**
- [PunchOut Development Plan](/docs/integrations/custom-building-integrations/punchout-development-plan)

## Connected, and AI-Enabled Platform

### Spryker AI Foundation: Operable, Structured, and Extensible AI Runtime {% include badge.html type=&quot;early-access,improvement&quot; %}

Enhances the AI Foundation runtime layer to make AI executions easier to operate at scale, safer to integrate into product code, and more extensible for evolving use cases.

**Key capabilities**
- Prompt responses now return **token usage** and **applied AI configuration details** (for example, provider/vendor, model, configuration name, and relevant parameters) for improved transparency and troubleshooting.
- Added **structured response support** aligned with **Spryker Transfers**, enabling validated, contract-based AI outputs rather than fragile free-text parsing.
- Introduced a supported **tool call extension mechanism** for AI Foundation, enabling standardized enrichment of tool call inputs/outputs without project-specific integration workarounds.

**Business benefits**
- Improved cost and performance control through token visibility and configuration traceability.
- More reliable production integrations through typed, validated AI outputs (reduced downstream breakage from phrasing changes).
- Lower long-term maintenance and support effort via a standardized extension mechanism for evolving AI use cases.

**Documentation**
- [AI Foundation](/docs/pbc/all/ai-foundation/latest/ai-foundation.html)
- [Install the AI Foundation module](/docs/dg/dev/ai/ai-foundation/ai-foundation-module.html)
- [Use AI tools with the AiFoundation module](/docs/dg/dev/ai/ai-foundation/ai-foundation-tool-support.html)
- [Use structured responses with the AiFoundation module](/docs/dg/dev/ai/ai-foundation/ai-foundation-transfer-response.html)

### Spryker AI Commerce: Agent Foundations and Smart PIM Improvements {% include badge.html type=&quot;early-access,improvement&quot; %}

Adds foundational capabilities for advanced agent workflows and improves the Back Office Smart PIM with safer, more reliable AI-assisted product description support.

**Key capabilities**
- **Conversation history** support to maintain context across interactions, enabling better multi-step workflows.
- Introduced a **workflow orchestration layer** for predictable multi-step AI executions, including structured transitions, error handling, and auditability.
- Back Office Smart PIM: **AI assistance for product descriptions** directly within abstract and concrete product create and edit pages:
  - Actions to **Translate content** and **Improve content**
  - Review-before-apply workflow to avoid accidental overwrites
- Backoffice Smart PIM: **Clear user feedback when AI is not configured or unavailable**:
  - Validates provider credentials before calling external AI services
  - Shows user-facing error messages instead of silent empty responses
  - Logs operator-friendly errors without exposing secrets
  - UI safeguard disables AI actions with an explanatory tooltip when AI is not configured

**Business benefits**
- Higher adoption and trust in AI features due to clear error states and safer interaction patterns.
- Faster catalog enrichment through translation and content improvement with less manual effort and fewer review loops.
- Foundation for advanced B2B agent scenarios through context continuity and orchestrated workflows.
- Improved governance and auditability through workflow execution traceability.

**Documentation**
- [Smart Product Management](/docs/pbc/all/product-information-management/latest/base-shop/third-party-integrations/smart-product-management/smart-product-management.html)
- [Install Smart Product Management](/docs/pbc/all/product-information-management/latest/base-shop/third-party-integrations/smart-product-management/install-smart-product-management.html)
- [Manage conversation history with the AiFoundation module](/docs/dg/dev/ai/ai-foundation/ai-foundation-conversation-history.html)
- [AI workflow orchestration with state machines](/docs/dg/dev/ai/ai-foundation/ai-foundation-workflow-state-machine.html)

### Spryker AI Dev SDK: Additional MCP Tools for Spryker-Aware AI Development {% include badge.html type=&quot;early-access,improvement&quot; %}

Expands MCP tooling to make Spryker context retrieval, module discovery, documentation grounding, and demo data manipulation faster and more reliable for AI-assisted development.

**Key capabilities**
- Added `getSprykerModuleMap` MCP tool to return **comprehensive module information**, including:
  - Paths and core API components (Facade, Client, Service, Config)
  - Available plugin interfaces and extension points
- Added `getSprykerModules` MCP tool to return a **simplified flat list** of unique module names for efficient discovery and reduced token usage.
- Added a **Spryker documentation** MCP tool supporting:
  - Docs web URL
  - GitHub tree URL for the markdown source
  - GitHub API URL for raw markdown retrieval
- Added **read-only database access** tooling for agents to retrieve required information without manual user intervention (SQL query input).
- Added MCP tools to accelerate **import/demo data workflows**:
  - CSV structure analysis (without loading full content)
  - CSV transform operations (update/replace/append)
  - Row deletion by filter criteria
  - ODS-to-CSV export per sheet (supporting Google Sheets → Spryker import pipelines)

**Business benefits**
- Faster and more accurate AI-assisted development through Spryker-aware context (module APIs, extension points, docs grounding).
- Reduced onboarding time and fewer integration mistakes for developers and agents.
- Improved productivity for solution teams by standardizing CSV/ODS workflows and reducing failed import cycles.
- Lower token usage and faster tool responses due to simplified module discovery outputs.

**Documentation**
- [AI Dev SDK Overview](/docs/dg/dev/ai/ai-dev/ai-dev-overview)
- [AI Dev MCP Server](/docs/dg/dev/ai/ai-dev/ai-dev-mcp-server)

### API Platform improvements {% include badge.html type=&quot;improvement&quot; %}

This release enhances API Platform capabilities to improve your developer experience and reduce manual configuration overhead.

**Key capabilities**
- Enable support for relationships in API Platform.
- Add support for custom validation constraints (FQCN-based) in schema definitions.
- Improve dependency resolution for API Platform packages.
- Add support for Code Buckets.
- Provide API test examples to help you adopt the features more easily.

**Business benefits**
- Generate and validate API resources more cleanly and consistently.
- Reduce the need for manual dependency fixes.
- Improve consistency in your API implementations.
- Accelerate onboarding and increase developer productivity.

**Documentation**
- [Validation Schemas](/docs/dg/dev/architecture/api-platform/validation-schemas.html)
- [Code Buckets](/docs/dg/dev/architecture/api-platform/code-buckets.html)
- [Relationships](/docs/dg/dev/architecture/api-platform/relationships.html)
- [API Test Examples](/docs/dg/dev/architecture/api-platform/testing.html)

### OMS New Visual User Experience {% include badge.html type=&quot;improvement&quot; %}

Spryker transforms the community-driven OMS visualizer into a fully validated and productized capability.

![Screenshot of the OMS visualizer showing order state machine transitions](https://spryker.s3.eu-central-1.amazonaws.com/docs/About/Releases/release-notes-202602/2026-OMS-visualizer.png)

**Key capabilities**
- Provides a streamlined visualization of complex Order State Machines (OMS).

**Business benefits**
- Enables faster OMS iteration cycles and improves clarity when you develop or validate OMS processes.
- Reduces the time you spend debugging OMS flows by providing better visibility and tooling support.

**Documentation**
- [Original Community Contribution](https://github.com/spryker-community/oms-visualizer)
- [Oms Visualizer Release](https://api.release.spryker.com/release-group/6358)

### Messaging and scheduling modernization {% include badge.html type=&quot;improvement&quot; %}

We introduced Symfony Messenger and Symfony Scheduler as modern, flexible alternatives to the current RabbitMQ adapter and scheduling mechanisms in Jenkins.

**Key capabilities**
- Feature toggle that lets you switch between RabbitMQ and Messenger without breaking compatibility.
- Migration path and supporting documentation to help you transition.
- Messenger becomes the default queue adapter.
- Scheduler lets you control the job schedule from within your application.

**Business benefits**
- Gain greater flexibility in queue transport configuration.
- Align scheduling with the Symfony ecosystem using a modern approach.

**Documentation**
- [Symfony Messenger](/docs/dg/dev/integrate-and-configure/integrate-symfony-messenger.html)
- [Symfony Scheduler](/docs/dg/dev/integrate-and-configure/integrate-symfony-scheduler.html)

### Secure handling of customer data in quote requests {% include badge.html type=&quot;improvement&quot; %}

This update improves the quote request storage mechanism to ensure that the system does not unnecessarily persist sensitive customer data in version records.

Previously, the `spy_quote_request_version` table stored the complete quote JSON, which could include full company customer data, including encrypted passwords. Although the passwords were encrypted, storing them outside the dedicated customer table increased the risk of exposure and did not follow the principle of data minimization.

**Key capabilities**
- Removes unnecessary storage of sensitive customer data, such as encrypted passwords, from the `spy_quote_request_version` table.
- Ensures that customer credentials remain stored exclusively in the `spy_customer` table.
- Improves secure data handling in quote request versioning flows that the Storefront triggers.

**Business benefits**
- Reduces the risk of confidential data exposure.
- Strengthens compliance with secure data handling and data minimization principles.
- Improves overall database hygiene and reduces the attack surface.

**Documentation**
- [Quote Request](https://api.release.spryker.com/release-group/6300)

### Platform &amp; Tooling Upgrades {% include badge.html type=&quot;improvement&quot; %}

We have updated critical application and service components to long-term supported versions to ensure continued stability, performance, and compatibility.

**Key capabilities**
- Upgraded PHPUnit to version 12 (full PHP 8.3 support, improved test data handling).
- Upgraded PHPStan to version 2.x to reduce memory consumption and significantly improve performance.
- Upgraded Angular to the latest supported major version 20.

**Business benefits**
- Faster CI pipelines and reduced waiting times for static analysis.
- Continued alignment with PHP ecosystem and Angular support lifecycles.
  - Resolved a vulnerability in `@angular/common` affecting Spryker applications. The issue (CVE-2025-66035) allowed potential XSRF token leakage via protocol-relative URLs in Angular HTTP clients, potentially exposing CSRF tokens to attacker-controlled domains.
- Improved quality assurance and development tooling performance across projects.

**Documentation**
- [Upgrade to Angular 20](https://docs.spryker.com/docs/dg/dev/upgrade-and-migrate/upgrade-to-angular-20.html)
- [Release unlocking the new PHPUnit version](https://api.release.spryker.com/release-group/6334)
- Spryker is fully compatible with PHPStan 2.x, update it at your own schedule.

### Quality, Performance &amp; Stability Fixes {% include badge.html type=&quot;improvement&quot; %}

This release resolves several performance bottlenecks and technical inconsistencies identified in customer projects.

**Key capabilities**
- Improved Stock Data Import performance by removing the usage of `\ProductAbstractCheckExistenceStep` and `\ProductConcreteCheckExistenceStep`, which eliminates unnecessary full database loads.
- Preserved correct HTTP error codes by returning 4xx responses for expected application errors, such as invalid cart operations, instead of 500.
- Optimized customer session validation by removing resource-intensive password hash checks.
- Stabilized OpenTelemetry monitoring and New Relic instrumentation to prevent memory issues and improve trace grouping for Zed and Gateway traffic.
- Fixed concrete product publishing and product filter handling, including whitelist-aware category suggestions and hidden facets, to restore complete and consistent search results.
- Corrected the Data Import CSV reader configuration so that offset and limit options work as expected for partial imports.
- Restored Back Office form validation translations and eliminated redundant SQL execution in category rules.
- Improved cart behavior in the Glue API by merging guest carts with product bundles on login and introducing SKU-level quantity restriction plugins.

**Business benefits**
- Improved backend performance and reduced database and CPU load.
- Delivered more reliable and predictable product search, filtering, and category navigation for end users.
- Enabled more stable imports and storefront builds with safer customizations and improved dependency management.
- Improved Back Office and cart usability to reduce operational overhead and user friction.
- Add guidance to the public Spryker documentation on how to adopt the Cypress boilerplate.

**Documentation**
- See [Spryker Releases](https://api.release.spryker.com/release-history) or use `composer` to update all packages.
- [E2E Testing with Cypress](/docs/dg/dev/guidelines/testing-guidelines/cypress-testing.html)

### Architecture Guidelines &lt;span class=&quot;inline-img&quot;&gt;![improvement](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/improvement.png)&lt;/span&gt;

A set of practical, reusable guidelines to reduce delivery risk, prevent recurring implementation pitfalls, and standardize engineering practices across Spryker projects.

**Key capabilities**
- **APM monitoring and troubleshooting using New Relic**
  - Standardized end-to-end troubleshooting workflow (metrics → transactions → DB queries → traces).
  - Clear mapping of New Relic entities to Spryker applications (Yves, Zed, Glue, Merchant Portal).
  - Practical examples for diagnosing common performance issues.
- **Performance best practices: common challenges and optimization strategies**
  - Documented top recurring performance pitfalls from real projects (symptoms, root cause patterns, proven optimizations).
  - Guidance on recognizing issues via response time, query patterns, and logs.
- **How to start a Spryker project**
  - Step-by-step setup guidance covering project structure, CI/CD basics, team practices, and quality tooling.
  - Focus on &quot;must-do&quot; principles to avoid rework and long-term quality degradation.

**Business benefits**
- Faster onboarding for partners and new project teams through standardized, actionable guidance.
- Reduced escalation rate by addressing known recurring delivery and performance pitfalls early.
- Improved project consistency and upgradeability through repeatable architecture and documentation patterns.
- Better diagnosability and prevention of performance degradation with a shared troubleshooting methodology.

**Documentation**
- [APM — New Relic based troubleshooting](/docs/dg/dev/guidelines/performance-guidelines/apm-newrelic-based-troubleshooting.html)
- [Perfromance best practices](/docs/dg/dev/guidelines/performance-guidelines/performance-guidelines.html)
- [Updated how to start Spryker project](/docs/dg/dev/development-getting-started-guide.html)

### Architecture as Code for Spryker projects &lt;span class=&quot;inline-img&quot;&gt;![improvement](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/improvement.png)&lt;/span&gt;

Live, version-controlled architecture documentation using industry standards that scales with your codebase. Enables team collaboration, decision traceability, and onboarding without custom tooling or specialized training.

**Key capabilities**
- Ready-to-use architecture templates for living, version-controlled architecture documentation that evolves with your code, based on arc42 (12 sections) and the C4 model (4-level visualization).
- Traceable architectural decision templates through Solution Designs (RFC-style exploration) and ADRs.
- Diagrams as code using Mermaid and PlantUML, with real examples for automated validation, generation, and AI analysis.

**Business benefits**
- Faster onboarding - with globally-recognized standards and all needed architecture documentation in one place - your code
  - Better decision making - RFC-style exploration and full decision history eliminate tribal knowledge
  - Alignment with business - Capture project requirements, trade-offs before implementation, ensuring delivery matches intent. Evolve further with architecture decision records  and Solution designs
  - AI-ready format - Markdown and code-based diagrams enable intelligent automation and documentation generation

**Documentation**
- [Architecture as a Code](/docs/dg/dev/architecture/architecture-as-code.html)

### ERP Integration Template &lt;span class=&quot;inline-img&quot;&gt;![improvement](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/improvement.png)&lt;/span&gt;

Provides a standardized foundation for building ERP integrations without starting from scratch.

**Key capabilities**
- Reusable module structure (Client and Shared layers) with transfer object definitions.
- Pre-built base classes (`BaseRequest`, `BaseRequestBuilder`) for:
  - Request handling and timeout configuration
  - Headers and authentication
  - Logging and error management
- Request/response mapper pattern for ERP-specific format transformations.
- Guzzle client configuration guidance with environment-specific credentials and connection setup.

**Business benefits**
- Faster ERP integration development with reduced boilerplate.
- Consistent architecture across projects and ERP systems.
- Lower risk of integration defects due to standardized logging and error handling.
- Improved maintainability and onboarding for new ERP integrations.

**Documentation**
- [ERP Integration Template](/docs/integrations/custom-building-integrations/erp-integration-template.html)

### Payment Integration Template (PSP Template) &lt;span class=&quot;inline-img&quot;&gt;![improvement](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/improvement.png)&lt;/span&gt;

Delivers a production-ready template repository for building payment service provider (PSP) integrations.

**Key capabilities**
- Covers all mandatory integration touchpoints with the SCCOS that must be considered when integrating a payment provider (business logic, configurations, OMS, frontend forms)  and payment lifecycle handling, with practical implementation examples.
- Support for core payment flows: **Authorize → Capture → Cancel**.
- Two payment method templates (for example Credit Card, Invoice) including:
  - OMS state machines for synchronous and asynchronous authorization.
- Webhook infrastructure:
  - Payload logging
  - Signature validation
  - Route provider setup
- Data import configuration with payment method CSV templates and glossary translations (EN, DE).
- Automated module renaming and setup guidance to accelerate project adoption.
- Comprehensive integration checklist to ensure no required system part is missed during implementation.

**Business benefits**
- Reduced development time for new PSP integrations
- Consistent payment architecture and OMS alignment across projects.
- Improved reliability through standardized webhook and lifecycle handling.
- Clear separation of module developer and project integrator responsibilities.

**Documentation**
- [PSP Integration Template](/docs/integrations/custom-building-integrations/psp-integration-template.html)

### New Algolia Eco-Module Integration &lt;span class=&quot;inline-img&quot;&gt;![improvement](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/improvement.png)&lt;/span&gt;

Replaces the legacy Algolia App model with a code-visible eco-module.

**Key capabilities**
- New Algolia integration as a standard Spryker eco-module.
- Full code visibility and extensibility for customers and partners.
- Support for current Algolia Search license–related features.
- Updated documentation for integration and customization.

**Business benefits**
- Increased flexibility and customization options.
- Reduced dependency on black-box App Spryker support and evolution implementations.
- Better alignment with project-level architecture and extension patterns.

**Documentation**
- [Integrate Algolia](/docs/pbc/all/search/latest/base-shop/third-party-integrations/algolia/integrate-algolia.html)

## Efficient and Flexible Cloud Foundation

### Cloud Self-Service Portal update {% include badge.html type=&quot;improvement&quot; %}

The Cloud Self-Service Portal is now available on a new platform that improves usability and accelerates value delivery.

{% include carousel.html
   images=&quot;
   https://spryker.s3.eu-central-1.amazonaws.com/docs/About/Releases/release-notes-202602/cloud-hub1.png||::
   https://spryker.s3.eu-central-1.amazonaws.com/docs/About/Releases/release-notes-202602/cloud-hub2.png||::
   https://spryker.s3.eu-central-1.amazonaws.com/docs/About/Releases/release-notes-202602/cloud-hub3.png||&quot;
%}

**Key capabilities**
- Spryker has moved the Cloud Self-Service Portal to a new platform to provide a better user experience and faster value delivery.
- In the new portal, you can access centralized Single Sign-On (SSO) management.

**Business benefits**
- Provides a structured migration path to Single Sign-On (SSO) to help you simplify access management.

**Portal access** 
- [Customer Portal](https://portal.spryker.com/)

### RabbitMQ 4.1 rollout {% include badge.html type=&quot;improvement&quot; %}

This update completes the rollout of RabbitMQ 4.1 across all platform environments.

**Key capabilities**
- Upgrade to RabbitMQ 4.1 for improved messaging infrastructure.
- Platform-wide rollout to ensure consistency across environments.

**Business benefits**
- Improved stability and performance of asynchronous processing.
- Enhanced scalability for event-driven workloads.
- Reduced operational risk through alignment with the latest supported messaging version.

**Documentation**
- [Docker SDK service configuration](/docs/dg/dev/integrate-and-configure/configure-services.html)
- [System Requirements](/docs/dg/dev/system-requirements/latest/system-requirements.html)

### Security RSS feed: Docker image updates {% include badge.html type=&quot;improvement&quot; %}

This update integrates Docker image security release notes into the official Spryker security RSS feed, ensuring timely notifications for infrastructure updates.

**Key capabilities**
- RSS Feed Integration: Docker image security releases are now automatically published to the security RSS stream (/feed-security.xml)
- Automated Visibility: Real-time visibility of image-related security patches alongside standard application news.

**Business benefits**
- Improved Security Posture: Ensures DevOps and Security teams are immediately alerted to infrastructure-level vulnerabilities and patches.
- Streamlined Compliance: Easier tracking and auditing of container image versions through a centralized, standardized feed.
- Proactive Maintenance: Reduces the window of exposure by eliminating the need to manually check for image updates.

**Documentation**
- [Spryker Security RSS Feed](/feed-security.xml)
- [Release notes](/docs/about/all/releases/product-and-code-releases.html)
</description>
            <pubDate>Wed, 01 Apr 2026 06:14:05 +0000</pubDate>
            <link>https://docs.spryker.com/docs/about/all/releases/release-notes-202602.0.html</link>
            <guid isPermaLink="true">https://docs.spryker.com/docs/about/all/releases/release-notes-202602.0.html</guid>
            
            
        </item>
        
        <item>
            <title>Visual Add to Cart</title>
            <description>Visual Add to Cart lets storefront users upload a product image on the Quick Order page. AI automatically recognizes the products in the image and populates the quick order form with matching catalog items.

For the business overview and storefront usage, see [Visual Add to Cart](/docs/pbc/all/ai-commerce/latest/visual-add-to-cart.html).

## Architecture

The feature is built on the `AiFoundation` abstraction layer, which decouples the image recognition logic from any specific AI provider. The AI model and provider are configured per named configuration entry, so you can swap or reconfigure them without changing application code.

The Yves-side plugin `AiCommerceQuickOrderImageToCartFormPlugin` handles the upload form and orchestrates the workflow. Catalog matching is done via a configurable text-similarity threshold to tolerate minor differences between AI-returned product names and catalog names.

## How it works

1. The user uploads an image on the Quick Order page.
2. The system validates the file format and size.
3. The image is encoded and sent to the AI model via the `AiFoundation` abstraction layer.
4. The AI returns a list of recognized products with quantities.
5. Each recognized product name is searched in the catalog.
6. Matched products are added to the quick order form with their SKU and quantity.
7. Products that are not matched generate a flash notification.

## Configuration

The following options can be configured at the project level in `AiCommerceConfig`:

| CONFIGURATION | DEFAULT | DESCRIPTION |
|---------------|---------|-------------|
| `isQuickOrderImageToCartEnabled()` | `false` | Enables or disables the feature. |
| `getQuickOrderImageToCartSupportedMimeTypes()` | `image/jpeg`, `image/png` | Allowed upload MIME types. |
| `getQuickOrderImageToCartMaxFileSizeInBytes()` | `10485760` (10 MB) | Maximum upload file size. |
| `getQuickOrderImageToCartMaxProducts()` | `20` | Maximum number of products recognized per image. |
| `getQuickOrderImageToCartTextSimilarityThresholdPercent()` | `30` | Minimum word-overlap percentage required to consider a catalog match valid. |
| `getQuickOrderImageToCartAiConfigurationName()` | `null` | Named AI model configuration identifier used to look up the provider config from `AiFoundation`. When `null`, the default configuration is used. |

## Install

[Install Visual Add to Cart](/docs/dg/dev/ai/ai-commerce/visual-add-to-cart/install-visual-add-to-cart.html)
</description>
            <pubDate>Tue, 31 Mar 2026 10:58:44 +0000</pubDate>
            <link>https://docs.spryker.com/docs/dg/dev/ai/ai-commerce/visual-add-to-cart/visual-add-to-cart.html</link>
            <guid isPermaLink="true">https://docs.spryker.com/docs/dg/dev/ai/ai-commerce/visual-add-to-cart/visual-add-to-cart.html</guid>
            
            
        </item>
        
        <item>
            <title>Visual Add to Cart</title>
            <description>Visual Add to Cart lets buyers upload a product image on the Quick Order page. AI automatically recognizes the products in the image and pre-fills the quick order form with matching SKUs and quantities.

**Use case:** A buyer photographs a shelf, a product list, or product packaging. The system identifies the products and quantities visible in the image, finds matching SKUs in the catalog, and pre-fills the quick order form — enabling rapid bulk ordering without manual entry.

Accepted file formats: JPEG and PNG (up to 10 MB).

## Use Visual Add to Cart on the Storefront

1. Open the Quick Order page.
2. Click the image upload button.
3. Upload a photo where one or more products are recognizable.
   The recognized products are pre-filled in the quick order form.
4. Review the pre-filled items and adjust if needed.
5. Add the items to cart.

## Enable Visual Add to Cart

To enable the feature, in the Back Office, go to **AI Commerce&amp;nbsp;&lt;span aria-label=&quot;and then&quot;&gt;&gt;&lt;/span&gt;&amp;nbsp;Quick Order&amp;nbsp;&lt;span aria-label=&quot;and then&quot;&gt;&gt;&lt;/span&gt;&amp;nbsp;Visual Add to Cart** and turn it on.

## Developer resources

| RESOURCE | DESCRIPTION |
|----------|-------------|
| [Visual Add to Cart](/docs/dg/dev/ai/ai-commerce/visual-add-to-cart/visual-add-to-cart.html) | Technical overview: architecture, configuration options, and how the feature integrates with AiFoundation. |
| [Install Visual Add to Cart](/docs/dg/dev/ai/ai-commerce/visual-add-to-cart/install-visual-add-to-cart.html) | Step-by-step installation guide. |
</description>
            <pubDate>Tue, 31 Mar 2026 10:58:44 +0000</pubDate>
            <link>https://docs.spryker.com/docs/pbc/all/ai-commerce/latest/visual-add-to-cart.html</link>
            <guid isPermaLink="true">https://docs.spryker.com/docs/pbc/all/ai-commerce/latest/visual-add-to-cart.html</guid>
            
            
        </item>
        
        <item>
            <title>Install Visual Add to Cart</title>
            <description>Visual Add to Cart lets storefront users upload a product image on the Quick Order page to automatically recognize products and populate the order form. This document describes how to install the Visual Add to Cart feature.

## Install the feature core

Follow the steps in the following sections to install the Visual Add to Cart feature core.

### Prerequisites

Install the required features:

| NAME | VERSION | INSTALLATION GUIDE |
|------|---------|-------------------|
| AI Commerce | {{page.release_tag}} | [Install AI Commerce](/docs/dg/dev/ai/ai-commerce/install-ai-commerce.html) |
| Quick Order Page | {{page.release_tag}} | |
| Catalog | {{page.release_tag}} | |

### 1) Add translations

Append the glossary according to your configuration:
`data/import/common/common/glossary.csv`

```csv
ai-commerce.quick-order-image-to-cart.image-order.errors.ai-request-failed,AI request failed. Please try again.,en_US
ai-commerce.quick-order-image-to-cart.image-order.errors.ai-request-failed,KI-Anfrage fehlgeschlagen. Bitte versuchen Sie es erneut.,de_DE
ai-commerce.quick-order-image-to-cart.image-order.errors.ai-response-invalid,The AI returned an invalid response. Please try again.,en_US
ai-commerce.quick-order-image-to-cart.image-order.errors.ai-response-invalid,Die KI hat eine ungültige Antwort zurückgegeben. Bitte versuchen Sie es erneut.,de_DE
ai-commerce.quick-order-image-to-cart.image-order.errors.no-products-recognized,No products could be recognized in the image.,en_US
ai-commerce.quick-order-image-to-cart.image-order.errors.no-products-recognized,Es konnten keine Produkte im Bild erkannt werden.,de_DE
ai-commerce.quick-order-image-to-cart.image-order.errors.product-limit-exceeded,The image contains too many products. Please upload an image with fewer products.,en_US
ai-commerce.quick-order-image-to-cart.image-order.errors.product-limit-exceeded,Das Bild enthält zu viele Produkte. Bitte laden Sie ein Bild mit weniger Produkten hoch.,de_DE
ai-commerce.quick-order-image-to-cart.image-order.errors.invalid-format,The uploaded file format is not supported.,en_US
ai-commerce.quick-order-image-to-cart.image-order.errors.invalid-format,Das hochgeladene Dateiformat wird nicht unterstützt.,de_DE
ai-commerce.quick-order-image-to-cart.image-order.errors.invalid-mime-type,The uploaded file type is not allowed.,en_US
ai-commerce.quick-order-image-to-cart.image-order.errors.invalid-mime-type,Der hochgeladene Dateityp ist nicht zulässig.,de_DE
ai-commerce.quick-order-image-to-cart.image-order.errors.file-too-large,The uploaded file exceeds the maximum allowed size.,en_US
ai-commerce.quick-order-image-to-cart.image-order.errors.file-too-large,Die hochgeladene Datei überschreitet die maximal zulässige Größe.,de_DE
ai-commerce.quick-order-image-to-cart.image-order.errors.product-not-found,Product &quot;%name%&quot; could not be found in the catalog.,en_US
ai-commerce.quick-order-image-to-cart.image-order.errors.product-not-found,Produkt &quot;%name%&quot; konnte im Katalog nicht gefunden werden.,de_DE
```

### 2) Set up behavior

Register the following plugin to integrate the feature into the Quick Order page:

| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
|--------|---------------|---------------|-----------|
| AiCommerceQuickOrderImageToCartFormPlugin | Adds the image upload form to the Quick Order page and handles the image-to-cart workflow. | | SprykerFeature\Yves\AiCommerce\Plugin\QuickOrderPage |

**src/Pyz/Yves/QuickOrderPage/QuickOrderPageDependencyProvider.php**

```php
&lt;?php

namespace Pyz\Yves\QuickOrderPage;

use SprykerFeature\Yves\AiCommerce\Plugin\QuickOrderPage\AiCommerceQuickOrderImageToCartFormPlugin;
use SprykerShop\Yves\QuickOrderPage\QuickOrderPageDependencyProvider as SprykerQuickOrderPageDependencyProvider;

class QuickOrderPageDependencyProvider extends SprykerQuickOrderPageDependencyProvider
{
    /**
     * @return array&lt;\SprykerShop\Yves\QuickOrderPageExtension\Dependency\Plugin\QuickOrderFormPluginInterface&gt;
     */
    protected function getQuickOrderFormPlugins(): array
    {
        return [
            new AiCommerceQuickOrderImageToCartFormPlugin(),
        ];
    }
}
```

{% info_block warningBox &quot;Verification&quot; %}

On the Storefront Quick Order page, make sure the image upload component is displayed and that uploading a product image populates the order form with recognized products.

{% endinfo_block %}

### 3) Configure AiFoundation for Visual Add to Cart

For a base AiFoundation setup, see [Configure AiFoundation](/docs/dg/dev/ai/ai-commerce/install-ai-commerce.html#2-configure-aifoundation).

Using a dedicated AI configuration for Visual Add to Cart is recommended because each named configuration is tracked separately in the AiFoundation audit log. This lets you isolate and review all AI calls made by the image recognition flow independently from other AI features in your project.

To use a dedicated AI model configuration for Visual Add to Cart instead of the default one, follow these steps:

1. In `config/Shared/config_ai.php`, add a named configuration entry using `AiCommerceConstants::VISUAL_ADD_TO_CART_CONFIGURATION_NAME` as the key:

```php
$config[\Spryker\Shared\AiFoundation\AiFoundationConstants::AI_CONFIGURATIONS][\SprykerFeature\Shared\AiCommerce\AiCommerceConstants::VISUAL_ADD_TO_CART_CONFIGURATION_NAME] = $openAiConfiguration;
```

2. Return the configuration name from `AiCommerceConfig`:

**src/Pyz/Yves/AiCommerce/AiCommerceConfig.php**

```php
&lt;?php

namespace Pyz\Yves\AiCommerce;

use SprykerFeature\Shared\AiCommerce\AiCommerceConstants;
use SprykerFeature\Yves\AiCommerce\AiCommerceConfig as SprykerAiCommerceConfig;

class AiCommerceConfig extends SprykerAiCommerceConfig
{
    public function getQuickOrderImageToCartAiConfigurationName(): ?string
    {
        return AiCommerceConstants::VISUAL_ADD_TO_CART_CONFIGURATION_NAME;
    }
}
```

### 4) Enable the feature

Enable the feature in the Back Office:

1. In the Back Office, go to **AI Commerce&amp;nbsp;&lt;span aria-label=&quot;and then&quot;&gt;&gt;&lt;/span&gt;&amp;nbsp;Quick Order&amp;nbsp;&lt;span aria-label=&quot;and then&quot;&gt;&gt;&lt;/span&gt;&amp;nbsp;Visual Add to Cart**.
2. Enable it.
3. Click **Save**.

{% info_block warningBox &quot;Verification&quot; %}

On the Storefront Quick Order page, make sure the image upload button is visible.

{% endinfo_block %}

## Integrate the feature frontend

### 1) Update the Quick Order form template

{% info_block infoBox &quot;Info&quot; %}

Do this step only if you have overridden `quick-order-form.twig` in `QuickOrderPage` module at the project level. If you have not overridden this template, skip to [2) Apply the frontend changes](#2-apply-the-frontend-changes).

{% endinfo_block %}

In `src/Pyz/Yves/QuickOrderPage/Theme/default/components/molecules/quick-order-form/quick-order-form.twig`, make sure the plugin forms loop is placed after the `quick-order-file-upload` molecule include inside `{% raw %}{% block fields %}{% endraw %}`:

```twig
{% raw %}
{% include molecule(&apos;quick-order-file-upload&apos;, &apos;QuickOrderPage&apos;) with {
    data: {
        uploadOrderForm: data.uploadOrderForm,
        fileTemplateExtensions: data.fileTemplateExtensions,
    },
} only %}

{% for pluginForm in embed.pluginForms %}
    &lt;hr&gt;

    {% if pluginForm.vars.template_path is defined %}
        {% include pluginForm.vars.template_path with {
            data: {
                form: pluginForm,
            },
        } only %}
    {% else %}
        {{ form_widget(pluginForm) }}
    {% endif %}
{% endfor %}
{% endraw %}
```

{% info_block warningBox &quot;Warning&quot; %}

If the `{% raw %}{% for pluginForm in embed.pluginForms %}{% endraw %}` loop is placed before or outside the `quick-order-file-upload` include, the Visual Add to Cart upload component will not render on the Quick Order page.

{% endinfo_block %}

### 2) Apply the frontend changes

Apply the frontend changes:

```bash
docker/sdk cli npm install
docker/sdk cli console frontend:project:install-dependencies
docker/sdk cli console frontend:yves:build
```

{% info_block warningBox &quot;Verification&quot; %}

On the Storefront Quick Order page, make sure you can upload a product image and have the recognized products pre-filled in the order form.

{% endinfo_block %}

</description>
            <pubDate>Tue, 31 Mar 2026 10:58:44 +0000</pubDate>
            <link>https://docs.spryker.com/docs/dg/dev/ai/ai-commerce/visual-add-to-cart/install-visual-add-to-cart.html</link>
            <guid isPermaLink="true">https://docs.spryker.com/docs/dg/dev/ai/ai-commerce/visual-add-to-cart/install-visual-add-to-cart.html</guid>
            
            
        </item>
        
        <item>
            <title>Install AI Commerce</title>
            <description>This document describes how to install the AI Commerce base package. Individual AI Commerce features require additional installation steps — see their respective installation guides.

## Prerequisites

Install the required features:

| NAME | VERSION | INSTALLATION GUIDE |
|------|---------|-------------------|
| AiFoundation | {{page.release_tag}} | |

## 1) Install the required modules

Install the required module:

```bash
composer require spryker-feature/ai-commerce --update-with-dependencies
```

## 2) Configure AiFoundation

Add the AI provider configuration:

`config/Shared/config_ai.php`

```php
$openAiConfiguration = [
    &apos;provider_name&apos; =&gt; \Spryker\Shared\AiFoundation\AiFoundationConstants::PROVIDER_OPENAI,
    &apos;provider_config&apos; =&gt; [
        &apos;key&apos; =&gt; getenv(&apos;OPEN_AI_API_TOKEN&apos;) ?: &apos;&apos;, // provide your OpenAi api key
        &apos;model&apos; =&gt; &apos;gpt-4o-mini&apos;,
    ],
];
$config[\Spryker\Shared\AiFoundation\AiFoundationConstants::AI_CONFIGURATIONS] = [
    \Spryker\Shared\AiFoundation\AiFoundationConstants::AI_CONFIGURATION_DEFAULT =&gt; $openAiConfiguration,
];
```

`config/Shared/config_default.php`

```php
require &apos;config_ai.php&apos;;
```
</description>
            <pubDate>Tue, 31 Mar 2026 10:58:44 +0000</pubDate>
            <link>https://docs.spryker.com/docs/dg/dev/ai/ai-commerce/install-ai-commerce.html</link>
            <guid isPermaLink="true">https://docs.spryker.com/docs/dg/dev/ai/ai-commerce/install-ai-commerce.html</guid>
            
            
        </item>
        
        <item>
            <title>AI Commerce</title>
            <description>&lt;p&gt;AI Commerce brings AI-powered capabilities to your Spryker storefront, reducing manual effort for buyers and accelerating commerce workflows. Features are built on the &lt;code&gt;AiFoundation&lt;/code&gt; abstraction layer, so the underlying AI model can be swapped or configured per feature without changing application code.&lt;/p&gt;
&lt;h2 id=&quot;features&quot;&gt;Features&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;FEATURE&lt;/th&gt;
&lt;th&gt;DESCRIPTION&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;/docs/pbc/all/ai-commerce/latest/visual-add-to-cart.html&quot;&gt;Visual Add to Cart&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Lets buyers upload a product image on the Quick Order page. AI recognizes the products in the image and pre-fills the order form with matching SKUs and quantities — enabling rapid bulk ordering without manual entry.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;who-benefits&quot;&gt;Who benefits&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ROLE&lt;/th&gt;
&lt;th&gt;BENEFIT&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;B2B buyers&lt;/td&gt;
&lt;td&gt;Faster reordering from photos of shelves, product lists, or packaging.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Store operators&lt;/td&gt;
&lt;td&gt;Reduced support requests caused by manual order entry errors.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Developers&lt;/td&gt;
&lt;td&gt;AI provider-agnostic integration — swap or configure models per feature via configuration.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
            <pubDate>Tue, 31 Mar 2026 10:58:44 +0000</pubDate>
            <link>https://docs.spryker.com/docs/pbc/all/ai-commerce/latest/ai-commerce.html</link>
            <guid isPermaLink="true">https://docs.spryker.com/docs/pbc/all/ai-commerce/latest/ai-commerce.html</guid>
            
            
        </item>
        
    </channel>
</rss>
