Zum Inhalt springen
Shopware 6 Manual

Blog: Posts, Categories & Comments

Stop running WordPress next to your shop. Write posts, categories, authors and moderated comments in Shopware, then build the blog pages in Shopping Experiences.

Version 6.7.1 Compatible with 6.7.0 und neuer 37 min read
On this page

Introduction

This plugin runs your blog inside Shopware. Posts, categories, tags, author profiles and moderated comments live in the same place as your products, so you no longer need a second content system beside your shop.

What you get out of it

  • You write posts in the Shopware Administration, with a cover image, an image gallery, a short description, a teaser and formatted body text.
  • You schedule when a post goes live and when it disappears again — no need to remember the publication date.
  • You build your blog pages in Shopping Experiences, exactly like any other page in your shop: overview, post page, slider, category tiles.
  • You link posts to products and show them right on the product page — the guide sits where the buying decision happens.
  • You collect reader comments and approve them before they go public.
  • You move an existing WordPress blog over with a single export file.
  • Your posts appear in the shop search, in the search suggestions, in the sitemap and in the RSS feed.

Who is this plugin for?

Shop operators and editors who maintain content themselves: guides, news, product knowledge, customer stories. No programming knowledge is required — everything happens in the Shopware Administration.

Installation

After purchase the plugin is available in your Administration straight away — there is nothing to download.

  1. Log in to your Shopware Administration.
  2. Open Extensions → My extensions.
  3. Use the Find extensions … field to search for Blog: Posts, Categories & Comments and click Install.
  4. Then switch on the toggle next to the entry — the plugin is now active.

Plugin installed and active Fig. 1: The plugin under Extensions → My extensions, installed and active.

Once activated, the left-hand menu shows a new Blog entry under Content, with the sub-entries Posts, Categories, Authors, Tags, Comments and WordPress import.

If the plugin does not appear in the list, your Shopware account is not yet connected to the shop. You can do that under Extensions → My extensions by signing in with your Shopware account.

Getting started

Your first post can be live within minutes.

Step 1: Create a category

Go to Content → Blog → Categories and click Create category. Enter a Name — for example “Product Knowledge” — and switch on Active. Everything else can follow later. Save.

The category structures your posts and appears in your shop in the sidebar and as a small label above the post title.

Step 2: Create an author

Go to Content → Blog → Authors and click Create author. Enter a Name, optionally a Job title and a Short profile, then Save. Every post now has a face behind it.

Step 3: Write your first post

Go to Content → Blog → Posts and click Create post. Enter a Title and the Content, pick a Category and an Author, switch on Active and Save.

Step 4: Check the result

Open /blog in your shop — your post is there in the overview. Under Content → Blog you can also see at any time how many posts you have and whether comments are waiting for approval.

Blog overview in the Administration Fig. 2: The start page of the blog area shows “Total posts”, “Published” and “Pending comments”.

Settings

You find the settings under Extensions → My extensions. Click Configure in the plugin’s row. At the top of the page you pick the sales channel — every setting can be given a different value per sales channel. As long as you override nothing, the same value applies everywhere.

At the very top sits the Open documentation button. It opens this manual on the web, in the language of your Administration.

The settings are grouped into four cards: Blog, Search, Layouts (Shopping Experiences) and Comments.

The “Blog” card

The "Blog" card in the plugin configuration Fig. 3: The basic settings of the blog.

Enable plugin for this sales channel

This toggle decides whether the blog exists in this sales channel at all. Switched off, all blog pages, the RSS feed and the sitemap entries of this channel stay silent — your content is kept in full. The toggle is on by default.

Why this helps: If you run several sales channels, for example a B2C and a B2B shop, you can offer the blog only where it belongs.

Blog address

This defines the address your blog lives under. The default is blog, so your blog sits at www.yourshop.com/blog. Enter “magazine” and it becomes www.yourshop.com/magazine. Lower-case letters, digits and dashes are allowed. Addresses that Shopware itself uses (such as admin, api, checkout or account) are rejected — the blog then stays under blog.

Why this helps: “Magazine”, “Guides” or “Journal” often fits the tone of your shop better than the word blog.

Posts per page

Sets how many posts appear on the overview and on category and tag pages before pagination starts. The default is 10; values from 1 to 100 are allowed.

