Shopware 6.7 with Storefront and shopping experiences enabled, PHP 8.2 or newer. For background image generation the Shopware message consumer has to be running.
Upload the ZIP in the admin under Extensions, install and activate it. Then enter the licence key from plugins.staw.io; the check needs a shop domain configured in the sales channel.
Under AI settings you choose provider and model and store the API key. "Test connection" verifies both before the first page is created.
Images have their own provider: OpenAI or Google. Optionally the AI fills in missing alt texts in the media manager.
Here you set the internal name, the type of page (standalone landing page or category page), the sales channels and the languages.
On top of that come topic and keywords - the content brief for the AI. For length you choose between compact, standard and detailed, plus tone and layout. Free build instructions are optional.
Products can be picked individually through the search. Alternatively you attach a dynamic product group - the slider then shows its products automatically, without you maintaining the selection.
A category can be linked as well; the call to action button then points there. For category layouts the category selection is mandatory.
The AI produces the draft. Every section can be edited, dragged to a new position or deleted; "Add section" brings in text sections, benefits, product tiles or a call to action.
With "Further adjustment by AI" you send a change instruction to the existing draft instead of regenerating it. Page title, meta description and URL live here as well.
Creating produces the shopping experience, the translations and the SEO URLs. If AI images were selected, they continue in the background and are inserted once ready - keep the window open for that.
Afterwards you can open the page directly in the CMS editor. From here on it is an ordinary shopping experience.
Intermediate states can be saved and loaded back into the editor later. Applying a draft to an existing page rebuilds the content but keeps the URL unchanged, so existing links stay intact.
With "Automatic" the plugin uses the category image and product images from your shop, embedded responsively with srcset. With "AI generated" new visuals are produced by the selected image provider.
Posts appear on a blog page of their own. It comes with:
A link to the blog can be shown in the footer. Posts are listed in the sitemap and are indexed like any other page.
On the product page a block with matching content appears. The selection runs in two stages: first posts and pages that use this very product. If that is not enough, content linked to one of the product's categories is added.
Every page and post can be given a from and until date. A task checks every 15 minutes and puts content live or takes it down.
For this to work the scheduled task must be active in Shopware - under Settings, System, Tasks, entry staw_kilp_direct.schedule.
Every language selected in step 1 is translated during creation, including page title and meta description. Translations can be adjusted later in the CMS editor as usual.
Only testimonials with an author and a rating from one to five are output. If either is missing, the testimonial stays in the text but does not appear in the structured data.
Questions come straight to us - support is from the developer. You can also request a feature through the Plugin Suite in the admin.
Every setting of the plugin with its default value and explanation, in the same order as in the administration. The texts come straight from the plugin (version 2.41.1).
Sales channel
Choose which sales channel you are editing the settings for. Without a selection the values apply everywhere, as long as a channel has nothing of its own.
Sales channel
Defines which sales channel the settings below are edited for. Without a selection they apply to all channels, as long as a channel has no values of its own.
AI settings
Provider, model and API key for text generation. These settings apply globally to all landing pages.
AI providerDefault: OpenAI
The service that writes the texts for blog posts and landing pages. Available are OpenAI, Anthropic (Claude), Mistral and Google Gemini. The chosen provider needs its own API key.
OpenAI API-KeyDefault: empty
Access key of the chosen text provider. It is only used for creating content and is stored encrypted. Without a key the plugin cannot generate texts.
OpenAI ModelDefault: GPT-5.5 (recommended)
The language model for the texts. The list follows the chosen provider; the recommended model is preselected and suited to blog posts and landing pages.
Image AI
Provider and API key for AI image generation. Only used when the image mode 'AI images' is selected during creation.
Image providerDefault: OpenAI (GPT Image 2.5)
The service that generates images for posts and landing pages: OpenAI (GPT Image), Google (Nano Banana / Imagen) or Higgsfield (SOUL). Depending on the choice, the matching access fields appear below.
Higgsfield key IDDefault: empty
Higgsfield generates images asynchronously, so it takes a little longer. Key ID and secret come from the Higgsfield Console.
Higgsfield key secretDefault: empty
The secret part of the Higgsfield access, paired with the key ID above. Only shown when Higgsfield is selected as image provider.
Higgsfield modelDefault: empty
The Higgsfield model used to generate images. Left empty, the provider's default model is used.
OpenAI API-KeyDefault: empty
Access key for image generation at the chosen image provider. It may differ from the key for texts and is also stored encrypted.
Blog appearance
Look of the blog overview. If that is not enough, custom CSS can override everything.
Style the overview independently of the themeDefault: off
Font, colours and text sizes of the blog overview then come from these fields instead of the theme.
FontDefault: System font
Font for the body text of the blog: system font, geometric, serif or monospace. Only applies when the overview is styled independently of the theme.
Font of the headingsDefault: System font
Font for the headings in the blog, with the same four options as the body text. This allows, for example, serif headings combined with plain body text.
Background colourDefault: #ffffff
Background colour of the blog pages as a colour value.
Text colourDefault: #111827
Colour of the body text in the blog.
SpacingDefault: Normal
How much room is left between elements: compact, normal or airy. Affects the spacing between paragraphs, sections and cards.
Content width (px, 0 = theme)Default: 0
Maximum width of the blog content in pixels, from 0 to 1600. At 0 the plugin uses the width of the theme.
AppearanceDefault: Shopware default (theme decides the look)
Affects input fields, buttons, text colours and corner radius. With the Shopware default the blog blends into the theme, with Stone & Water the settings below take effect.
Hero image
Without an image the background colour is used.
Hero height (px)Default: 280
Height of the title area above the blog overview in pixels, from 120 to 640.
Text alignmentDefault: Centred
Alignment of headline and intro in the title area: centred or left-aligned.
Image dimming (%)Default: 45
How strongly the title image is darkened, from 0 to 90 percent. The dimming keeps light text readable on top of the image.
Card styleDefault: With border
Look of the post cards: with border, with shadow, or plain with a dividing line.
Hero background colourDefault: #111827
Background colour of the title area when no title image is set or the image is still loading.
Accent colourDefault: #4f46e5
Colour for links, buttons and highlighted elements in the blog.
Corner radius (px)Default: 12
Rounding of the corners of cards, images and buttons in pixels, from 0 (square) to 32.
Gap between cards (px)Default: 20
Gap between the post cards in pixels, from 0 to 60.
Custom CSSDefault: empty
Loaded after the default CSS and therefore overrides it. Usable classes start with .staw-blog.
Blog overview
Appearance of the blog overview page at /blog.
HeadlineDefault: empty
Headline above the blog overview. Left empty, the default headline is shown.
Intro textDefault: empty
Short text below the headline of the blog overview, explaining what readers will find. If empty, the intro is left out.
Meta titleDefault: empty
Title of the blog overview for search engines and the browser tab. Left empty, the headline is used.
Meta descriptionDefault: empty
Around 150 to 160 characters are shown in search results.
LayoutDefault: Cards
Whether posts appear as cards in a grid or as a list one below the other.
ColumnsDefault: 3
Number of card columns on large screens: 2, 3, 4 or 5. On narrow devices the number is reduced automatically. Only applies to the card layout.
Posts per page (0 = automatic)Default: 0
How many posts a page of the overview shows, from 0 to 200. At 0 the plugin picks a number that suits the column count.
Read more link textDefault: Read more
Label of the link below each post in the overview.
Fields on the cardDefault: Image, Date, Author, Excerpt, Tags, Read more link
Which details a card shows: image, date, author, teaser, tags and read-more link can each be switched on and off.
Image height (px)Default: 180
Height of the post image on the card in pixels, from 80 to 480.
Image fitDefault: Complete (no cropping)
How the image fits the image area: filling crops the edges so the area is full; complete shows the whole image, with margins if needed.
Teaser length (characters)Default: 180
Length of the preview text on the card in characters, from 40 to 600. Longer texts are cut at a word boundary.
Tags per tile (0 = all)Default: 4
Maximum number of tags a card shows, from 0 to 20. At 0 all are shown.
Text alignment of the tileDefault: Left aligned
Alignment of text and details within the card: left-aligned or centred.
ControlsDefault: Show search, Show sorting, Show tag filter, Let visitors choose posts per page
Which controls appear above the overview: search, sorting, tag filter and the choice of how many posts are shown per page.
SEO text below the listDefault: empty
Shown below the posts. Useful for explanatory text that tells readers and search engines what the blog is about.
Add alt texts via AIDefault: on
Applies to every newly created page. Only fills in missing alt texts in the media manager.
Path of the blog overviewDefault: blog
Without a leading slash, for example "guide" or "magazine". Allowed are lowercase letters, digits, hyphens and slashes. The old path /blog stays reachable as well.
DiscoverabilityDefault: Show link in footer, Include in sitemap
How the blog is found: a link to the overview in the shop footer, and including the posts in the sitemap so search engines find them.
Navigation on blog posts
The bar above the post with the link back to the overview.
Keep the bar visible while scrollingDefault: off
The link back to the overview then stays reachable in long posts.
Offset from the top (px)Default: 0
Needed when the theme has its own sticky header. Enter its height here, otherwise 0.
What appears in the barDefault: Date, Author, Show tag filter, Previous and next post
What the bar on individual posts shows: date, author, tag filter, and links to the previous and next post.
Label of the back buttonDefault: Back to the blog
Label of the button that leads from a post back to the overview.
Content on the product page
Shows matching posts and landing pages on the product detail page - first content using this exact product, then content from one of its categories. From five entries it becomes a slider, on mobile already from two.
Which contentDefault: Posts and landing pages
Which content is recommended on the product page: posts and landing pages, blog posts only, or landing pages only.
Count (max. 12)Default: 3
How many matching items appear on the product page, from 1 to 12.
HeadlineDefault: Matching content
Headline of the section with the matching content on the product page.
Intro textDefault: empty
Short sentence below the headline on the product page. If empty, the intro is left out.
Label for postsDefault: Guide
Label used to mark blog posts on the cards.
Label for landing pagesDefault: Topic page
Label used to mark landing pages on the cards.
What appears on the cardsDefault: Image, Type (guide / topic page), Excerpt
Which details the cards on the product page show: image, the type of content (guide or topic page), teaser and date.
Button on the cardDefault: Show button
Whether each card gets its own button, and whether the link opens in a new tab.
Label of the buttonDefault: Read more now
Label of the button on the cards of the product page.
Image height (px)Default: 160
Height of the image on the cards of the product page in pixels, from 80 to 480.
Image fitDefault: Complete (no cropping)
How the image fits the card's image area: filling with cropping, or complete without cropping.
SliderDefault: Show dots
Behaviour when there is more content than fits side by side: navigation dots below the cards, and automatic advancing.
Change every ... secondsDefault: 5
How long each view stays before the slider advances, from 2 to 30 seconds. Only applies when automatic advancing is on.
Teaser length (characters)Default: 140
Shortens the teaser at a word boundary so the tiles look equally tall. The button always sits at the bottom edge regardless.