The building blocks that give content and marketing teams autonomy without sacrificing performance. 10 features in this layer.
Editorial blog
Goal: Publish and organize blog content within Shopware.
The blog handles listings, categories, authors, detail pages, legacy redirects, SEO URLs, pagination, metadata and sitemap. It can be fed by Storyblok or by legacy import.
How it works
Blog entities store the content. Storefront controllers and page loaders build the pages, while commands import or rebuild the SEO data.
Storyblok integration
Goal: Connect Shopware to a headless CMS.
FroggShop handles Storyblok page rendering, preview, cache webhooks, content synchronization and structure dump/restore commands.
How it works
Controllers call the Storyblok services, fetch the stories, transform them into storefront output and invalidate the cache on webhooks or synchronizations.
Storyblok structure synchronization
Goal: Keep CMS schemas in sync across environments.
Storyblok components can be exported, versioned and restored to synchronize DEV, PREPROD or other spaces.
How it works
Commands read the Storyblok component structure, write it into versioned files, then can restore it into another target space.
Headless content renderer
Goal: Insert headless CMS content into the storefront.
The renderer makes it possible to inject Storyblok content or CMS modules into templates, with Twig support, dedicated modules and cache-friendly rendering.
How it works
FroggShop decorates the CMS renderer, resolves headless modules, prepares the Twig variables and returns HTML usable in Shopware pages.
Editorial shortcodes
Goal: Dynamically enrich text or CMS content.
Shortcodes turn editorial markers into HTML output or components, usable notably in the blog and global CMS surfaces.
How it works
An expander detects the tokens in the content, delegates each shortcode to a dedicated handler, then replaces the marker with the final output.
Dynamic header and footer
Goal: Drive the site's global areas through the CMS.
Headers and footers can be rendered from Storyblok with HTML or ESI cache strategies to keep good performance.
How it works
Pagelets fetch the global content, render it through Storyblok and expose it as direct HTML or an ESI fragment depending on the configuration.
Generic CMS forms
Goal: Turn Storyblok forms into Shopware interactions.
Generic forms handle validation, captcha, rate limit, token, cache and Flow Builder event dispatch. They make it possible to create forms without custom development.
How it works
The controller receives the submission, reloads the form definition, validates the fields and security checks, then dispatches a Flow event with the cleaned data.
Managed robots.txt
Goal: Administer the robots.txt content.
FroggShop exposes a configurable robots.txt route, with dedicated rendering and the ability to manage restrictions by context, notably administration domains.
How it works
The `/robots.txt` route calls a renderer that assembles the content based on the active configuration and the domain context.
Analytics and tag management
Goal: Configure measurement and marketing scripts.
Dedicated configurations make it possible to integrate Google Analytics, Google Tag Manager or marketing tags from the administration.
How it works
The configured values are read by the storefront or templates to inject the IDs and scripts only when they are active.
Editorial SEO
Goal: Manage metadata and SEO data.
FroggShop adds entities and services to manage SEO data, clean up metadata and produce optimized URLs for editorial content.
How it works
Editorial content is enriched with titles, descriptions, aliases and SEO routes. Commands can clean up or regenerate the metadata.