1

Тема: Карточка товара

Всем привет!

Сейчас карточки товара выглядит вот:
http://s017.radikal.ru/i404/1609/97/f1d037c02333.jpg

Как между название товара и ценой вставить "Комплектацию"
В моем случае - это 36-37-**-46, в отличии от модели.
Чтобы пользователь не кликал на каждый товар, а сразу видел какие размеры доступны.

+ Как реализовать фильтр по комплектации ( так же по размерам )

Тема: Молодежная.
catalog/list_products_items.tpl

Буду очень благодарна за помощь)
________________

{if $view_as == 'blocks'}
    <ul class="products">
        {foreach $list as $product}
            <li {$product->getDebugAttributes()} data-id="{$product.id}">
                {$main_image=$product->getMainImage()}
                <a href="{$product->getUrl()}" class="image">{if $product->inDir('new')}<i class="new"></i>{/if}<img src="{$main_image->getUrl(188,258)}" alt="{$main_image.title|default:"{$product.title}"}"/></a>
                {hook name="catalog-list_products:blockview-title" title="{t}Просмотр категории продукции:название товара, блочный вид{/t}"}
                    <a href="{$product->getUrl()}" class="title">{$product.title}</a>
                {/hook}
                <p class="price">{$product->getCost()} {$product->getCurrency()}
                    {$last_price=$product->getOldCost()}
                    {if $last_price>0}<span class="last">{$last_price} {$product->getCurrency()}</span>{/if}</p>
                   
                {if $THEME_SETTINGS.enable_favorite}
                <a class="favorite listStyle{if $product->inFavorite()} inFavorite{/if}" data-title="{t}В избранное{/t}" data-already-title="{t}В избранном{/t}"></a>
                {/if}
               
                <div class="hoverBlock">
                    <div class="back"></div>
                    <div class="main">
                        {hook name="catalog-list_products:blockview-buttons" title="{t}Просмотр категории продукции:кнопки, блочный вид{/t}"}
                            {if $shop_config}
                                {if $product->shouldReserve()}
                                    <a data-href="{$router->getUrl('shop-front-reservation', ["product_id" => $product.id])}" class="button reserve inDialog">Заказать</a>
                                {else}       
                                    {if $check_quantity && $product.num<1}
                                        <span class="noAvaible">Нет в наличии</span>
                                    {else}
                                        {if $product->isOffersUse() || $product->isMultiOffersUse()}
                                            <span data-href="{$router->getUrl('shop-front-multioffers', ["product_id" => $product.id])}" class="button showMultiOffers inDialog noShowCart">В корзину</span>
                                        {else}
                                            <a data-href="{$router->getUrl('shop-front-cartpage', ["add" => $product.id])}" class="button addToCart noShowCart" data-add-text="Добавлено">В корзину</a>
                                        {/if}                                                           
                                    {/if}
                                {/if}
                            {/if}                           
                        {/hook}
                        {if $THEME_SETTINGS.enable_compare}
                        <a class="compare{if $product->inCompareList()} inCompare{/if}"><span>К сравнению</span><span class="already">Добавлено</span></a>
                        {/if}
                    </div>
                </div>                       
            </li>                   
        {/foreach}
    </ul>
{else}
    <table class="productTable">
        {foreach $list as $product}
        <tr {$product->getDebugAttributes()} data-id="{$product.id}">
            {$main_image=$product->getMainImage()}
            <td class="image"><a href="{$product->getUrl()}"><img src="{$main_image->getUrl(100,100)}" alt="{$main_image.title|default:"{$product.title}"}"/></a></td>
            <td class="info">
                {hook name="catalog-list_products:tableview-title" title="{t}Просмотр категории продукции:название товара, табличный вид{/t}"}
                    <a href="{$product->getUrl()}" class="title">{$product.title}</a>
                {/hook}
                {if $product.barcode}<p class="barcode">Артикул: {$product.barcode}</p>{/if}
                <p class="descr">{$product.short_description}</p>
            </td>
            {if $THEME_SETTINGS.enable_favorite}           
            <td class="best">
                <a class="favorite listStyle{if $product->inFavorite()} inFavorite{/if}" data-title="{t}В избранное{/t}" data-already-title="{t}В избранном{/t}"></a>
            </td>
            {/if}           
            <td class="price">{$product->getCost()} {$product->getCurrency()}</td>
            <td class="actions">
                {hook name="catalog-list_products:tableview-buttons" title="{t}Просмотр категории продукции:кнопки, табличный вид{/t}"}
                    {if $shop_config}
                        {if $product->shouldReserve()}
                            <a href="{$router->getUrl('shop-front-reservation', ["product_id" => $product.id])}" class="button reserve inDialog">Заказать</a>
                        {else}       
                            {if $check_quantity && $product.num<1}
                                <div class="noAvaible">Нет в наличии</div>
                            {else}
                                {if $product->isOffersUse() || $product->isMultiOffersUse()}
                                    <span data-href="{$router->getUrl('shop-front-multioffers', ["product_id" => $product.id])}" class="button showMultiOffers inDialog noShowCart">В корзину</span>
                                {else}
                                    <a data-href="{$router->getUrl('shop-front-cartpage', ["add" => $product.id])}" class="button addToCart noShowCart" data-add-text="Добавлено">В корзину</a>
                                {/if}                                                                                       
                            {/if}
                        {/if}
                    {/if}
                    <br><a class="compare{if $product->inCompareList()} inCompare{/if}"><span>Сравнить</span><span class="already">Добавлено</span></a>
                {/hook}
            </td>
        </tr>                       
        {/foreach}
    </table>
{/if}
{include file="%THEME%/paginator.tpl"}