Cache lifetime (seconds)

Determines how long the shop keeps rendered blog pages in its cache. The default is one hour (3600 seconds). A value of 0 switches caching off for this sales channel.

Why this helps: While you are editing heavily and want to see every change instantly, 0 is convenient. In live operation, go back to a value above zero — otherwise every blog page is rebuilt on every visit and your shop gets slower.

SEO URL template for posts and SEO URL template for categories

These two fields define how the readable addresses of your posts and categories are built. By default they produce blog/my-post and blog/category/my-category.

Important: If you change a template, the addresses of all affected posts in that sales channel are rewritten. Addresses you have already shared or linked will change. Leave the templates alone unless you have a compelling reason.

Show author name

Displays the author next to the publication date and the reading time. On by default.

Publish structured data (JSON-LD)

Adds machine-readable information about title, image, date, author, category and tags to every post page, plus the usual details for social networks. On by default.

Why this helps: Search engines and social networks recognise your post as an article and show it with an image, a headline and a date — instead of as a bare link.

Enable RSS feed

Publishes your blog as a feed at /blog/feed.xml. On by default. With the toggle off, the address is not reachable.

The “Search” card

The "Search" and "Layouts (Shopping Experiences)" cards Fig. 4: Search integration and default layouts.

Show blog posts in the shop search

When a visitor searches your shop, matching posts appear on the search results page below the product results. On by default.

Show blog posts in the search suggestions

Shows up to three posts in the drop-down below the search field while the visitor is typing. On by default.

Maximum number of blog results

Limits how many posts appear on the search results page at most. The default is 10.

Why this helps: Someone searching for “care” finds not just the care product but the instructions that go with it.

Note: The search covers the title, the teaser and the body text. The short description and the search engine fields are not part of the search index.

The “Layouts (Shopping Experiences)” card

Default layout for posts and Default layout for overview pages

Here you choose which Shopping Experiences layout is used for post pages and for overview pages. During installation the plugin creates two ready-made layouts and enters them here: Blog — Post (default) and Blog — Overview (default).

The overview layout applies to the blog start page as well as to category, tag and author pages. The post layout applies when the post itself does not specify its own layout. If you leave a field empty, the shop renders a plain, fixed presentation without Shopping Experiences — what that means for category pages is explained in What the blog looks like in your shop.

Why this helps: You design your blog pages once, like any other page in your shop, and every post picks up that look automatically.

The “Comments” card

The "Comments" card Fig. 5: Everything around reader comments.

Enable comments globally

The master switch for this sales channel. It is off by default — you decide deliberately whether to allow comments. In addition, every post carries its own Allow comments flag; the form only appears when both are switched on.

Auto-approve comments

Switched on, comments appear in the shop immediately. Switched off, every comment waits for your approval under Content → Blog → Comments. Off by default.

Why this helps: Moderation costs you a minute a day and keeps advertising comments off your pages. Leave the switch off until you know the volume you are dealing with.

Require GDPR consent

Visitors have to tick the privacy checkbox below the comment form before they can submit. The consent is stored together with a timestamp. On by default.

Allow restricting posts to customer groups

Switched on, every post gains a field that limits it to selected customer groups. Off by default.

Important: This feature splits the page cache per customer group and therefore costs performance. Only switch it on if you really need it — for a dealer area, for instance.

Protect the comment form with a captcha

Puts the security check your shop already uses in front of the submit button. Which one that is you define under Settings → Basic information → Captcha — the same check your contact and registration forms use. If no captcha is active there, this switch has no effect. On by default.

Maximum reply depth

Sets how deeply visitors may reply to each other. The default is 3 levels. A value of 1 switches replies off entirely; visitors can then only comment on the post itself.

Minimum seconds between comments

Slows comment spam down: at least this many seconds must pass between two submissions from the same sender. The default is 30; a value of 0 switches the limit off.

Writing and managing posts

What you get out of it: Everything that makes a good post — text, images, author, timing, product context — is maintained in one place, and you can see immediately what of it ends up in your shop.

The post list

Content → Blog → Posts holds all your posts with the columns Title, Category, Active, Featured and Published at. The selector at the top right switches the language, Create post starts a new post. Clicking a row opens the post.

