This Joomla 4 override allows you to display your ecommerce products simply by using Joomla's mod_articles_category module. At the bottom of this article, you can download the files of the override.

Joomla 4 frontend rendering

PhP markup

<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_articles_category
 * @author		web-eau.net
 * @copyright   (C) 2010 Open Source Matters, Inc. <https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Helper\ModuleHelper;
use Joomla\CMS\Language\Text;

if (!$list)
{
	return;
}

?>

<div class="blog-home2 py-5">
	
	<div class="container">

		<div class="row mt-4">
		
			<?php foreach ($list as $item) : ?>
			
			<div class="col-md-4 on-hover">
			
				<div class="card border-0 mb-4">
					
					<!-- intro image -->
					<?php
						$article_images  = json_decode($item->images);
						$article_image   = '';
						$article_image_alt   = '';
							if(isset($article_images->image_intro) && !empty($article_images->image_intro)) {
							$article_image  = $article_images->image_intro;
							$article_image_alt  = $article_images->image_intro_alt;
					}?> 
					<a href="<?php echo $item->link; ?>">
						<img class="card-img-top" src="<?php echo $article_image; ?>" alt="<?php echo $article_image_alt; ?>" >
					</a>
					
					<?php $item->urls = new JRegistry($item->urls); ?>
					<!-- urlatext -->
					<div class="date-pos bg-info-gradiant p-2 d-inline-block text-center rounded text-white position-absolute"><?php echo $item->urls->get('urlatext'); ?>
					<!--urlbtext -->	
					<span class="d-block"><?php echo $item->urls->get('urlbtext'); ?></span></div>
					
                  <div class="card-body">
					<!-- article title -->
					<h4 class="font-weight-medium mt-3">
						<a class="text-decoration-none link <?php echo $item->active; ?>" href="<?php echo $item->link; ?>"><?php echo $item->title; ?></a>
					</h4>
					
					<!-- introtext -->
					<p class="mod-articles-category-introtext mt-3">
						<?php echo $item->displayIntrotext; ?>
					</p>
					
					<!-- article link -->
					<a href="<?php echo $item->link; ?>" class="text-decoration-none linking text-themecolor mt-2">Learn More</a>
                  </div>
				</div>
				
			</div>
			
			<?php endforeach; ?>
			
		</div>
		
	</div>
	
</div>

CSS

.blog-home2 h1,
.blog-home2 h2,
.blog-home2 h3,
.blog-home2 h4,
.blog-home2 h5,
.blog-home2 h6 {
  color: #3e4555;
}
.blog-home2 .font-weight-medium {
  font-weight: 500;
}
.blog-home2 .bg-light {
  background-color: #f4f8fa !important;
}
.blog-home2 .subtitle {
  color: #8d97ad;
  line-height: 24px;
}
.blog-home2 .text-themecolor {
  color: #316ce8;
}
.blog-home2 h5 {
  line-height: 22px;
  font-size: 18px;
}
.blog-home2 a.link {
  color: #3e4555;
}
.blog-home2 a.link:hover {
  color: #316ce8;
}
.blog-home2 .on-hover {
  -webkit-transition: 0.2s ease-in;
  -o-transition: 0.2s ease-in;
  transition: 0.2s ease-in;
}
.blog-home2 .on-hover:hover {
  -webkit-transform: translateY(-10px);
  -ms-transform: translateY(-10px);
  transform: translateY(-10px);
}
.blog-home2 .date-pos {
  right: 10px;
  top: 10px;
}
.blog-home2 .date-pos span {
  font-size: 30px;
  line-height: 30px;
}
.blog-home2 .bg-info-gradiant {
    background: #188ef4;
    background: -webkit-linear-gradient(legacy-direction(to right), #188ef4 0%, #316ce8 100%);
    background: -webkit-gradient(linear, left top, right top, from(#188ef4), to(#316ce8));
    background: -webkit-linear-gradient(left, #188ef4 0%, #316ce8 100%);
    background: -o-linear-gradient(left, #188ef4 0%, #316ce8 100%);
    background: linear-gradient(to right, #188ef4 0%, #316ce8 100%);
}

web-eau.net

29800 Landerneau

+33 674 502 799

daniel@web-eau.net