Как переопределить шаблон блога понятно.. Но, как подгружать шаблон материала, соответствующий именно переопределенному шаблону блога не очевидно..

Я сделал так. 

В папке шаблона переопределил шаблон блога:

шаблон/html/com_content/category/shop.xml
шаблон/html/com_content/category/shop.php
шаблон/html/com_content/category/shop_item.php

Далее, создал пункт меню для этого шаблона.

Теперь, для раскладки article я создал 2 копии файла

шаблон/html/com_content/article/default.php

Для общего случая файл

шаблон/html/com_content/category/default_all.php

И для шаблона категории shop

шаблон/html/com_content/category/default_shop.php

А содержимое файла defaul.php я заменил на следущее

defined('_JEXEC') or die;

$active = JFactory::getApplication()->getMenu()->getActive();
$tmp = explode(':', $active->query['layout']);
$layout = $tmp[1];

if(empty($layout) || $layout == 'blog'){
$layout = 'all';
}

echo $this->loadTemplate($layout);