Post list Fig. 6: The post list with the language selector and the “Create post” button.

Text and images

The first card on the post page carries the content.

Editing a post — basic data Fig. 7: Title, slug, teaser, short description and content.

  • Title — the headline of the post. The only field you must fill in.
  • Slug — the readable part of the address. Leave it empty and the plugin derives it from the title, keeping it unique per language. Later changes to the title leave the slug as it is, so your addresses stay stable.
  • Teaser — the lead-in text shown below the title in lists and cards.
  • Short description — a compact summary alongside the main text. It appears in cards, in widgets and in the gallery element.
  • Content — the post itself in the rich-text editor: subheadings, bold text, links, lists and images are preserved.

The reading time shown next to the date in your shop is calculated automatically from the length of your text when you save — separately for each language version.

Assignments: category, author, tags, images and products

Further down the same page you file the post away.

Editing a post — assignments Fig. 8: Category, author, tags, cover image, image gallery, sales channels, customer groups and linked products.

In the Category card you pick the Category and the Author, assign Tags, set the Cover image and optionally fill the Image gallery. The gallery takes any number of images; the order in which you select them is the order shown in your shop.

The Sales channels card carries the In all sales channels toggle. Switch it off and a selection appears below in which you name exactly the channels the post is visible in.

In the Customer groups card, the field Visible to these customer groups only limits the post to selected groups. Empty means visible to everyone. The field only takes effect if you have switched on Allow restricting posts to customer groups in the settings.

In the Linked products card you add articles that go with the post. They appear below the post in the order you selected them — and, if you set it up, the other way round on the product page too (see Designing blog pages in Shopping Experiences).

Tip: Link the post to the main product, not to every single variant. Variants inherit the links of their main product automatically.

Own layout, visibility and timing

The Layout card holds the Own layout field. Use it when a single post should differ from the standard — for an elaborately designed campaign page, for instance. Empty means the default from the settings applies.

The Active card controls whether and when the post appears:

  • Active — only when switched on is the post visible in your shop.
  • Featured — marks the post for elements that deliberately show featured posts.
  • Allow comments — allows comments on this particular post.
  • Published at — the moment from which the post is visible. A date in the future schedules the publication; leave the field empty and the post is visible right away.
  • Visible until — the moment the post disappears again. Leave it empty and it stays indefinitely.

The last card holds the Meta title and Meta description for search engines. Leave them empty and the shop falls back on the title and the teaser.

Tip: Give a summer sale post a “Published at” date at the start of the campaign and a “Visible until” date at the end. It then disappears by itself — nobody has to remember.

Categories, tags and authors

Categories

What you get out of it: Categories give your blog structure. In your shop they appear in the sidebar, as a label above the post title and as a page of their own at /blog/category/<name>.

You find them under Content → Blog → Categories; Create category adds a new one.

Category list Fig. 9: Categories with name, active flag and position.

On the detail page you maintain Name, Slug, Description, a Parent, an Image, an Image gallery, the Active toggle and the Position. The position determines the order in the sidebar: lower numbers come first. Parent lets you nest categories, for example “Care” under “Guides”.

The Active toggle removes a category and its page from your shop without deleting a single post.

Tags

What you get out of it: Tags are free keywords that cut across your categories. In your shop they become the tag cloud in the sidebar and a page of its own for each keyword.

You find them under Content → Blog → Tags; Create tag adds a new one.

Tag list Fig. 10: Tags with name, slug and colour.

A tag has a Name, a Slug and a Colour. The colour helps you keep track in the Administration.

Authors

What you get out of it: A post with a face behind it is more credible. Below every post sits an author box with a picture, name, job title and short profile — and, if you want, the author’s social networks.

You find the authors under Content → Blog → Authors; Create author adds a new one.

Author list Fig. 11: Authors with name, job title, order and the “Profile page active” flag.

The detail page is organised into four cards:

  • ProfileName, URL slug (leave empty: derived from the name), Job title (for example “Editor in chief”), Short profile, the Profile page active toggle and the Order.
  • Author image — the photo shown in the author box.
  • Contact and networksEmail address, Website, LinkedIn, X (Twitter), Instagram and Facebook.
  • Search enginesMeta title and Meta description of the profile page.

