Learn how to create a fully responsive, block-based multipurpose WordPress theme for WooCommerce using Full Site Editing (FSE). Step-by-step guide covering theme.json, templates, patterns, and best practices to build a modern eCommerce theme.
Introduction
The WordPress ecosystem has transformed with Full Site Editing (FSE)—a revolutionary way to design entire websites visually using blocks. For developers and entrepreneurs, this opens the door to creating powerful, multipurpose WooCommerce-ready block themes that are fast, customizable, and future-proof.
In this guide, we’ll explore how to build a multipurpose FSE WordPress theme for WooCommerce—from file structure to design philosophy, optimization, and real-world deployment. Whether you’re a freelance developer or building your brand like Kaddora Tech, this tutorial will help you master the essentials.
1. Understanding Full Site Editing (FSE)
Full Site Editing allows you to design headers, footers, sidebars, product pages, and templates visually with the Block Editor—no PHP template editing needed.
Key FSE Features
-
Template Parts Build reusable site sections like headers and footers.
-
Templates Define layouts for posts, pages, products, and archives.
-
Global Styles Manage typography, colors, and spacing using theme.json.
-
Patterns Pre-built design sections that users can insert easily.
-
Block Styles Custom CSS variations for default blocks.
FSE themes are lighter, modular, and fully compatible with Gutenberg and WooCommerce blocks.
2. Folder Structure of an FSE Theme
A multipurpose FSE theme follows a minimal yet organized folder hierarchy.
Here’s a sample
my-fse-woocommerce-theme/
│
├─ style.css
├─ theme.json
├─ functions.php
│
├─ templates/
│ ├─ index.html
│ ├─ single.html
│ ├─ archive.html
│ ├─ 404.html
│ ├─ page.html
│ ├─ home.html
│ └─ product.html
│
├─ parts/
│ ├─ header.html
│ ├─ footer.html
│ └─ sidebar.html
│
├─ patterns/
│ ├─ hero-section.php
│ ├─ features.php
│ ├─ testimonials.php
│ └─ call-to-action.php
│
└─ inc/
└─ block-styles.php
Every folder plays a unique role
-
Templates/ Defines page layouts.
-
Parts/ Header, footer, and reusable areas.
-
Patterns/ Reusable block arrangements.
-
theme.json Controls theme styling globally.
-
functions.php Registers block styles, enqueues assets, etc.
3. Setting Up style.css and theme.json
Example style.css
/*
Theme Name: Kaddora Multipurpose FSE Theme
Theme URI: https://kaddora.com/
Author: Kaddora Tech
Author URI: https://kaddora.com/
Description: A lightweight, block-based multipurpose WooCommerce theme built for Full Site Editing.
Version: 1.0
Requires at least: 6.0
Tested up to: 6.8
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kaddora-fse
Tags: full-site-editing, woocommerce, block-theme, responsive, ecommerce
*/
Example theme.json
This JSON file defines your design system
{
“version”: 2,
“settings”: {
“color”: {
“palette”: [
{ “slug”: “primary”, “color”: “#198754”, “name”: “Primary” },
{ “slug”: “secondary”, “color”: “#222222”, “name”: “Dark” },
{ “slug”: “accent”, “color”: “#FFD700”, “name”: “Accent” }
]
},
“typography”: {
“fontFamilies”: [
{ “fontFamily”: “Poppins, sans-serif”, “slug”: “poppins”, “name”: “Poppins” }
],
“fontSizes”: [
{ “slug”: “small”, “size”: “14px”, “name”: “Small” },
{ “slug”: “medium”, “size”: “16px”, “name”: “Medium” },
{ “slug”: “large”, “size”: “20px”, “name”: “Large” }
]
},
“spacing”: {
“units”: [ “px”, “em”, “rem”, “%” ]
}
},
“styles”: {
“typography”: { “fontFamily”: “Poppins, sans-serif”, “lineHeight”: 1.6 },
“color”: { “background”: “#ffffff”, “text”: “#111111” }
}
}
This approach ensures design consistency across all templates and patterns.
4. Integrating WooCommerce with FSE
To make your theme WooCommerce-compatible, include this in functions.php
add_action( ‘after_setup_theme’, function() {
add_theme_support( ‘woocommerce’ );
add_theme_support( ‘woocommerce-block-templates’ );
});
Key WooCommerce Templates
- templates/single-product.html
- templates/archive-product.html
- parts/mini-cart.html
- patterns/shop-banner.php
With the new WooCommerce Blocks, users can design shop pages visually
- Product Grid
- Featured Products
- Mini Cart
- Checkout and Cart Blocks
- Add to Cart Buttons
This creates a seamless, block-based eCommerce experience.
5. Creating Template Parts
Template parts are reusable across your site.
Example: parts/header.html
<!– wp: group {“layout”:{“type”: “flex”, “justifyContent”: “space-between”}} –>
<div class=”wp-block-group”>
<!– wp:site-title {“level”:1} /–>
<!– wp: navigation /–>
<!– wp:woocommerce/mini-cart /–>
</div>
<!– /wp:group –>
Example: parts/footer.html
<!– wp: group {“align”: “full”, “backgroundColor “: “secondary”, “textColor “: “wh ite”, “style”:{“spacing”:{“padding”:{ “top”:”20px”, “bottom”: “20px”}}}} –>
<div class=”wp-block-group has-secondary-background-color has-white-color has-text-color has-background”>
<!– wp:paragraph {“align”:”center”} –>
<p>© 2025 Kaddora Tech. All rights reserved.</p>
<!– /wp:paragraph –>
</div>
<!– /wp:group –>
These are referenced in templates using
<!– wp:template-part {“slug”:”header”} /–>
<!– wp:template-part {“slug”:”footer”} /–>
6. Building Block Patterns
Patterns let users insert pre-built layouts easily.
Example: patterns/hero-section.php
<?php
register_block_pattern(
‘kaddora/hero-section’,
array(
‘title’ => __( ‘Hero Section’, ‘kaddora-fse’ ),
‘content’ => ‘
<!– wp: cover {“url “: “path-to-image.jp g”, “dimRatio”:50,”minHeight”:400} –>
<div class=”wp-block-cover” style=”min-height:400px”>
<div class=”wp-block-cover__inner-container”>
<!– wp:heading {“textAlign”:”center”} –>
<h2 class=”has-text-align-center”>Build Your Dream Store</h2>
<!– /wp:heading –>
<!– wp:buttons {“align”:”center”} –>
<div class=”wp-block-buttons aligncenter”>
<div class=”wp-block-button”><a class=”wp-block-button__link”>Shop Now</a></div>
</div>
<!– /wp:buttons –>
</div>
</div>
<!– /wp:cover –>’
)
);
7. Optimizing Your FSE WooCommerce Theme
Performance Optimization
- Use clean CSS variables in theme.json
- Defer non-critical JS
- Optimize images with srcset
- Use block patterns instead of heavy page builders.
Accessibility
- Proper heading hierarchy
- Contrast-checked color palette
- ARIA labels for navigation and buttons
SEO Optimization
- Semantic HTML in templates
- Schema markup for products
- Lightweight structure → faster load → better rankings
8. Adding Custom Block Styles
Enhance Gutenberg blocks visually with inline CSS
Example in inc/block-styles.php
register_block_style( ‘core/button’, [
‘name’ => ’rounded-green’,
‘label’ => __( ‘Rounded Green’, ‘kaddora-fse’ ),
‘inline_style’ => ‘
.is-style-rounded-green {
background-color: #198754;
border-radius: 50px;
padding: 12px 25px;
color: #fff;
}
‘
]);
Then load the file
require get_template_directory() . ‘/inc/block-styles.php’;
9. Testing Your Theme
Before submitting or selling
- Test in WordPress 6.8+
- Verify WooCommerce compatibility
- Run through Theme Check Plugin
- Validate accessibility using WAVE or Axe tools.
- Export demo data (WXR) for importers like Kaddora Starter Templates
10. Packaging and Distribution
Once ready
- Add readme.txt
- Compress into .zip
- Test installation
- Upload to
- WordPress.org
- ThemeForest / TemplateMonster
- Your own GPL shop (e.g., kaddora.com/themes)
Include Demo Previews
Add subdomains like
- organic.kaddora.com
- grocery.kaddora.com
- hospital.kaddora.com
Each showcases a niche layout using the same multipurpose base theme.
Top 10 FAQs
-
What is an FSE theme in WordPress? A Full Site Editing theme lets you design your entire website using blocks—headers, footers, and templates—without coding PHP templates.
-
Is FSE compatible with WooCommerce? Yes, WooCommerce now fully supports block templates and product blocks, making it ideal for FSE themes.
-
How is an FSE theme different from a classic theme? FSE themes use HTML templates and theme.json for styling, while classic themes rely on PHP and the Customizer.
-
Can I build multipurpose themes with FSE? Absolutely. With patterns and global styles, you can target multiple industries using one base theme.
-
What tools do I need to start building? You only need WordPress 6.0+, a text editor (VS Code), and basic HTML + CSS knowledge.
-
Can I submit my FSE theme to WordPress.org? Yes, once it follows WordPress.org’s theme review guidelines and passes validation.
-
Does FSE support page builders like Elementor? FSE works natively with Gutenberg. You can use Elementor separately, but they serve different approaches.
-
How do I make my theme lightweight? Avoid heavy scripts, optimize CSS via theme.json, and rely on native blocks instead of custom JS.
-
Is theme.json mandatory? For true FSE themes, yes—it’s the core file that defines design and layout settings.
-
Can I use my FSE WooCommerce theme commercially? Yes. Themes under the GPL license can be sold or distributed freely, provided you retain GPL compliance.
Conclusion
The WordPress landscape is moving toward a block-first, no-code era. Building your own multipurpose FSE WooCommerce theme future-proofs your brand, reduces maintenance, and delivers unmatched customization power to users.
By leveraging theme.json, global styles, WooCommerce blocks, and clean design systems, you can create scalable, performant, and beautiful digital stores for every niche.

Monetising WordPress Themes & Plugins: Licence Models, Free-vs-Pro Strategy & Affiliate Marketing
Read More »
Theme Security Best Practices: Protecting Your Users and Building a Trusted Brand (2025 Edition)
Read More »




Leave a Reply