Повысить оценку Понизить оценку

2 Отредактировано Закусило Александр (12.09.2016 12:13:09)

Re: Карточка товара

В переменной $list содержится массив из множества товаров для данной страницы. Каждый товар это объект \Catalog\Model\Orm\Product (т.е. объект товара). И Вам соответственно доступны все методы товара, включая получение его комплектаций.
Комплектации можно получить вызвав метод fillOffers у товара. Но т.к. это список, то подгружать комплектации лучше массово через метод API.

{$list=$this_controller->api->addProductsOffers($list)}
//А дальше тут идёт перебор и вывод товаров.

После этого у каждого товара у которого есть комплектации появится подмассив offers. Его можно перебрать и вытащить только нужные комплектации у которых свойство num больше 0.

//Перебор товаров
{foreach $product.offers.items as $offer}
   {if $offer.num>0}
       {$offer.title}
   {/if}
{/foreach}
//Конец перебора

Ну а дальше украсить.

А фильтр назначается только по характеристикам товара. Т.е. в характеристиках должен быть отмечены размеры и у категории добавить нужный фильтр по размерам

3

Re: Карточка товара

Александр, за какую суммы вы сможете это реализовать у нас это на сайте?   ( Имею ввиду карточку товара )
Потому что все равно толком не понял, как это сделать)

Повысить оценку Понизить оценку

Re: Карточка товара

Это делается за 10-20 минут. Вы можете обратиться в нашу платную поддержку, там это стоит 750(час рабочего времени). Это на данный момент.
helpdesk.readyscript.ru

5

Re: Карточка товара

" + Как реализовать фильтр по комплектации ( так же по размерам )
В моем случае - это 36-37-**-46, в отличии от модели"

А фильтр назначается только по характеристикам товара. Т.е. в характеристиках должен быть отмечены размеры и у категории добавить нужный фильтр по размерам

Добавили в Характеристики, http://s56.radikal.ru/i154/1609/02/7ed03b24191d.jpg
Добавили в Характеристики у товара, http://s013.radikal.ru/i324/1609/41/47a24fba1554.jpg
Добавили у 5 моделей.

Фильтр все равно не появился.

Повысить оценку Понизить оценку

Re: Карточка товара

ВЫ забыли о том, что нужно у категории добавить нужную характеристику и отметить флажок, что она участвует в фильтре.
Смотрим видео https://www.youtube.com/watch?v=tf_geLw … p;index=10