With Profile page active switched on, the author is also reachable at an address of their own (/blog/author/<slug>). Switch it off and the byline stays on the post while the address is no longer reachable. The author box below the post is independent of this and is controlled through the post layout.

Comments

What you get out of it: Readers can ask questions and share experiences below your posts — and you decide what becomes public.

Switching comments on

Two things have to be true before a comment form appears below a post:

  1. Enable comments globally is switched on in the settings (Comments card, see Settings).
  2. Allow comments is switched on for the post itself.

That way you can allow comments in principle and still switch them off for individual posts.

Approving comments

As long as Auto-approve comments is off, every new comment comes to you first. How many are waiting is shown under Content → Blog as Pending comments.

Step by step

  1. Go to Content → Blog → Comments.
  2. Set the Status filter to Pending — you then see only the comments waiting for you.
  3. Read Name, Comment, Post and Created at in the row.
  4. Click the three-dot icon at the right-hand end of the row and choose Approve or Reject.

Comment moderation Fig. 12: The comment list, filtered to the “Pending” status.

An approved comment appears in your shop immediately. A rejected one stays in the list but is not published — so you can retrace a decision and reverse it if needed. The Status filter switches between Pending, Approved and Rejected.

Important: Approve comments straight from the list. It takes a single click there, and you keep an overview of everything still open.

Note: No email is sent when a new comment arrives. Check the Pending comments figure under Content → Blog regularly.

What your readers see

Below the post, the approved comments appear as a conversation thread with replies. Underneath sits the Leave a comment form with the fields Name, Email and Comment plus the privacy checkbox. The note below the email field tells your readers explicitly: Never published; stored only as an anonymised hash.

Comment section in the shop Fig. 13: A comment thread with a reply and the “Leave a comment” form.

Using Reply below a comment, a reader can respond to another one directly — as deeply as you allow under Maximum reply depth.

Designing blog pages in Shopping Experiences

What you get out of it: You design your blog pages with the same building set as any other shop page. The plugin supplies 13 elements of its own and two ready-made layouts you can use as a starting point.

The two supplied layouts

During installation the plugin creates two layouts under Content → Shopping Experiences and enters them as the defaults in the settings:

Blog — Overview (default) — for the blog start page as well as category, tag and author pages. It consists of the Blog: Navigation sidebar and, in the main area, Blog: Single post and Blog listing.

Blog — Post (default) — for the individual post page. It contains, in order, Blog: Post header, Blog: Post content, Blog: Post gallery, Blog: Author box, Blog: Linked products, Blog: Related posts and Blog: Comments.

You can edit both layouts directly — they are not locked, and a plugin update will not overwrite your changes. You can equally create your own layouts and select them in the settings. When creating one you choose the page type: Blog — Overview or Blog — Post. The page type determines which blog elements are available to you.

Important: If you uninstall the plugin without keeping the data, these two layouts are removed as well — even if you have rebuilt them in the meantime. To keep your work, duplicate the layout under a name of your own beforehand.

Adding and configuring an element

Step by step

  1. Go to Content → Shopping Experiences and open the layout you want, for example Blog — Overview (default).
  2. Add a block and pick the Blog category in the block selection area on the left.
  3. Drag the block you want into place.
  4. Click the inserted block and open the Element settings via the gear icon.
  5. Configure the element and confirm with Done.
  6. Do not forget to Save.

Element settings of the blog listing Fig. 14: The element settings of “Blog listing” with number, category, columns and the product filter.

The elements at a glance

Usable everywhere — these five elements bring their own content and work on any page, including your home page or a landing page:

  • Blog listing — the post list. You can set Number of posts, Category (optional) and Columns (tablet and up).
  • Blog: Post slider — several posts side by side to browse through, with Headline (optional), Selection (Latest posts, Most read of the last 30 days or Featured posts), Number of posts, a restriction to one category and the toggles Play automatically and Show dot navigation.
  • Blog: Single post — one post as a large teaser. Post source decides which one is shown: Fixed post, Latest post, Random post, Most-read post (30 days) or Latest featured post. Category scope narrows the choice: All categories, Current category of the page or Pick a fixed category. On top of that come the display options Image on top and Image beside and the toggles Show teaser text and Show date and reading time.
  • Blog: Categories — all categories as a List or as Tiles, optionally with the number of posts.
  • Blog: Navigation — the sidebar with categories, tags plus latest and most-read posts. Each of these four building blocks can be switched off individually and given its own count; for “most read” you also set the Period in days.

