---
title: "Разные макеты карточки товара и категории в JoomShopping - WebTolk"
description: "Как делать разные макеты категорий, товаров в списке товаров и карточки товара в JoomShopping? В зависимости от выбранного макета категории. Joomla 5, JoomShopping 5. Примеры кода, инструкция."
url: "https://web-tolk.ru/blog/raznye-makety-kartochki-tovara-i-kategorii-v-joomshopping"
date: "2024-11-13T14:14:21+00:00"
language: "ru-RU"
---

# Разные макеты карточки товара и категории в JoomShopping

 Автор: Сергей Толкачев Создано: 13 ноября 2024 Обновлено: 01 сентября 2025 Просмотров: 1522

В интернет-магазине JoomShopping мы делаем свой шаблон, копируя штатный - **`components/com_jshopping/templates/default`**. Переименовываем папку с шаблоном из default во что-то своё, то же самое с **`components/com_jshopping/css/default.css`** (либо не используем вообще). И можно без проблем дальше пилить под свои нужды.

В настройках можно включить **"Использовать разные шаблоны для отдельных категорий и товаров"**. Тогда для категории и для карточки товара можно будет указывать эти шаблоны в настройках. Какие-то товары у нас просто товары, а какие-то - фильдипёрсовые и для них отдельный дизайн.

## Карточка товара

Тут всё просто: идём в **`components/com_jshopping/templates/ВАШ_ШАБЛОН/product`** и переименовываем **product_default.php** в **product_ВАШЕНАЗВАНИЕ.php**. Именно так, только с одним нижним подчёркиванием. **product_default.php** подключает с помощью `include()` все остальные файлы из этой папки. Их мы так же можем уникализировать путём копирования. А в **product_ВАШЕНАЗВАНИЕ.php** подправить подключение.

## Шаблон категории товаров

Тут с виду тоже всё просто. Идём в **components/com_jshopping/templates/ВАШ_ШАБЛОН/category**. Видим там 3 файла:

- **maincategory.php** - это макет главной категории. У него есть список категорий и описание текстом.
- **category_default.php** - это те самые шаблоны, которые мы можем выбрать в настройках категории в админке. Принцип такой же как и с товаром. Здесь уже подключается отображение товаров с помощью файла product.php.
- **products.php** - в нём содержится базовая разметка для отображения стандартного фильтра (количество, убывание/возрастание и т.д.), сообщения "нет товаров" и пагинации внизу.

А вот запчасти для списка товаров находятся уже в папке **list_products**. Так как эти же запчасти используются для списка товаров производителя, вендора и т.д.

```
<?php
include(__DIR__ . "/../" . $this->template_block_list_product);
```

Эта конструкция как раз и содержит путь для подключения файла **components/com_jshopping/templates/ВАШ_ШАБЛОН/list_products/list_products.php**, в котором в свою очередь циклом выводится содержимое файла **components/com_jshopping/templates/ВАШ_ШАБЛОН/list_products/product.php**. Этот последний **product.php** и есть товар в списке товаров.

## Что делать, если нам нужны разные макеты и здесь?.. В зависимости от выбранного макета категории?

Правильно. Мы должны всё продублировать. Например, мой макет категории будет называться **category_premade.php**.
В файле **components/com_jshopping/templates/ВАШ_ШАБЛОН/category/category_premade.php** я подключаю **components/com_jshopping/templates/ВАШ_ШАБЛОН/category/products_premade.php**. В нём мы подменяем путь на свой:

```
<?php
// Отдельный макет для готовой продукции
$this->template_block_list_product = 'list_products/list_productspremade.php';
include(__DIR__ . "/../" . $this->template_block_list_product);
```

и теперь подключается файл **components/com_jshopping/templates/ВАШ_ШАБЛОН/list_products/list_productspremade.php**.
В нём в цикле подключается файл **product.php** из той же папки. Путь к нему запрятан в:

```
<?php
include(__DIR__ . "/" . $product->template_block_product);
```

Поэтому мы и тут подменяем путь и пишем своё:

```
<?php
foreach ($this->rows as $k => $product)
{
     $product->template_block_product = 'product_premade.php';
     include(__DIR__ . "/" . $product->template_block_product);
}
```

А уже в своей копии **product.php** - **product_premade.php** - мы делаем всё, что хотим.

В моём случае мне нужно было выводить разные названия кнопок в зависимости от типа продукции: "создать дизайн" для основных категорий. И обычное "купить" и "в корзину" для категорий с готовой продукцией.

- [Пост в Telegram-канале](https://t.me/webtolkru/368)

## Об авторе

![Толкачев Сергей Юрьевич](https://web-tolk.ru/images/uslugi/sergey-tolkachyov-apr-2023.webp)

### Толкачев Сергей Юрьевич

Joomla-разработчик. [Контрибьютер ядра Joomla](https://github.com/joomla/joomla-cms/pulls?q=is%3Apr+author%3Asergeytolkachyov+). Один из ведущих Telegram-канала русскоязычного Joomla-сообщества [JoomlaFeed](https://t.me/joomlafeed), один из модераторов [чата русскоязычного Joomla-сообщества](https://t.me/joomlaru). Мои расширения в официальном маркетплейсе расширений Joomla - [Joomla Extensions Directory](https://extensions.joomla.org/profile/profile/details/528051/). Имею публикации в [официальном журнале международного Joomla-сообщества - Joomla Community Magazine](https://magazine.joomla.org/authors/sergeytolkachyov) и на [официальном сайте русскоязычного Joomla-сообщества](https://joomlaportal.ru/users/sergey-tolkachyov).

Муж. Отец 3 детей.

Россия, Саратов.

## JSON-LD Schema

```json
{
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17",
    "itemListElement": [
        {
            "@type": "ListItem",
            "position": 1,
            "item": {
                "@id": "https://web-tolk.ru/",
                "name": "Главная"
            }
        },
        {
            "@type": "ListItem",
            "position": 2,
            "item": {
                "@id": "https://web-tolk.ru/blog",
                "name": "Блог"
            }
        },
        {
            "@type": "ListItem",
            "position": 3,
            "item": {
                "name": "Разные макеты карточки товара и категории в JoomShopping"
            }
        }
    ]
}
```

```json
{
    "@context": "https://schema.org",
    "@graph": [
        {
            "@type": "Organization",
            "@id": "https://web-tolk.ru/#/schema/Organization/base",
            "name": "WebTolk",
            "url": "https://web-tolk.ru/",
            "logo": {
                "@type": "ImageObject",
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo",
                "url": "images/webtolk-1080p.jpg",
                "contentUrl": "images/webtolk-1080p.jpg",
                "width": 1920,
                "height": 1080
            },
            "image": {
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo"
            },
            "sameAs": [
                "https://github.com/WebTolk",
                "https://github.com/sergeytolkachyov",
                "https://vk.com/web_tolk",
                "https://vk.com/webtolkru",
                "https://tenchat.ru/sergeytolkachyov",
                "https://t.me/sergeytolkachyov",
                "https://t.me/webtolkru"
            ]
        },
        {
            "@type": "WebSite",
            "@id": "https://web-tolk.ru/#/schema/WebSite/base",
            "url": "https://web-tolk.ru/",
            "name": "WebTolk",
            "publisher": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            }
        },
        {
            "@type": "WebPage",
            "@id": "https://web-tolk.ru/#/schema/WebPage/base",
            "url": "https://web-tolk.ru/blog/raznye-makety-kartochki-tovara-i-kategorii-v-joomshopping",
            "name": "Разные макеты карточки товара и категории в JoomShopping - WebTolk",
            "description": "Как делать разные макеты категорий, товаров в списке товаров и карточки товара в JoomShopping? В зависимости от выбранного макета категории. Joomla 5, JoomShopping 5. Примеры кода, инструкция.",
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebSite/base"
            },
            "about": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            },
            "inLanguage": "ru-RU",
            "breadcrumb": {
                "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17"
            }
        },
        {
            "@type": "Article",
            "@id": "https://web-tolk.ru/#/schema/com_content/article/113",
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebPage/base"
            }
        }
    ]
}
```
