Kowal_Blog is a blog module for Magento 2 designed differently from classic blog extensions. Instead of building a separate post system, separate categories, and separate routing, the module uses the potential of the Magento catalog.
Blog categories are standard catalog categories, and a blog post is a special product type blog_post. As a result, the blog works closely with Magento mechanisms that the store already has and that are well integrated with the frontend, SEO, store views, cache, and administration.
Unique concept
The key feature of the module is using the Magento catalog as the content publishing engine.
The module adds a new product type:
blog_post
The blog_post type is based on virtual product behavior, but it is not intended for sale. The post does not render price, cart, inventory information, or purchasing elements. From Magento's perspective, however, it remains a catalog entity, so it can use existing catalog features.
This approach combines two things:
- the editorial nature of a blog,
- the technical capabilities of the Magento catalog.
Why it matters
Many blog modules create a separate world next to Magento: separate post tables, separate categories, separate routing, separate SEO, and separate integrations. This often means more code, more exceptions, and more places that need to be maintained.
Kowal_Blog takes the opposite approach. It uses what Magento already does well:
- catalog categories,
- product-category relationships,
- EAV attributes,
- store views,
- URL rewrites,
- meta title and meta description,
- sitemap,
- cache,
- page layouts,
- product images,
- translations,
- standard admin forms.
As a result, the blog is not a separate add-on, but a natural part of the Magento store.
Business benefits
Consistent SEO with Magento
Posts use native Magento SEO fields:
url_key,meta_title,meta_description,meta_keyword.
The module also generates structured data tailored to blog content, such as BlogPosting, CollectionPage, ItemList, and BreadcrumbList. At the same time, it eliminates product structured data where the post should not be treated as a sellable product.
Better use of store categories
Blog categories are catalog categories. The administrator selects one category as the blog root, and its subcategories become blog categories.
This allows you to create a logical content structure, for example:
- Blog,
- Blog / Guides,
- Blog / News,
- Blog / SEO,
- Blog / Magento.
Less separate infrastructure
The module does not require a separate blog category model or a separate base post model. This reduces the amount of custom code and lowers the risk of conflicts with Magento mechanisms.
A familiar workflow for the administrator
A blog post is created similarly to a product. The administrator works with a familiar Magento form, but with attributes adapted to content:
- publication date,
- author,
- post format,
- tags,
- reading level,
- content source,
- featured post status.
Store views and translations
Because post content is based on product attributes, you can use standard Magento mechanisms for per store view values.
The post lead uses the native:
short_description
The main post content uses the native:
description
This simplifies translations and the maintenance of multilingual content.
Module features
Blog Post product type
The module adds the blog_post product type, based on virtual product behavior. The type is intended for publishing content, not for sales.
Blog Post attribute set
During installation, the Blog Post attribute set is created, containing native Magento fields and additional editorial fields.
The module uses existing Magento attributes where it makes sense:
name as the post title,short_description as the lead,description as the content,image as the main image,url_key as the URL,- native meta fields for SEO.
Blog categories from the Magento catalog
In the module configuration, the administrator selects the main blog category. This category is the blog home page, and its subcategories are blog categories.
Post list
The module supports several list display variants:
- list,
- 2-column grid,
- 3-column grid,
- 4-column grid.
Each variant can display the post image, title, publication date, author, lead, and link to the post.
Post view
The post page renders the content as an article, not as a sellable product. The post template shows:
- title,
- publication date,
- author,
- main image,
- lead,
- full content,
- tags.
The module provides a blog sidebar with blocks:
- blog categories,
- recent posts,
- tags.
The sidebar works with native Magento layouts:
1column,2columns-left,2columns-right.
Forcing the page layout
The administrator can set a separate layout for:
- blog categories,
- post pages.
This allows the blog to have a layout different from standard product categories.
Blocking elements from other modules
In many stores, additional blocks appear on product pages, such as lead time, supplier icons, compare, wishlists, or inventory information.
The module lets you specify layout block names that should be removed only in the blog context. This helps maintain a clean article view without affecting regular product pages.
Structured data
The module generates structured data appropriate for a blog:
BlogPosting for a post,CollectionPage and ItemList for lists,BreadcrumbList for navigation.
This is important because the post is technically a Magento product, but for search engines it should be an article.
Who this module is for
The module is a good choice for Magento stores that want to run a blog without building a separate content system.
It is especially well suited for:
- stores that work heavily with SEO,
- multilingual stores,
- projects with an extensive catalog,
- brands publishing guides and expert content,
- implementations where the blog should be an integral part of the store, not a separate add-on.
The key advantage
The biggest advantage of the module is that it does not try to replace Magento with a separate blog CMS. Instead, it uses the Magento catalog as a solid foundation for content.
With the blog_post product type, the blog gains the flexibility of editorial content while also benefiting from Magento's mature catalog mechanisms.