Добрый день.
Есть необходимость сделать вывод полноразмерного фото товара на странице каталога.

используется конструкция примерного вида:

<table class="table table-hover" id="gallery">

{foreach $list as $product}
<a href="{$product->getMainImage()->getUrl(1200, 1000,'xy')}" class="photo_catalog"><img src="{$product->getMainImage()->getUrl(50, 50,'xy')}" alt="{$image.title|default:"{$product.title} фото {$image@iteration}"}"></a>
{/foreach}

</table>

и вроде всё хорошо, но не работает как надо.
Кликая на первую фото на странице скрипт срабатывает и можно стрелками листать фото всех товаров. А если кликнуть на второе и любое последующее фото, то просто открывается фото в этом окне без обработки скриптом.

Не могу понять в чем дело, помогите люди добрые. Делаю всё вроде через стандартные встроенные в современную тему скрипты.

ps так же непонятно почему не работает стандартный класс rs-in-dialog, фон открывается, видно значёк загрузки и тут же закрывается... sad

Спасибо, вынес эти запросы в самый верх шаблона из всех циклов.
$cart_products используется в стандартном шаблоне для показа кнопки удалить у добавленных в корзину товаров. Не нашёл там ни цены на общее количество добавленных в корзину, ни количества добавленных.

                  {foreach $cart_products as $key => $product_in_cart_id}
                    {if $product_in_cart_id.product.id == $product.id}
                      {$uniq = $product_in_cart_id.cartitem.uniq}
                      <a id="remove-{$product.id}" class="pe-2x pe-7s-close-circle removeItem {*link link-one-click pull-right*}" >{* Удалить *}</a> 
                    {/if}
                  {/foreach}

Долго я ковырялся, плохо когда в смарти почти ноль.
В итоге сделал вот так:

                    {foreach $cart_products as $key => $product_in_cart_id}
                    {if $product_in_cart_id.product.id == $product.id}
                      {*{$uniq = $product_in_cart_id.cartitem.uniq}*}
                      
                      {static_call callback=['\Shop\Model\Cart', 'currentCart'] var='cart'}
                        {$cart_data=$cart->getCartData()}
                        {foreach $cart_data.items as $key => $products_in_cart_cost}
                        {if $products_in_cart_cost.id == $uniq}
                        <span>{$products_in_cart_cost.cost}</span>
                        {/if}
                        {/foreach}
                    {/if}
                    {/foreach}

Не знаю на сколько это правильно, но оно работает. smile) строка которая закомметирована используется ранее в шаблоне, второй раз от неё смысла нет.

Александр, спасибо за наверное более правильный код.
вывод в нужной строке сделал так же как появление кнопок удаления товара из корзины

    {foreach $cart_products as $key => $product_in_cart_id}
                    {if $product_in_cart_id.product.id == $product.id}
                      {$uniq = $product_in_cart_id.cartitem.uniq}
                      {static_call callback=['\Shop\Model\Cart', 'currentCart'] var='cart'}
                        {$cart_data=$cart->getCartData()}
                      <pre>{var_dump($cart_data)}</pre>
                    {/if}
        {/foreach}

Подскажите как вывести нужную сумму товаров в нужной строке? Я в программировании не очень силён.

Добрый день,
есть вывод товаров в каталоге, добавляем товары в корзину там отображается сумма по каждому товару и сумма всей покупки.
Как вывести сумму добавленных в корзину товаров рядом с товаром. Т.е. надо вывести Кол-во товара добавленного в корзину умноженное на его стоимость.
Попробовал использовать код из шаблона корзины, но выводятся все цены всех добавленных товаров.
Использовал такой кусок кода:

{foreach $cart_data.items as $index => $item}
                        {$product=$product_items[$index].product}
                        {$cartitem=$product_items[$index].cartitem}
                        {if $product.title == $cartitem.title}
                        <li data-id="{$index}" data-product-id="{$cartitem.entity_id}">
                            <div class="t-drop-basket__list_item">

                                <div class="t-drop-basket__list_item-price">
                                    <span class="price"> {$item.cost}</span>
                                </div>
                            </div>
                        </li>
        {/if}
{/foreach}