Only in the post layout — these seven elements refer to the post currently being shown and are therefore only available in layouts of the type Blog — Post:

  • Blog: Post header — category, title, date, reading time and cover image. Each of these can be switched off.
  • Blog: Post gallery — short description and an image grid, with a configurable number of columns and the option to include the cover image in the gallery.
  • Blog: Post content — the editorial content, optionally with tags and share buttons.
  • Blog: Author box — image, name and short profile of the author, optionally with the social networks.
  • Blog: Linked products — the articles assigned to the post, with Headline (optional) and Maximum number.
  • Blog: Related posts — posts from the same category or with the same tags.
  • Blog: Comments — the approved comments, optionally with the comment form.

Only on the product page:

  • Blog: Posts for this product — see the next section.

Showing posts on the product page

What you get out of it: The matching guide sits right next to the article — exactly where your customer is still hesitating.

The Blog: Posts for this product element shows the posts you linked to the article in chapter 5. It is only available in layouts of the type Product page.

Step by step

  1. Link the posts you want to the product — under Content → Blog → Posts in the Linked products card.
  2. Open the layout of your product page under Content → Shopping Experiences.
  3. Insert the Blog: Posts for this product block from the Blog category.
  4. In the element settings, set the Headline (optional), the Number of posts and the Display: List, Slider or Single post. For a single post you also choose the Single post layoutImage on top or Image beside.
  5. Click Done, then Save.

"From our blog" on the product page Fig. 15: The posts linked to the article, shown on the product detail page.

If an article has no linked posts, the element stays empty — it does not fill itself with other posts instead.

The product filter for other elements

Blog listing, Blog: Post slider and Blog: Single post can also be tied to the product being shown. Each of these three elements carries the toggle Only posts assigned to the current product (see Fig. 14).

Switched on, the element in a product page layout considers only the posts assigned to the article on display — every other setting of the element remains in force. On other page types the toggle has no effect.

Below it, a second toggle appears: Consider all posts when nothing is assigned. If no posts are linked to the product, the element then shows its regular content instead of leaving a gap.

Tip: Use the product filter in the slider when you want to offer more than three matching posts on the product page without making it longer.

What the blog looks like in your shop

The overview page

The overview sits at the blog address you chose — /blog by default. With the supplied layout, the sidebar on the left holds Categories, Latest posts, Most read and the Tags; on the right a featured post is followed by the post cards with image, category, title, teaser, date, author and reading time.

Blog overview in the shop Fig. 16: The blog start page with sidebar, featured post and post cards.

Exactly how this page looks is up to you — it is built from the layout you selected under Default layout for overview pages.

The post page

The post page shows the cover image, the headline, the date, the author and the reading time, followed by the text. At the end come the tags, the share buttons, the author box, the Matching products, the Related posts and the comment section.

Post page in the shop Fig. 17: A complete post page with author box, linked products, related posts and comments.

Here too, the chosen post layout determines which of these building blocks appear and in what order.

Category, tag and author pages

Every active category, every tag and every author with an active profile page is reachable at an address of its own:

  • Category: /blog/category/<name>
  • Tag: /blog/tag/<name>
  • Author: /blog/author/<slug>

What appears on these pages depends on whether you entered a layout under Default layout for overview pages:

  • With a layout (the setting after installation) the page is built from the elements of that layout. Each element fetches its posts according to its own settings — the Blog listing, for example, according to the Category (optional) stored on it. As a result the pages all look the same.
  • Without a layout — you leave the field empty — the shop renders a fixed presentation that reflects what the page is about: the image, name and description of the category or the tag headline, below it exactly the matching posts, and the sidebar on the right.

Tip: If you want both the designed layout and a category-accurate list, create one layout per category, set the matching Category (optional) in the Blog listing and link the page directly.

