AI Blog & Landing Page manual.

From the AI settings to the finished shopping experience: set up the provider, define topic and length, link products, sharpen the draft and create the page including translations.

System requirements

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.

API key required: For copy you need an account with OpenAI, Anthropic, Mistral or Google Gemini. For AI images additionally OpenAI or Google. You settle the cost directly with the provider.

Installation

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.

AI settings

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.

Step 1: Basics

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.

Channel order matters: SEO URLs for the finished page are created for the first selected sales channel.

Step 2: Products and links

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.

Step 3: Preview and polish

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.

Step 4: Create the page

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.

Drafts

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.

Images

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.

If no images appear: check the OpenAI or Google key in the AI settings and whether the message consumer is running.

The blog

Posts appear on a blog page of their own. It comes with:

  • Search across all posts
  • Sorting by date or title, ascending and descending
  • Tags as filters, with a reset
  • Pagination with a selectable number per page
  • RSS feed for readers and services
  • Previous and next between posts, plus a way back to the overview

A link to the blog can be shown in the footer. Posts are listed in the sitemap and are indexed like any other page.

Matching the product

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.

Posts appear as guide, landing pages as theme page.

Publishing on schedule

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.

Multiple languages

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.

Marking up testimonials

The testimonial section has two fields that belong together:

  • Mark up as review - switches the structured data on.
  • Item reviewed - the name of what the testimonials refer to, a product for example. Leave it empty and nothing is marked up.

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.

A word of care: only mark up testimonials that genuinely exist. Text the AI produced as an example must not be marked up as a review - that breaches Google's guidelines and can get the page dropped from the results.

Troubleshooting

Generation fails: usually a valid API key is missing or the selected model is not enabled on your account. "Test connection" tells you which.
Licence not recognised: the check needs a domain in the sales channel. Without one the plugin reports that no shop domain could be determined.
Page does not show up: check the sales channel assignment, the scheduling and whether the SEO URL was generated.

Support

Questions come straight to us - support is from the developer. You can also request a feature through the Plugin Suite in the admin.

All settings

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.

Availability

Directly from Stone & Water

Available now

Monthly29,99 €
Best valueYearly269,99 €25 % cheaper

All prices net, plus VAT.

You buy the licence directly from us and receive an invoice from us. Installation by upload in the admin without SSH, updates through our licence platform, support straight from the developer.

Get in touch +49 2555 9997342

Shopware Store

In preparation

The plugin will be listed in the official Shopware Community Store. Installation and automatic updates then run through the plugin manager in the backend, billing through your Shopware account. We will link it here as soon as it is available.