Последние темы


Использование JS функции SHKloadCartCallback

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

    <script>
    function SHKloadCartCallback(){
        $('#items_total').text(SHK.data.items_total);
        $('#price_total').text(SHK.data.price_total);
    }
    
    $(document).bind('ready',SHKloadCartCallback);
    </script>
    

    т.е. работает 1 раз.
    При последующем добавлении товаров в корзину уже не работает, хотя товары в корзину добавляются, корзина значит обновляется. Или нет? Как сделать, чтобы функция работала при каждом добавлении товара в корзину?

  • При последующем добавлении товаров в корзину уже не работает

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

  • Возможно, Вы не подключили скрипт shopkeeper.js или есть какие-то JS-ошибки на странице.

  • Нашел свой косяк. Раньше уже определял такую функцию - SHKloadCartCallback, и забыл... И она, конечно отрабатывала первый раз когда страница загружалась, а потом переопределялась - и не работала)))

 

Последние комментарии

  • @LoGruS Поправка, привязываемся к значению [[+value]]

    Читать далее
  • Участник @Andchir написал в Ограничение покупки:

    SHK.recountItemAll();

    Андрей, спасибо! Сделал, работает и обновление цены и ограничение товаров по инвентори.

    Итоговый вариант (вдруг кому пригодится):

    Поле кол-во товара:

    <input class="shk-count" type="number" name="count[]" value="[[+count]]" min="1" max="[[+inventory]]" />

    Кнопка пересчитать:

    <a href="#" onclick="SHK.recountItemAll(); return false;" data-toggle="tooltip" title="Пересчитать">Пересчитать</a>

    ИТОГО - контроль кол-ва.

    Читать далее
  • Решается без костылей из js

    [[+name:is=`color`:then=`<label for="[[+name]]__[[+idx]]" class="d-block custom-control-label shk-color-checkbox [[+name]][[+idx]]" title="[[+value]]"></label><p class="ml-40">[[+value]]</p>`:else=`<label for="[[+name]]__[[+idx]]">[[+value_name]]</label>`]]

    Получаем на странице строку такого вида:

    <label for="color__1" class="d-block custom-control-label shk-color-checkbox color1" title="Голубой"></label><sup>17</sup><p class="ml-40">Голубой</p>

    Привязываемся в css к классу color1, а дальше CSS спрайты и стили решают все, проверенно, работает 😃 Спасибо Андрею и его демо-сайту с shopkeeper4, подглядел решение на нем.

    Читать далее