Search, feed and sitemap

  • Search: With search integration switched on, posts appear on the search results page below the products and — as suggestions — in the drop-down below the search field.
  • RSS feed: /blog/feed.xml offers the 20 most recent posts as a feed, each with title, address, date and teaser. The feed is not announced automatically in the page head — link it yourself, for example in your shop footer or your newsletter, so readers can find it.
  • Sitemap: Posts and categories are included in your shop’s sitemap so search engines can find them. Tag and author pages are not part of the sitemap.

Moving over from WordPress

What you get out of it: You bring your existing blog across — posts, categories, keywords, authors and comments — without retyping anything.

Step by step

  1. Create an export file in WordPress: Tools → Export → All content. You receive a WXR file.
  2. In Shopware, go to Content → Blog → WordPress import.
  3. Drop the file onto the Drag a file here to upload area or pick it via Choose file.
  4. Click Start import.
  5. The Progress card tracks the run: Status, Imported and Skipped. Cancel import stops it.

WordPress import Fig. 18: The import page with hint text, upload area and the “Start import” button.

The import runs in the background in packages, so even a large blog does not block your Administration. If it is interrupted, the next run picks up at the last completed package.

What is taken over — and what is not

Taken over are posts (title, address, content, teaser, publication date and publication status), categories, keywords, authors and comments including their approval status. Pages and other WordPress content types are left out.

Important: Images are not moved across. Cover images stay empty, and images inside the post text still point at your old WordPress server. Upload the images to the Shopware media library and place them again in your most important posts — and do not switch off your old server until that is done.

Important: A second import of the same file recognises posts already taken over by their address and updates them instead of duplicating them. Comments, however, are created again. So only import a second time if you review the comments afterwards.

If the uploaded file is not a WordPress export, the import rejects it and says so, instead of appearing to succeed with zero posts.

Tip: Review the imported posts afterwards. Categories and keywords are often named differently in WordPress than you want them in your shop — renaming them in the category and tag lists takes a minute.

Visibility, languages and sales channels

When a post appears in your shop

A post is visible exactly when all of the following is true:

  • The plugin is enabled for the sales channel in question.
  • Active is switched on for the post.
  • Published at lies in the past or is empty.
  • Visible until lies in the future or is empty.
  • The post applies to all sales channels or to the one being visited.
  • No customer group restriction is set, or the logged-in customer belongs to one of the selected groups.

If a post is missing from your shop, work through these six points in order — the cause is usually the second or the third.

When a publication window opens or closes, the shop checks this in the background at regular intervals and refreshes the affected pages. Expect a few minutes of delay rather than a change on the exact second.

Multilingual content

Posts, categories, tags and author profiles can be maintained separately per language. The language selector at the top right of the post list and of every detail page switches between them.

Step by step

  1. Create the post in your main language and Save.
  2. Switch the language selector at the top right to the second language.
  3. Enter the title, teaser, short description and content in that language.
  4. Save.

The slug is checked for uniqueness per language, so two language versions may carry the same slug — that is not a conflict. The reading time is likewise calculated separately for each language version.

Several sales channels

Two levels work together here:

  • The whole blog per channel: The Enable plugin for this sales channel toggle in the settings decides whether there is a blog in that channel at all. Every other setting — blog address, posts per page, comment rules — can be given a different value per channel too.
  • A single post per channel: In the Sales channels card of a post, switch off In all sales channels and pick exactly the channels it should appear in.

Who may do what: user permissions

What you get out of it: Your editorial team writes posts and moderates comments without gaining access to orders or customer data.

The plugin brings its own Blog permission group with four levels: read, edit, create and delete. They build on one another — whoever may create may also read and edit.

Step by step

  1. Go to Settings → System → Users & permissions.
  2. Open an existing role or create a new one.
  3. In the Permissions area, open the Content group and the Blog entry inside it.
  4. Tick the boxes you want and Save.
  5. Assign the role to the users concerned.

Important: Blog permissions alone are not enough to work in the Administration. Combine them with the basic permissions your editorial team needs anyway.

Data protection