если вдруг кому интересно, то решил вот так {$cat_pol = $product->getMainDir()->getParentDir()->name}

На сайте в шаблоне товара в зависимости от категории нужно выводить разную информацию. Всегда пользовался вот такой конструкцией:

{$cat_parent = $product->getMainDir()->name}

{if $cat_parent == '1' OR $cat_parent == '2}
   
код блока

{else}

код блока

{/if}

Но сейчас структура такая:
Ламинат -> Фирма -> Коллекция -> товар
Соответственно перечислять все коллекции всех фирм в шаблоне это не правильно. Как сделать выбор по категории Ламинат? Понимаю что надо поменять переменную {$cat_parent = $product->getMainDir()->name}, но как не понимаю.

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

Если из далека, то суть такова: у магазина только один способ доставки - Самовывоз и 14 точек самовывоза.
в админке настроено что Самовывоз способ доставки по умолчанию, но он не выбирается таковым при оформлении заказа.
так же в секции Адрес всегда по умолчанию выбран адрес, а не самовывоз. Готов рассмотреть платную доработку.

Спасибо огромное! То что надо.

У меня меню построено так:
Собаки -> Сухой корм
Собаки -> Консервы
Кошки -> Сухой корм
Кошки -> Консервы
и т.д.
Соответственно получаю на странице бренда
Консервы (36)
Консервы (15)
Лакомства (41)
Лакомства (38)

Надо перед категорией товара вставить ссылку на родительскую категорию:
<a>Собаки</a> - <a>Лакомства</a>

Александр, а поподробнее можете рассказать как этим пользоваться? Такая же проблема как у ТС и нужно сделать тоже самое.

а чем стандартные "хлебные крошки" не устраивают?

Александр, добрый день. А как быстро обычно отвечает техподдержка?

У способа оплаты есть такой флажок, а у доставки нет. Написать смогу только в понедельник.
Спасибо.

А что написать, что не работают нестандартные вещи?
С Вашим кодом обнаружил вот такой глюк:
https://s8.hostingkartinok.com/uploads/images/2017/08/23d2cf5c89966cea5956a540256e252c.png
Адрес "Заберу сам" выбран автоматически, соответственно "Самовывоз" с Вашим кодом выбирается автоматически, а способы оплаты не появляются. Соответственно клиент не может оформить заказ т.к. CMS говорит Выберите способ оплаты... Оставить Ваш код в работе не могу т.к. сайт действующий.
Нажимая на "Доставка по адресу" видим следующее:
https://s8.hostingkartinok.com/uploads/images/2017/08/ac873009067a4b6e5453b9138c7b4d51.png
Способ доставки не выбран, код Ваш работает на первом скрине, а на втором нет. правок в файлах не производил.

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

чтоб пользователь только выбрал "Заберу сам" или ввел адрес. всё остальное происходило автоматически.
Ваш код у меня выбирает автоматически только "самовывоз", когда переключаюсь на ввод адреса, то способ доставки не выбран...

У нас сайт производит только локальную доставку в пределах города и соответственно на сайте 3 вида доставки:
Самовывоз
Бесплатная доставка курьером - Это настроено в способах доставки, как доставка с фиксированной стоимостью с максимальной суммой заказа 400р.
Платная доставка курьером стоимостью 150р, если стоимость заказа менее 399р. - Это настроено в способах доставки, как доставка с фиксированной стоимостью 150р с максимальной суммой заказа 399р.

Пользователь при оформлении заказа выбирает сначала "Заберу сам" или вводит адрес для доставки (это логика работы CMS)
В зависимости что пользователь выбрал ему выводятся возможные способы доставки. У нас получается что для каждого случая и каждого клиента способ всегда один.
Т.е. это либо способ доставки самовывозом, а пользователь уже выбрал "Заберу сам" там где указывал адрес (приходится нажимать "самовывоз" второй раз). Либо если введен адрес, то от суммы заказа (больше или меньше 400р) выводится платная или бесплатная доставка курьером.

вот скрин, думаю понятно будет.
http://i92.fastpic.ru/big/2017/0816/36/1e1f06647b9223d75083c68e370aec36.png

приведенный Вами путь совпадает с моим из первого сообщения, перед заголовком блока добавил символы и они вывелись на сайте. Файл именно тот который редактирую подцепляется сайтом.
Да и внося изменения которые вы указывали выше они применяются, только работает немного не так...

Буду безмерно благодарен, если нужно могу немного заплатить.

https://sushiexpress76.ru/

вот нетронутый файл deliveryblock.tpl

<div class="t-order_method-of-payment onePageDeliveryBlock">
    <h3 class="h3">{t}Выбор способа доставки{/t}</h3>
    <input type="hidden" name="delivery" value="0">

    <div class="order-list-items">
        {foreach $delivery_list as $item}
            {if $item.class != 'myself' || $order.only_pickup_points == 1}
                {$something_wrong=$item->getTypeObject()->somethingWrong($order)}
                <div class="item">
                    <div class="radio-column">
                        <input type="radio" name="delivery" value="{$item.id}" id="dlv_{$item.id}" {if $order.delivery==$item.id}checked{/if} {if $something_wrong}disabled="disabled"{/if}>
                    </div>

                    <div class="info-column">
                        <div class="line">
                            <label class="h3" for="dlv_{$item.id}" class="title">{$item.title}</label>
                            <span class="price">
                                {if !$something_wrong}
                                    <span class="help">{$order->getDeliveryExtraText($item)}</span>
                                    <span class="price-value">{$order->getDeliveryCostText($item)}</span>
                                {/if}
                            </span>
                        </div>

                        <div class="descr">
                            {if $something_wrong}
                                <div class="something-wrong">{$something_wrong}</div>
                            {/if}
                            {if !empty($item.picture)}
                                <img class="logoService" src="{$item.__picture->getUrl(100, 100, 'xy')}" alt="{$item.title}"/>
                            {/if}
                            {$item.description}
                        </div>

                        {if $item.class=='myself' && !empty($warehouses)}
                            <div class="warehouseBlock">
                                <p class="title">{t}Выберите пункт выдачи{/t}:</p>
                                <select name="warehouse" {if $order.delivery!=$item.id}disabled="disabled"{/if}>
                                    {foreach $warehouses as $warehouse}
                                        <option value="{$warehouse.id}" {if $order.warehouse==$warehouse.id}selected="selected"{/if}>{$warehouse.title}</option>
                                    {/foreach}
                                </select>
                            </div>
                        {/if}

                        <div class="additionalInfo">{$item->getAddittionalHtml()}</div>
                    </div>
                </div>
            {/if}
        {/foreach}
    </div>
</div>


{*
<div class="onePageDeliveryBlock">
    <h2>Доставка</h2>
    <input type="hidden" name="delivery" value="0">
    <ul class="vertItems">
        {foreach $delivery_list as $item}
            {if $item.class != 'myself' || $order.only_pickup_points == 1}
                {$something_wrong=$item->getTypeObject()->somethingWrong($order)}
                <li {if $item@first}class="first"{/if}>
                    <div class="radio">
                        <input type="radio" name="delivery" value="{$item.id}" id="dlv_{$item.id}" {if $order.delivery==$item.id}checked{/if} {if $something_wrong}disabled="disabled"{/if}>
                        <span class="back"></span>
                    </div>
                    <div class="info">
                        <div class="line">
                            <span id="scost_{$item.id}" class="price">
                                {if $something_wrong}
                                    <span style="color:red;">{$something_wrong}</span>
                                {else}
                                    <span class="help">{$order->getDeliveryExtraText($item)}</span>
                                    {$order->getDeliveryCostText($item)}
                                {/if}
                            </span>
                            <label for="dlv_{$item.id}" class="title">{$item.title}</label>
                        </div>
                        <p class="descr">
                            {if !empty($item.picture)}
                               <img class="logoService" src="{$item.__picture->getUrl(100, 100, 'xy')}"/>
                            {/if}
                        {$item.description}</p>
                        {* Если выбран самовывоз покажем склады для выбора
                        {if $item.class=='myself' && !empty($warehouses)}
                          <div class="warehouseBlock">
                             <p class="title">Выберите пункт выдачи:</p>
                             <select name="warehouse" {if $order.delivery!=$item.id}disabled="disabled"{/if}>
                                 {foreach $warehouses as $warehouse}
                                    <option value="{$warehouse.id}" {if $order.warehouse==$warehouse.id}selected="selected"{/if}>{$warehouse.title}</option>
                                 {/foreach}
                             </select>
                          </div>
                        {/if}
                        <div class="additionalInfo">{$item->getAddittionalHtml($order)}</div>
                    </div>
                </li>
            {/if}
        {/foreach}
    </ul>
</div>
*}

да, сейчас вот так

<input type="radio" name="delivery" value="{$item.id}" id="dlv_{$item.id}" {if $order.delivery==$item.id || count($delivery_list)==1}checked{/if} {if $something_wrong}disabled="disabled"{/if}>

Попробовал - работает, но примерно так же как и мой вариант.
т.е. первый способ оплаты "самовывоз" активен т.к. активен адрес "заберу сам", но если выбрать "доставка по адресу", то способ доставки уже не активен, радиокнопка не нажата.

Я не очень силен в программировании
в файле /templates/***/moduleview/onepageorder/templates/flatlines/checkout/deliveryblock.tpl
в 11 строке прописал checked="" чтоб радиокнопка была всегда активна и хотел для блока сделать display="none"

<div class="radio-column">
                        <input type="radio" name="delivery" value="{$item.id}" id="dlv_{$item.id}" {if $order.delivery==$item.id}checked{/if} {if $something_wrong}disabled="disabled"{/if}>
                    </div>

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

Добрый день,
Суть моего вопроса в следующем: использую плагин "оформление заказа на одной странице", на сайте есть 3 вида доставки - Самовывоз, Платная доставка (при сумме заказа до 399р), Бесплатная доставка (при сумме заказа выше 400р).
Сделано всё стандартными средствами и всё работает.
Задача в том чтоб скрыть от пользователя пункт с выбором доставки т.к. в каждом конкретном случае способ доставки только один.
Первый вариант
https://s8.hostingkartinok.com/uploads/images/2017/08/e423b6db578f05388c051badb382c7eb.png
Второй
https://s8.hostingkartinok.com/uploads/images/2017/08/19f2fa639953673768367077a777bc9b.png
Третий выкладывать не стал, но думаю понятно.

Попробовал у способа доставки поставить атрибут checked по умолчанию чтоб способ доставки был выбран всегда и блок можно было скрыть, но стоимость доставки считается не верно. Как правильно сделать задуманное не понимаю.

в скайп напишите dr.faroza

Добрый день.
на страницах каталога вывожу характеристики товара вот так

{$product->getPropertyValueByTitle('Вес')}

и

{$product->getPropertyValueByTitle('Состав')}

Получается вот так
https://s8.hostingkartinok.com/uploads/thumbs/2017/06/11c8e842b37c72923938d8988792ecff.png
На главной странице из блока с шаблоном top_products.tpl идёт вызов основного шаблона каталога

{include file="%catalog%/product_in_list_block.tpl" product=$product}

соответственно выводы характеристик там есть, но они не выводятся.
вот так:
https://s8.hostingkartinok.com/uploads/images/2017/06/0e55e72070971aabd3ab1f4bd44e6d11.png
Куда копать и как это поправить?