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


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

  • Подскажите как сделать единственный способ доставки до 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.

 

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

  • Z

    Спасибо, действительно проще создать отдельно.

    Читать далее
  • Но проблема в том, что эта старая цена "дублируется" в плесхолдер "Дополнительных услуг" - [[+addit_data]].

    Можно не использовать [[+addit_data]], а выводить параметры по-отдельности.

    Цитата из документации:

    [[+shk_любой доп.параметр]] - любой доп. параметр, выбранный при добавлении товара в корзину (из [[+addit_data]]), например [[+shk_param1]].
    Если параметры сделаны в виде чекбоксов, то чтобы вывести отдельно каждый из них, нужно добавлять индекс (номер от нуля) для параметров следующих за первым.
    Пример: [[+shk_param1]], [[+shk_param1_1]], [[+shk_param1_2]] ...
    [[+shk_любой доп.параметр_price]] - цена доп.параметра. Пример: [[+shk_param1_price]].

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

    Доброго времени суток. Не могу разобраться, как передать данные migx-поля в корзину в плейсхолдер без "дублирования" в [[+addit_data]]
    Суть в чем: У меня есть 2 цены у товара (со скидкой и без скидки) Форма для отправки в корзину:

    <form action="[[~[[*resource_id]]? &scheme=`abs`]][[*alias]].html" method="post"> <input type="hidden" name="shk-id" value="[[*id]]" /> <input type="hidden" name="shk-name" value="[[*pagetitle]]" /> <input type="hidden" name="price_old__[[*id]]__add" value="[[*price_old]]" /> <input type="hidden" name="shk-count" value="1" /> <div class="product-price"> Цена: <span class="shk-price">[[!*price:shk_curr_rate:num_format]]</span> Старая цена - <span class="shk-price-old">[[+price_old]]</span> [[!+shk_currency]] </div> <div class="padding-lr-30"> <h5>Дополнительные услуги</h5> [[*param1]] </div> <div class="product-price"> <button class="btn btn-lg btn-primary" type="submit" class="shk-but">В корзину</button> </div> </form>

    Данные со "старой ценой" в корзину попадают нормально и выводится в нужном месте в плейсхолдере:
    [[+shk_price_old]]
    Но проблема в том, что эта старая цена "дублируется" в плесхолдер "Дополнительных услуг" - [[+addit_data]]. Как сделать чтобы старая цена не выводилась в [[+addit_data]]? Или может я как то не правильно передаю MIGX-параметр в корзину ? Заранее спасибо.

    Читать далее
  • Фотографии, как я понял, это второй вопрос. Я по нему пока ничего не отвечал и не просил информации. Это не отменяет того, что в вашем конфиге есть ошибка, о которой я писал выше. Не нужно задавать разные вопросы в одной теме, чтобы не было путаницы.
    http://forum.modx-shopkeeper.ru/topic/15/рекомендации-по-оформлению-темы-с-вопросом

    Читать далее