The plugin is built so that as little personal data as possible is collected:

  • A commenter’s email address is never stored in plain text, only as a value that cannot be converted back. The note about this sits directly below the field in the comment form.
  • A commenter’s name is stored in plain text and is publicly visible — that is the point of asking for it.
  • The consent to storage is recorded together with its timestamp when you have switched on Require GDPR consent.
  • The IP address is not stored. It only enters the short-lived cache that watches the minimum interval between two comments, in an unrecognisable form, and expires with it.
  • Post view counting is aggregated per post, sales channel and day — with no personal reference and no cookie. This is what feeds the “Most read” listing.
  • The share buttons below a post use only the browser’s own facilities and the clipboard. No social network scripts or tracking pixels are loaded.

The uploaded WordPress export file is not publicly accessible and is deleted once the import finishes, fails or is cancelled — otherwise it would keep the email addresses of every imported commenter in plain text. Uninstalling without keeping the data clears these files too.

Troubleshooting

The blog is not reachable at /blog

What causes it: Either the plugin is not enabled for this sales channel, or another page claims the same address.

How to fix it:

  1. Check under Extensions → My extensions that the plugin is active.
  2. Open the configuration, pick the sales channel concerned at the top and check Enable plugin for this sales channel.
  3. Open Content → Blog. If the notice The blog address is taken appears there, a shop category claims the same address. Either rename that category or enter a different Blog address.
  4. Then clear the cache: Settings → System → Caches & indexes → Clear cache.

A post does not appear in the shop

What causes it: Usually one of the visibility conditions is not met.

How to fix it: Work through the six points in Visibility, languages and sales channels. The most common ones: Active is off, Published at lies in the future, or the post is restricted to a different sales channel.

The category or author page shows all posts instead of only the matching ones

What causes it: These pages are built from the overview layout, and its elements fetch their posts according to their own settings — not according to the category being visited.

How to fix it: Either leave Default layout for overview pages empty, in which case the shop renders the fixed presentation with the matching header and a filtered list. Or create one layout per category and enter the desired Category (optional) in the Blog listing. See What the blog looks like in your shop for details.

The comment form is not visible

What causes it: One of the two switches is missing.

How to fix it: Switch on Enable comments globally in the configuration and check Allow comments on the post. If you use a post layout of your own, it must also contain the Blog: Comments element with Show comment form switched on.

Submitted comments do not appear

What causes it: They are waiting for your approval.

How to fix it: Go to Content → Blog → Comments, set Status to Pending and approve the comments from the row menu.

The fields on the comment detail page stay empty

What causes it: In the current version, name, comment, post and creation date are not displayed on the opened single view.

How to fix it: Work in the comment list. All four details are shown in the row there, and Approve and Reject work as described. You do not need the single view for moderation.

A change is not visible in the shop

What causes it: The page is still in the cache.

How to fix it: Wait for the configured Cache lifetime (seconds) or clear the cache under Settings → System → Caches & indexes → Clear cache. While editing heavily you can set the cache lifetime to 0 temporarily.

The RSS feed returns an error

What causes it: The feed is switched off for this sales channel.

How to fix it: Switch on Enable RSS feed in the configuration.

The WordPress import aborts or takes nothing over

What causes it: The uploaded file is not a WordPress export in WXR format, or it is too large.

How to fix it: In WordPress, export explicitly via Tools → Export → All content and upload the resulting file. A saved HTML page or an export from another system is rejected. Split very large exports by time period in WordPress.

The post text has lost its formatting

What causes it: Posts saved or imported before version 6.7.1 lost their formatting on save — it never reached the database.

How to fix it: Reformat the posts concerned or import them again. From version 6.7.1 onwards, subheadings, bold text, links, lists and images are preserved.

Frequently asked questions

Q: Can I write a post now and have it published automatically later?

A: Yes. Set Published at to the moment you want in the future and switch on Active. The post then appears by itself, a few minutes after the time you set.

Q: How do I make a campaign post disappear again?

A: Enter the end date under Visible until. After that the post is no longer reachable but remains available to you in the Administration.

Q: Can I switch comments off for individual posts only?

A: Yes. Switch off Allow comments on the post concerned. All other posts are unaffected.

Q: Am I notified when a new comment arrives?

A: No, no email is sent. The number of waiting comments is shown under Content → Blog as Pending comments.

Q: Do I have to design my blog pages myself?

A: No. The plugin ships two ready-made layouts and enters them as the defaults during installation. You can design, but you do not have to.

