Опубликовано: 1 июля 2015

Быстрый просмотр (предпросмотр) товара Есть решение

Добрый день!
Вопрос такой:
Можно ли сделать просмотр товара во всплывающем окне не заходя в саму карточку товара? Это было бы очень удобно с точки зрения юзабилити.
Если такое сделать можно, то подскажите как?
Если такое сделать нельзя, то подскажите, пожалуйста, решение "Замены изображений товара при наведении на карточку товара" (Такой вопрос уже был, для шаблона "Купить Просто", ссылка: http://wm-site.ru/buy_simply/171/izmenenie-eskizov...)

Спасибо!


Комментарии (13)

  • Евгений Голов +1 1 июля 2015 10:18 #

    Вот еще один интересный вариант предпросмотра который понравился. http://www.chemodan66.ru/rancy/

    1
  • Игорь Колмаков +30 1 июля 2015 12:18 #

    1. в файле "products.list.html" перед строкой

    {if !$wa->shop->settings('ignore_stock_count')}<div class="available"><span class="bold">[`Availability`]:

    прописать

    <form class="addtocart fast_view" method="post" action="{$wa->getUrl('/frontendCart/add')}"data-url="{$p.frontend_url}{if strpos($p.frontend_url, '?')}&{else}?{/if}cart=1">
    <input type="hidden" name="product_id" value="{$p.id}">
    <input type="submit" value="Быстрый просмотр">
    </form>

    2. в файле "product.cart.html", закомментировать блок

    " />"])}{/if*}

    3. в том же файле перед строкой
    <form id="cart-form{if $wa->get('cart')}-dialog{/if}" method="post" action="{$wa->getUrl('/frontendCart/add')}">
    прописать

    {if $wa->get('cart')}
    {include file="product.image.html" gallery=$theme_settings.gallery}
    {/if}

    4. в пользовательские стили прописать правила

    .dialog-window .cart.product .image.general img {
    max-width: 300px;
    }
    .dialog-window .cart.product .image.general {
    min-width: 300px;
    }
    .dialog-window .cart.product .align-center {
    text-align: center;
    float: left;
    width: 300px;
    margin-right: 40px;
    }
    .dialog-window .cart.product {
    width: 600px;
    }
    .dialog-window>h4{
    width:555px;
    }
    .dialog-window .cart.product .image.general .corner.left {
    left: 0px;
    }
    .dialog-window .cart.product .image.general .corner.bottom {
    bottom: 30px;
    }



    по поводу нескольких изображений для списка товаров - это уже другой вопрос, задайте его в новом "вопросе"

    1
  • Игорь Колмаков +30 1 июля 2015 12:18 #

    1. в файле "products.list.html" перед строкой

    {if !$wa->shop->settings('ignore_stock_count')}<div class="available"><span class="bold">[`Availability`]:

    прописать

    <form class="addtocart fast_view" method="post" action="{$wa->getUrl('/frontendCart/add')}"data-url="{$p.frontend_url}{if strpos($p.frontend_url, '?')}&{else}?{/if}cart=1">
    <input type="hidden" name="product_id" value="{$p.id}">
    <input type="submit" value="Быстрый просмотр">
    </form>

    2. в файле "product.cart.html", закомментировать блок

    {if !empty($theme_settings.dialogImg)}<span class="dialog-image-product">{$wa->shop->productImgHtml($product, '96x96', ['alt' => '', 'default' => "`$wa_theme_url`img/dummy96.png"])}</span>{/if}
    должно получиться так
    {*if !empty($theme_settings.dialogImg)}<span class="dialog-image-product">{$wa->shop->productImgHtml($product, '96x96', ['alt' => '', 'default' => "`$wa_theme_url`img/dummy96.png"])}</span>{/if*}

    3. в том же файле перед строкой
    <form id="cart-form{if $wa->get('cart')}-dialog{/if}" method="post" action="{$wa->getUrl('/frontendCart/add')}">
    прописать

    {if $wa->get('cart')}
    {include file="product.image.html" gallery=$theme_settings.gallery}
    {/if}

    4. в пользовательские стили прописать правила




    .dialog-window .cart.product .image.general img {
    max-width: 300px;
    }
    .dialog-window .cart.product .image.general {
    min-width: 300px;
    }
    .dialog-window .cart.product .align-center {
    text-align: center;
    float: left;
    width: 300px;
    margin-right: 40px;
    }
    .dialog-window .cart.product {
    width: 600px;
    }
    .dialog-window>h4{
    width:555px;
    }
    .dialog-window .cart.product .image.general .corner.left {
    left: 0px;
    }
    .dialog-window .cart.product .image.general .corner.bottom {
    bottom: 30px;
    }

    1
  • Игорь Колмаков +30 1 июля 2015 12:19 #

    Замены изображений товара при наведении на карточку товара

    это уже другой вопрос - задайте его в новом "вопросе"

    1
  • Игорь Колмаков +30 1 июля 2015 12:21 #

    после того как внесете изменения, пришлите пожалуйста адрес сайта - на обсуждение

    1
  • Решение
    Игорь Колмаков +30 1 июля 2015 12:29 #

    1. в файле "products.list.html" перед строкой



    {if !$wa->shop->settings('ignore_stock_count')}<div class="available"><span class="bold">[`Availability`]:



    прописать



    <form class="addtocart fast_view" method="post" action="{$wa->getUrl('/frontendCart/add')}"data-url="{$p.frontend_url}{if strpos($p.frontend_url, '?')}&{else}?{/if}cart=1">
    <input type="hidden" name="product_id" value="{$p.id}">
    <input type="submit" value="Быстрый просмотр">
    </form>



    2. в файле "product.cart.html", закомментировать блок



    {if !empty($theme_settings.dialogImg)}<span class="dialog-image-product">{$wa->shop->productImgHtml($product, '96x96', ['alt' => '', 'default' => "`$wa_theme_url`img/dummy96.png"])}</span>{/if}
    должно получиться так
    {*if !empty($theme_settings.dialogImg)}<span class="dialog-image-product">{$wa->shop->productImgHtml($product, '96x96', ['alt' => '', 'default' => "`$wa_theme_url`img/dummy96.png"])}</span>{/if*}



    3. в том же файле перед строкой
    <form id="cart-form{if $wa->get('cart')}-dialog{/if}" method="post" action="{$wa->getUrl('/frontendCart/add')}">
    прописать



    {if $wa->get('cart')}
    {include file="product.image.html" gallery=$theme_settings.gallery}
    {/if}



    4. в пользовательские стили прописать правила



    ul.list .addtocart.fast_view{
    margin-right:10px;
    }
    ul.thumbs .addtocart.fast_view{
    position:absolute;
    top: 70px;
    display:none;
    }
    ul.thumbs li:hover .addtocart.fast_view{
    display:block;
    }
    ul.thumbs .addtocart.fast_view input[type='submit']{
    opacity:0.6;
    }
    ul.thumbs .addtocart.fast_view input[type='submit']:hover{
    opacity:1;
    background:#473b39;
    transition:all .3s;
    }
    .dialog-window .cart.product .image.general img {
    max-width: 300px;
    }
    .dialog-window .cart.product .image.general {
    min-width: 300px;
    }
    .dialog-window .cart.product .align-center {
    text-align: center;
    float: left;
    width: 300px;
    margin-right: 40px;
    }
    .dialog-window .cart.product {
    width: 600px;
    }
    .dialog-window>h4{
    width:555px;
    }
    .dialog-window .cart.product .image.general .corner.left {
    left: 0px;
    }
    .dialog-window .cart.product .image.general .corner.bottom {
    bottom: 30px;
    }

    2
  • Евгений Голов +1 1 июля 2015 12:37 #

    Пользовательские стили вносятся в файле "comfortbuy.shop.css" ?

    Изменения внесены. Сайт Sumki5.ru.
    Нужно только выровнять элементы.

    Вопрос:
    Можем ли в всплывающее окно добавить информацию, которая содержится в вкладках "Описание" и "Характеристики"?

    1
  • Евгений Голов +1 1 июля 2015 13:51 #

    Еще увидел один момент.
    Когда в категории товаров спускаешься вниз подгружаются другие товары, если в них нажать на "Быстрый просмотр", а потом закрыть окно и вернуться на самый вверх страницы и попробовать поводить курсором над пунктами меню и логотипом, то увидите, что показывается всплывающее окно с просмотром фото товара. Показывается и исчезает. Если сдвинуть курсор на пару пикселей в любую сторону, то снова покажется и исчезнет.

    Скриншот: http://joxi.ru/823bpXkIkE9xmO

    1
  • Решение
    Игорь Колмаков +30 1 июля 2015 14:37 #

    к предыдущей инструкции

    1. в файле "product.cart.html", заменить

    {include file="product.image.html" gallery=$theme_settings.gallery}

    на

    {include file="product.image.html" gallery="popup"}

    2. в пользовательские стили прописать дополнительные правила

    .dialog-window .cart.product #product-gallery .jcarousel-clip-horizontal {
    width: 266px;
    }
    .dialog-window .cart.product #product-gallery .jcarousel-container{
    width: 300px;
    }
    .dialog-window .cart.product {
    bottom: 15% !important;
    overflow-y: auto;
    }
    .dialog-window .cart.product #cart-form-dialog{
    margin-left:320px;
    }
    .dialog-window .cart.product #product-description{
    margin-top:20px;
    }

    3. для добавления блока описания товара: в файле "product.cart.html", в конце файла прописать

    {if $wa->get('cart')}
    <div class="clear"></div>
    {if $product.description}<div class="description" id="product-description" itemprop="description">{$product.description}</div>{/if}
    {/if}


    4. характеристики к сожалению достать нельзя


    3
  • Евгений Голов +1 1 июля 2015 15:26 #

    Спасибо вам за оперативную поддержку!
    Изменения внес.
    Только пункт 3 сделал таким:

    Перед строкой <script type="text/javascript" src="{$wa_theme_url}product.js?v{$wa_theme_version}"></script>

    вставил

    {if $wa->get('cart')}
    <!--<div class="clear"></div>-->
    {if $product.description}<div class="description" id="product-description" itemprop="description">{$product.description}</div>{/if}
    {/if}

    При том обратите внимание, что пришлось закомментировать строку <div class="clear"></div>.

    Это не критично?
    Таким образом добился, чтобы описание товара отображалось под кнопкой "В КОРЗИНУ" (скриншот: http://joxi.ru/D2P4QoDueMPN23)




    1
    • Игорь Колмаков Игорь Колмаков +30 1 июля 2015 15:39 #

      <div class="clear"></div>

      я вставил специально для случаев когда блок с ценой меньше высоты блока изображением, т.к. блок с изображением имеет float:left;

      1
  • Игорь Колмаков +30 1 июля 2015 15:40 #

    если делать как Вы написали, то при большом объеме текста, он будет обтекать блок с изображением

    но как кому нравится

    1
  • Oleg Astriyskiy +0 21 июля 2016 12:03 #

    Здравствуйте. Как сделать чтобы при появлении окна быстрого просмотра основной фон сайта был не белый с прозрачностью, а оверлей (как в fancybox)

    1
  • Oleg Astriyskiy +0 1 января 2017 15:33 #

    Здравствуйте. С Новым Годом вас!
    У меня есть проблема с этим окном быстрого просмотра при включенном CDN.
    Выглядит так. При первом клике на любую кнопку Быстрый просмотр на странице категории окно быстрого просмотра не открывается.
    Открывается окно только при втором клике. Все последующие нажатия любых кнопок Быстрый просмотр открываются с первого раза.
    Однако если перезагрузить (закрыть-открыть) страницу категории происходит тоже самое. То есть первый клик не срабатывает.

    Да и в окне Быстрого просмотра при клике по миниатюре основное фото не меняется. Вообще ни работает.
    Такие ошибки возникают только при включенном CDN. Если его выключить то все работает как надо.
    Конечно возможно проблема в самом CDN, но никаких других ошибок на сайте при использовании CDN я не наблюдаю.

    И в Google Console вот такие ошибки (когда CDN выключен их нет)
    Эти ошибки появляются при первом нажатии на кнопку Быстрый просмотр. Сама страница категории загружается без этих ошибок.

    Uncaught ReferenceError: Product is not defined
    at HTMLDocument.eval (eval at <anonymous> (jquery.min.js:2), <anonymous>:3:13)
    at j (jquery.min.js:2)
    at Object.add [as done] (jquery.min.js:2)
    at m.fn.init.m.fn.ready (jquery.min.js:2)
    at e.fn.init.m.fn.init (jquery.min.js:2)
    at e.fn.init (jquery-migrate-1.2.1.min.js:2)
    at m (jquery.min.js:2)
    at eval (eval at <anonymous> (jquery.min.js:2), <anonymous>:2:5)
    at eval (<anonymous>)
    at jquery.min.js:2
    jquery.jcarousel.min.js:16 Uncaught Error: jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...
    at a.jcarousel.pos (jquery.jcarousel.min.js:16)
    at a.jcarousel.scroll (jquery.jcarousel.min.js:16)
    at a.jcarousel.reload (jquery.jcarousel.min.js:16)
    at jquery.jcarousel.min.js:16
    jquery.jcarousel.min.js?v2.9.0:16 Uncaught Error: jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...
    at a.jcarousel.pos (jquery.jcarousel.min.js?v2.9.0:16)
    at a.jcarousel.scroll (jquery.jcarousel.min.js?v2.9.0:16)
    at a.jcarousel.reload (jquery.jcarousel.min.js?v2.9.0:16)
    at jquery.jcarousel.min.js?v2.9.0:16
    pos @ jquery.jcarousel.min.js?v2.9.0:16
    scroll @ jquery.jcarousel.min.js?v2.9.0:16
    reload @ jquery.jcarousel.min.js?v2.9.0:16
    (anonymous) @ jquery.jcarousel.min.js?v2.9.0:16

    1
    • Александр Тирон Александр Тирон +23 5 января 2017 17:50 #

      Попробуйте в файле product.cart.html(Магазин-Витрина-Шаблоны) заменить строку:

      <script type="text/javascript" src="{$wa_theme_url}product.js?v{$wa_theme_version}"></script>

      строкой:

      <script type="text/javascript" src="{$wa_real_theme_url}product.js?v{$wa_theme_version}"></script>

      *после сделанных изменений сбросьте кеш приложения Инсталлер и браузера на котором просматриваете сайт

      1

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите

Услуги

Контакты

Дорогие друзья!

К сожалению, Ваш браузер не поддерживает современные технологии используемые на нашем сайте.

Пожалуйста, обновите браузер, скачав его по ссылкам ниже, или обратитесь к системному администратору, обслуживающему Ваш компьютер.

Internet Explorer

от Microsoft

Chrome

от Google

Safari

от Apple

Opera

от Opera Software

Firefox

от Mozilla

Вверх