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


Один способ доставки по умолчанию

  • Подскажите как сделать единственный способ доставки до 5000р стоит 300, а если заказ дороже 5000, то бесплатно. В настройках добавил этот пункт. А как вызвать все это дело. Причем цена доставки меняться должна динамически в корзине. Сама форма отправки заказа находиться на отдельной странице.
    Не должно быть никаких селектов. Только пункт "Доставка: 300р". Если больше 5к, то "Доставка: 0р"

    <div class="shop-cart" data-shopcart="2">
        <div class="full">
            <form action="[[+this_page_url]]#shopCart" method="post">
            <fieldset>
                <div  style="text-align:right;">
                    <a href="[[+empty_url]]" id="shk_butEmptyCart">Очистить корзину</a>
                </div>
                <div class="cart_table_wrap">
                    <table width="100%" class="table table-bordered">
                        <colgroup>
                            <col width="10%" />
                            <col width="40%" />
                            <col width="20%" />
                            <col width="20%" />
                            <col width="10%" />
                        </colgroup>
                        <thead class="order_head">
                            <tr>
                                <td></td>
                                <td>Наименование</td>
                                <td>Цена</td>
                                <td>Количество</td>
                                <td></td>
                            </tr>
                        </thead>
                        <tbody>
                            [[+inner]]
                        </tbody>
                    </table>
                </div>
                <div class="cart_total">
                    Доставка: [[+delivery_price]]<span class="rub" style="font-size: 1rem;">a</span><br>
                    <small>При заказе от 5 000 руб. доставка бесплатная</small><br>
                    Общая сумма: <b style="font-size: 1.5rem;">[[+price_total]]</b> <span class="rub" style="font-size: 1.5rem;">a</span>
                </div>
                <div style="display: inline-block;">
                    <a href="[[~900]]" class="btn cart_btn">
                        Оформить заказ
                    </a>
                    <a href="[[~1583]]" class="btn cart_btn" id="carbtngrey">
                        Продолжить покупки
                    </a>
                </div>
                <noscript>
                    <div><input type="submit" name="shk_recount" value="Пересчитать" /></div>
                </noscript>
            </fieldset>
            </form>
        </div>
    </div>```
  • Modx 2.5.8, Shopkeeper3.
    Пытаюсь сделать так, в селекте 1 опция с доставкой, и она должна быть выбрана по умолчанию, изменить ее возможности нет. И скрыть этот селект. Но почему-то не выбирается значение по умолчанию.

    <div class="shop-cart" data-shopcart="2">
        <div class="empty">
            <div class="shop-cart-empty">В корзине пусто, перейти в <a href="[[~13]]" style="color: #b4579d;text-decoration: underline;">каталог</a></div>
        </div>
    </div>
    <!--tpl_separator-->
    <div class="shop-cart" data-shopcart="2">
        <div class="full">
            <form action="[[+this_page_url]]#shopCart" method="post">
            <fieldset>
                <div  style="text-align:right;">
                    <a href="[[+empty_url]]" id="shk_butEmptyCart">Очистить корзину</a>
                </div>
                <div class="cart_table_wrap">
                    <table width="100%" class="table table-bordered">
                        <colgroup>
                            <col width="10%" />
                            <col width="40%" />
                            <col width="20%" />
                            <col width="20%" />
                            <col width="10%" />
                        </colgroup>
                        <thead class="order_head">
                            <tr>
                                <td></td>
                                <td>Наименование</td>
                                <td>Цена</td>
                                <td>Количество</td>
                                <td></td>
                            </tr>
                        </thead>
                        <tbody>
                            [[+inner]]
                        </tbody>
                    </table>
                </div>
                <div class="cart_total">
                    Доставка: [[+delivery_price]]<span class="rub" style="font-size: 1rem;">a</span><br>
                    <small>При заказе от 5 000 руб. доставка бесплатная</small><br>
                    Общая сумма: <b style="font-size: 1.5rem;">[[+price_total]]</b> <span class="rub" style="font-size: 1.5rem;">a</span>
                </div>
                <div style="display: inline-block;">
                    <a href="[[~900]]" class="btn cart_btn">
                        Оформить заказ
                    </a>
                    <a href="[[~1583]]" class="btn cart_btn" id="carbtngrey">
                        Продолжить покупки
                    </a>
                </div>
                <noscript>
                    <div><input type="submit" name="shk_recount" value="Пересчитать" /></div>
                </noscript>
            </fieldset>
            </form>
        </div>
    </div>
    [[!shkOptions?
    &get=`delivery,payments`
    &post_name=`shk_delivery,payment`
    &toPlaceholders=`1`
    &pl_prefix=`shkopt_`
    &tpl=`select_option_del`
    ]]
    <select name="shk_delivery" style="width:200px;display: block;">
        [[!+shkopt_delivery]]
    </select>
    
    <script type="text/javascript">
    $(document).ready(function(){
        if ( SHK.data.delivery_name ) {
            $('select[name="shk_delivery"]').val( SHK.data.delivery_name );
        }
        $('select[name="shk_delivery"]').bind('change',function(){
            SHK.selectDelivery( $(this).val() );
        });
    });
    </script>
    

    select_option_del

    <option value="[[+value]]" selected="selected" [[+selected]]>[[+label]]</option>
  • Если у вас только один способ доставки, то сделайте скрытое поле вместо селекта

    <input type="hidden" name="shk_delivery" value="название доставки">
    

    Сниппет shkOptions можно убрать.

    Скрипт:

    <script type="text/javascript">
        $(document).ready(function(){
            SHK.selectDelivery('название доставки');
        });
    </script>
    
  • Сделал так

    <div class="shop-cart" data-shopcart="2">
        <div class="empty">
            <div class="shop-cart-empty">В корзине пусто, перейти в <a href="[[~13]]" style="color: #b4579d;text-decoration: underline;">каталог</a></div>
        </div>
    </div>
    <!--tpl_separator-->
    <div class="shop-cart" data-shopcart="2" id="sks">
        <div class="full">
            <form action="[[+this_page_url]]#shopCart" method="post">
            <fieldset>
                <div  style="text-align:right;">
                    <a href="[[+empty_url]]" id="shk_butEmptyCart">Очистить корзину</a>
                </div>
                <div class="cart_table_wrap">
                    <table width="100%" class="table table-bordered">
                        <colgroup>
                            <col width="10%" />
                            <col width="40%" />
                            <col width="20%" />
                            <col width="20%" />
                            <col width="10%" />
                        </colgroup>
                        <thead class="order_head">
                            <tr>
                                <td></td>
                                <td>Наименование</td>
                                <td>Цена</td>
                                <td>Количество</td>
                                <td></td>
                            </tr>
                        </thead>
                        <tbody>
                            [[+inner]]
                        </tbody>
                    </table>
                </div>
                <div class="cart_total">
                    <input type="hidden" name="shk_delivery" value="PickPoint">
                    <small>При заказе от 5 000 руб. доставка бесплатная</small><br>
                    <div id="deliv_hide">Доставка: <strong>[[+shk.delivery_price]]</strong><span class="rub" style="font-size: 1rem;">a</span><br></div>
                    Общая сумма: <b style="font-size: 1.5rem;">[[+price_total]]</b> <span class="rub" style="font-size: 1.5rem;">a</span>
                </div>
                <div style="display: inline-block;">
                    <a href="[[~900]]" class="btn cart_btn">
                        Оформить заказ
                    </a>
                    <a href="[[~1583]]" class="btn cart_btn" id="carbtngrey">
                        Продолжить покупки
                    </a>
                </div>
                <noscript>
                    <div><input type="submit" name="shk_recount" value="Пересчитать" /></div>
                </noscript>
            </fieldset>
            </form>
        </div>
    </div>
    
    <script type="text/javascript">
    $(document).ready(function(){
        SHK.selectDelivery('PickPoint');
    });
    </script>
    
    
    

    Но при заходе в корзину, постоянно крутиться ajax loader и корзина не активна, нельзя изменить кол-во товаров или удалить.

    PS. Если кто столкнется с этим. Исправлено переносом скрипта из чанка в, например, head.

 

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

  • Читать далее
  • S

    Всем доброго времени суток! Такая проблема, поставил шопкипер, все вроед успешно, очистил кеш, НО, при переходе в Управление заказами - конфигурация - основные настройки - основные настройки, получаю ошибку - Could not find action file at: welcome.php.
    В логах:
    [2019-03-23 00:09:07] (ERROR @ /home/admin/web/sbt35.ru/public_html/core/model/modx/modmanagercontrollerdeprecated.class.php : 152) Could not find action file at: /home/admin/web/sbt35.ru/public_html/core/components/shopkeeper/welcome
    Посмотрел в папках, действительно по этому пути ничего нет. В файлах установщика так же нет по этому пути данных файлов.
    подскажите пожалуйста, как пофиксить это можно? Куда копать?

    Читать далее
  • @Andchir Чета не додумался. Спасибо огромное, завелось.

    Читать далее
  • Потому что в этой функции нет объекта $modx. Можно попробовать добавить такую строчку вверху функции (внутри):

    global $modx;

    Читать далее