Q: Are my images taken over from WordPress?

A: No. Text, categories, keywords, authors and comments come across; images do not. Upload them to the Shopware media library and place them in the posts again.

Q: What happens to the posts if I delete a category?

A: The posts remain and simply have no category afterwards. In your shop only the category label on the post disappears.

Q: Can I run the blog in one sales channel and not in another?

A: Yes. Pick the channel at the top of the configuration and switch off Enable plugin for this sales channel there. The content is kept.

Q: How do I show blog posts on my home page?

A: Open the layout of your home page under Content → Shopping Experiences and insert, for example, Blog listing or Blog: Post slider from the Blog block category.

Q: Why does “Most read” show something other than I expect?

A: It evaluates the views of the last 30 days. As long as there are no figures yet — right after installation, for instance — the element shows the latest posts instead.

Q: Does the plugin work with my theme?

A: Yes. The blog pages use your theme’s building blocks, and the plugin’s own styles are scoped so they do not override your theme.

Q: Do I keep my posts if I uninstall the plugin?

A: Only if you choose the option to keep the data when uninstalling. Without it, posts, categories, tags, authors, comments, the plugin settings and the two supplied layouts are deleted permanently.

For administrators / technical details

This section is aimed at technical administrators. You do not need it for normal use.

System requirements

  • Shopware: 6.7
  • PHP: 8.2 or newer
  • The Shopware Storefront and Administration must be installed.

Installation via the command line

composer require swp/blog-six
php bin/console plugin:refresh
php bin/console plugin:install SwpBlogSix --activate
php bin/console cache:clear

Storefront addresses

The base address is configurable; the default blog is shown below. If the configured address differs, /blog redirects there permanently (301).

AddressContent
/blogOverview of all visible posts
/blog/{slug}A single post
/blog/category/{slug}Category page
/blog/tag/{slug}Tag page
/blog/author/{slug}Author profile
/blog/feed.xmlRSS feed with the 20 most recent posts (can be switched off)

Store API

For headless setups the plugin provides its own Store API routes for the post list, post detail, categories, tags, comment list and comment submission. They live under /store-api/swp/blog-six/.

Background tasks

The plugin ships two scheduled tasks. One checks several times an hour whether a publication window has opened or closed and refreshes the affected pages. The second aggregates the view counts per post once an hour. Both run through the Shopware scheduler and require a running worker.

Caching

Blog pages are stored with cache tags of their own per sales channel. Changes to posts, translations, categories, tags, assignments, galleries, product links, customer group visibility and comments refresh exactly the affected pages; a change to the plugin configuration refreshes the overview and the sidebar. The lifetime is controlled per channel via Cache lifetime (seconds).

Uninstalling and keeping data

When uninstalling, Shopware offers to keep the user data:

  • Keeping the data: tables, content, layouts and settings are left untouched. A later reinstallation finds everything in place.
  • Without keeping the data: the plugin removes all of its own tables, the plugin settings, the SEO URL templates it created, the two supplied layouts and the uploaded WordPress export files.

Permissions

The permission group is called Blog and sits under Content in the role editor. It offers the four usual levels (read, edit, create, delete), which build on one another.

WordPress import

A WXR file from Tools → Export → All content is expected; the upload limit is 512 MB. Processing runs in packages of 50 posts through the message queue, so even large blogs are taken over without timing out — a running worker is a prerequisite. Posts already imported are recognised by their address and updated rather than duplicated; comments, however, are created again on a repeat run. The uploaded file is stored in the non-public file area and is deleted in every final state of the job.


This manual was written for Blog: Posts, Categories & Comments version 6.7.1.

Need a team that keeps your shop running?

We have been maintaining Shopware shops for more than 20 years, including updates, hotfixes and the plugins you are configuring right now.

BuI Insights

Shopware- & xentral-Praxiswissen direkt ins Postfach

Plugin-Updates, Best Practices, Migrations-Tipps und Branchen-Cases. Ein Mal im Monat, nur das, was wirklich relevant ist. Jederzeit abbestellbar.

Mit dem Klick stimmst du zu, dass wir dir den Newsletter zusenden dürfen (Art. 6 Abs. 1 lit. a DSGVO). Mehr in der Datenschutzerklärung.