Новости

В корзине не выводится метод и стоимость доставки.

  • Друг друга не поняли.

    Тут сложно понять когда Вы пишите сначала одно

    На страниц оформления заказа не выводится метод и стоимость доставки.

    а потом совсем другое

    В форме я выбираю способ доставки, однако пересчета общей стоимости с учетом доставки не происходит.

    Зачем мне тратить на вас кучу времени, если Вы не можете даже нормально сформулировать вопрос и дать необходимую информацию? Ищите другого помощника.

  • @Andchir
    Я пишу сюда получить ответ, а не ругаться, ваше дело помогать в проблеме или игнорировать.

    в первом сообщении я сослался на схожую проблему пользователя.

    Прочитал схожий вопрос ответа не нашел.http://forum.modx-shopkeeper.ru/topic/228/не-проставляется-наименование-доставки-и-способ-оплаты-при-выборе
    
  • jQuery подключается в самом низу, а используется он выше. Скорее всего это приводит к JS ошибке. Можно скрипт $(document).bind('ready',function(){... опустить в самый низ, или jQuery подключить вверху шаблона.

  • @Andchir в форме оформление заказа, jqery подключил вверху шаблона, снизу удалил.
    Почистил кэш в браузере, обновил страницу- безрезультатно.

    <!doctype html>
    <html lang="en">
      <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
        <link rel="stylesheet" href="/css/test1.css" type="text/css" media="screen" />
        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
        
        <title>Bootstrap test template</title>
    
    
    
    [[$Header]]
      </head>
    
      <body>
    [[$Navbar]]
    
    
    
    <div class="container-fluid" style="padding:5%">
    	
    	<div class="row">
    		<div class="col-md-12">
    		    <h1>Оформление заказа</h1>
                    
    		    [[!Shopkeeper3@new_cart?propertySetName='new_cart']]
    		</div>
    	</div>
    
    	
    	<div class="row" >
    	    <div class="col-md-12">
    
    
                [[!FormIt?
                &hooks=`spam,shk_fihook,email,FormItAutoResponder,redirect`
                &submitVar=`order`
                &emailTpl=`shopOrderReport`
                &fiarTpl=`shopOrderReport`
                &emailSubject=`В интернет-магазине "[[++site_name]]" сделан новый заказ`
                &fiarSubject=`Вы сделали заказ в интернет-магазине "[[++site_name]]"`
                &emailTo=`[[++emailsender]]`
                &fiarReplyTo=`[[++emailsender]]`
                &fiarToField=`email`
                &emailFrom=`[[++emailsender]]`
                &emailFromName=`[[++emailsender]]`
                &fiarFrom=`[[++emailsender]]`
                &redirectTo=`23`
                &validate=`fullname:required,email,phone:required`
                &errTpl=`<br /><span class="error">[[+error]]</span>`
                ]]
                
                [[-[[!$MeFullShopOrderForm?]] ]]
                [[!$shopOrderForm?]]
                
                <br>[[+delivery_name]]
                <br>[[+delivery_price]] [[+currency]]
                
                 <div  style="text-align:right;">
                    Итого: <b>[[+price_total]]</b> [[+currency]]
                    <br>[[+delivery_name]]
                    <br>[[+delivery_price]] [[+currency]]
                </div>
                
            </div>
        </div>
                    
    <script type="text/javascript">
    $(document).bind('ready',function(){
        if ( SHK.data.delivery_name ) {
            $('select[name="shk_delivery"]','#shopOrderForm').val( SHK.data.delivery_name );
        }
        $('select[name="shk_delivery"]','#shopOrderForm').bind('change',function(){
            SHK.selectDelivery( $(this).val() );
        });
    });
    </script>
    
        
    </div>	    
    
    [[$Footer]]
    
    
        <!-- Optional JavaScript -->
        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script>
        
    
      </body>
    </html>
    
    

    Чанк строки корзины товара( cartRowTpl) и чанк формы ввода данных при оформлении заказа (shopOrderForm) не должны находится в одной форме?

  • Ссылку можете дать где увидеть?

  • По вашей ссылке видимо страница не опубликована. Нашел здесь
    https://chokocandies.ru/oformlenie-zakaza2
    но там не селект, а радио-кнопки, поэтому скрипт не подходит.

  • @Andchir тестовый вариант опубликовал на ранее упомянутой странице.
    https://chokocandies.ru/oformlenie-zakaza

    на странице использовал ajaxform по примеру
    https://chokocandies.ru/oformlenie-zakaza2

  • Попробуйте так:

    <script type="text/javascript">
    $(function() {
        if ( SHK.data.delivery_name ) {
            $('select[name="shk_delivery"]','#shopOrderForm').val( SHK.data.delivery_name );
        }
        $('select[name="shk_delivery"]','#shopOrderForm').bind('change',function(){
            SHK.selectDelivery( $(this).val() );
        });
    });
    </script>
    

    Похоже что-то не работает с вашей версией jQuery. На демо-сайте другая версия.

  • @Andchir Спасибо, заработало!
    Перенес подключение JQuery из футера в хэдер.

    Мало ли кто столкнется с похожей проблемой, скрипт для радио-кнопки.

        <script type="text/javascript">
    		$(document).ready(function() {
    		    $('[type="radio"][name="shk_delivery"]').change(function () {
    		       	SHK.selectDelivery( $('[name="shk_delivery"]:checked').val() );
    		    });
    		});
    	</script>
    
 

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

  • M

    @Andchir
    Да, в TM2 в админке фильтр age включен. Все данные из TV подтянулись, все норм.

    Читать далее
  • В компоненте в админке фильтры есть?

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

    Ломаю голову над запуском Tagmanager2 на простом сайте с выводом обычных item-ов для последующей фильтрации. Делую все по инструкции. Запустил tmCatalog, все отображается:

    [[!tmCatalog? &cache=`1` &elementClass=`modSnippet` &element=`getProducts` &tpl=`filtr_tpl` &sortbyTV=`age` &sortdirTV=`ASC` &parents=`3` &limit=`0` &debug=`0` ]]

    Чанк вывода каждого itema имеет следующий вид:

    <div class="col-xl-4" style="padding-left: 5px; padding-right: 5px; float: left;"> <div class="post-02 post-02__style-02 js-post-effect"> <div class="post-02__media"> <a href="[[~[[+id]]]]"> [[getImageList? &tvname=`slider` &docid=`[[+id]]` &limit=`1` &tpl=`@CODE:<img src="[[+slide]]" alt="[[+alt]]" />` ]] </a></div> <div class="post-02__body"> <h2 class="post-02__title"><a href="[[~[[+id]]]]">[[!pdoField? &id=`[[+id]]` &field=`name`]]</a></h2> <div class="post-02__department">[[!pdoField? &id=`[[+id]]` &field=`seo_tag`]]</div> <div class="post-02__content"> <div class="post-02__description"> [[pdoField:ellipsis=`200`? &id=`[[+id]]` &field=`specification`]] <ul> <li><span class="primary-color">Age</span>[[!pdoField? &id=`[[+id]]` &field=`age`]]</li> <li><span class="primary-color">Dress Size</span>[[!pdoField? &id=`[[+id]]` &field=`dress_size`]]</li> <li><span class="primary-color">Height</span>[[!pdoField? &id=`[[+id]]` &field=`height`]] cm</li> <li><span class="primary-color">Weight</span>[[!pdoField? &id=`[[+id]]` &field=`weight`]] kg</li> </ul> </div> <a class="post-02__link" href="[[~[[+id]]]]">View detail</a> </div> </div> </div> </div>

    filter.js имеет следующий вид. Пока решил фильтровать только числовое значение age:

    config: { filters_cont: '#filters',//Селектор оберточного элемента блоков с фильтрами sortby: 'pagetitle',//Имя поля сортировки по умолчанию sortdir: 'asc',//Направление сортировки по умолчанию numeric: ['age'],//Имена доп. полей с числовыми значениями multitags: [''],//Имена доп. полей с множественными значениями guard_key: '#',//Разделитель для множественных значений products_cont: '#products',//Селектор контейнера с выводом товаров filter_slider: 'div.range-slider',//Селектор слайдеров (ползунок для числовых значений) filter_slider_cont: 'div.filter_slider',//Селектор контейнера со слайдером pages_cont1: '#pages',//Селектор контейнера с постраничной навигацией pages_cont2: '#pages2',//Селектор второго контейнера с постраничной навигацией. Если нет, оставить пустым. active_page_selector: '.current',//селектор номера текущей страницы внутри контейнера (pages_cont) filters_type: 'default',//Тип фильтрации. Возможные значения: // default (показ числа товаров по каждому фильтру и блокирование пустых вариантов), // only_block (только блокирование пустых париантов), // none (не показывать цифры и не блокировать) filter_delay: 700,//Задержка до отправления запроса на сервер (сбрасывается после каждой отметки фильтра) price_field: 'price',//Название поля или TV цены товара multi_currency: true,//Мультивалютность включить / выключить (true/false) base_url: '/', ajax_url: 'assets/components/tag_manager2/connector_fe.php', ajax_loader: 'assets/components/tag_manager2/img/ajax-loader2.gif' },

    Все скрипты подключи вручную, все отображается внизу страницы, проверял.
    Сам tmFilters не отображается хоть убей. Вывожу:

    <div id="filters"> [[tmFilters? &filterNumericTpl=`tm2_filterNumericTpl` &filterNumericOuterTpl=`tm2_filterOuterTpl` &jsScript=`0` &jsMap=`1` &filtersType=`filters` ]] <form action="[[~[[*id]]]]" method="get"> <input type="hidden" name="page_id" value="[[*id]]" disabled="disabled" /> [[+filters]] <button id="clear" class="btn btn-danger btn-sm" type="button" onclick="tmFilters.resetFilters(); return false;">Сбросить</button> </form> </div>

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

    Читать далее
  • @Andchir Спасибо!!!
    Все перепробовал кроме [[+note]]
    В письме со статусом отправлен, чтобы трек-номер отправлять покупателю. Все работает. Еще раз спасибо.

    Читать далее