1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

[Вопрос] Способы доставки VM 1.x

Тема в разделе "Virtuemart", создана пользователем lite46, 22 дек 2015.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
  1. lite46

    lite46 Постоялец

    Регистр.:
    22 ноя 2011
    Сообщения:
    56
    Симпатии:
    20
    Всем привет. Как можно реализовать такие функции в способах доставки?
    Joomla 2.5 + VM 1.1

    1) Пункты выдачи заказов. Так, чтобы я мог всегда быстро добавить новый ПВЗ из админки.
    Все пункты пойдут в выпадающий список в корзине, там у меня уже есть курьерская доставка Пони-экспресс с оплатой курьеру наличкой и картой.

    2) Хочу добавить алгоритм, по которому:
    - доставка для заказов стоимостью выше 2000 руб. бесплатная
    - доставка для заказов при выдаче в ПВЗ бесплатная
    - доставка не из ПВЗ и для заказов стоимостью ниже 2000 руб. платная и составляет 300 руб.
    Чтобы стоимость доставки добавлялась к стоимости заказа.

    Наставьте на путь истинный, какими модулями или как иначе я могу реализовать всё это? Спасибо!

    В общем как это сделать стандартными средствами вполне ясно. Выведу способы доставки, вместо оплаты. Но столкнулся с такой проблемой. Сколько бы я не менял, отображал, выключал способы и доставки и оплаты - в корзине они не меняются.

    Сайт:



    Вот добавил способы оплаты. Активировал 3 способа:


    [​IMG]


    Вот корзина. НО! отображает только 2 способа:

    [​IMG]

    Потом зашел в настройки магазина. Не знаю зачем там снова Способы оплаты, но там отображаются те 2 способа из корзины на сайте:


    [​IMG]
    [​IMG]

    Попробовал в этом выпадающем списке найти свой "Самовывоз" - его нет, хоть он и активирован.

    Помогите, пожалуйста. Как мне вывести вместо всего этого только Способы доставки?

    [​IMG]
     
    Последнее редактирование: 10 янв 2016
  2. Messir

    Messir

    Регистр.:
    24 июл 2011
    Сообщения:
    238
    Симпатии:
    35
    В названии темы указан ВМ 1.1, на скринах виден ВМ 2... Если опираться все-таки на скрины, то рекомендовал бы обновить ВМ 2 до последней актуальной версии (поскольку версии до 2.0.26 были тестовыми и потому ужасно сырыми), потом уже разбираться с доставкой оплатой...
     
  3. lite46

    lite46 Постоялец

    Регистр.:
    22 ноя 2011
    Сообщения:
    56
    Симпатии:
    20
    ошибся, стоит 2.0.20b
    Вряд ли нужно обновление. Ведь до этого как-то были добавлены Способы. А вот как - не пойму. Сейчас хочу просто заменить Оплату на Доставку. А где это сделать - не знаю. До ккучи файлов пересмотрел, а найти код оплаты, чтобы заменить - не могу.
     
  4. lite46

    lite46 Постоялец

    Регистр.:
    22 ноя 2011
    Сообщения:
    56
    Симпатии:
    20
    нашел где выводятся текущие способы оплаты. это обычное произвольное поле.
    ВОПРОС! Где взять кусок кода Способов доставки, чтобы разместить в своей корзине?
     
  5. lite46

    lite46 Постоялец

    Регистр.:
    22 ноя 2011
    Сообщения:
    56
    Симпатии:
    20
    Вот кусок кода, где выводится Доп. поле "Способы оплаты"

    PHP:
    function submit_order() {
        <?php
        
    if(VmConfig::get('agree_to_tos_onorder')) {
            
    ?>
            if(document.id('tosAccepted').checked==false) {
                return alert('<?php echo JText::_('COM_VIRTUEMART_CART_PLEASE_ACCEPT_TOS'); ?>');
            }
            <?php
        
    }
        
    ?>
        var shipments_checked=false;
        var payments_checked=true;
        if(document.id('shipments')) {
            for(var i=0;i<document.id('shipments').getElements('input').length;i++) {
                if(document.id('shipments').getElements('input')[i].checked==true) {
                    shipments_checked=true;
                    break;
                }
            }
            if(shipments_checked==false) {
                return alert('<?php echo JText::_('COM_VIRTUEMART_CART_SELECT_SHIPMENT'); ?>');
            }
        }

        if(document.id('payments')) {
            for(var i=0;i<document.id('payments').getElements('input').length;i++) {
            /*
                if(document.id('payments').getElements('input')[i].checked==true) {
                    payments_checked=true;
                    break;
                }*/
                //    console.log($(".payment_dropdown .ui-selectmenu-text").text());
                //    console.log($("label[for="+$('#payments input').eq(i).attr('id')+"]").find(".vmpayment_name").text());
                    if($("#payment_dropdown option:selected").text() == $("label[for="+$('#payments input').eq(i).attr('id')+"]").find(".vmpayment_name").text())
                    {
                        document.id('payments').getElements('input')[i].checked=true;
                        payments_checked=true;
                        break;
                    }
            }
            if(payments_checked==false) {
                return alert('<?php echo JText::_('COM_VIRTUEMART_CART_SELECT_PAYMENT'); ?>');
            }
        }

        var register_state=true;
        if(document.id('register') && document.id('register').checked==true) {
            register_state=false;
            new Request.JSON({
                'url':'index.php?type=onepage&opc_task=register',
                'method':'post',
                'async':false,
                'noCache':true,
                'data':document.id('div_billto').toQueryString()+'&address_type=BT&<?php echo JUtility::getToken(); ?>=1',
                'onSuccess':function(json,text) {
                    if(json.error && json.error==1) {
                        alert(json.message);
                    } else {
                        register_state=true;
                    }
                },
                'onFailure':function(xhr) {
                    if(xhr.status==500); {
                        register_state=true;
                    }
                }
            }).send();
        }
        if(!register_state) {
            return;
        }

        var validator=new JFormValidator();
        validator.attachToForm(document.id('table_shipto'));
        var valid=true;
        document.id('table_billto').getElements('input').each(function(el) {
            var cval=validator.validate(el);;
            valid=valid && cval;
        });
        if(valid && document.id('virtuemart_country_id').value<=0) {
            return alert('<?php echo JText::sprintf('COM_VIRTUEMART_MISSING_VALUE_FOR_FIELD',JText::_('COM_VIRTUEMART_SHOPPER_FORM_COUNTRY')); ?>');
        }
        if(!valid) {
            window.location.hash ='cart_top';
            return;
        }

            
        if(document.id('STsameAsBT').checked==true) {
            var ship_to=document.id('table_shipto').getElements('input');
            var bill_to=document.id('table_billto');
        
            ship_to.each(function(item) {
                var name=item.get('id').replace('shipto_','');
                if(bill_to.getElementById(name)) {
                    item.set('value',bill_to.getElementById(name).get('value'));
                }
            });
            document.id('table_shipto').getElementById('shipto_virtuemart_country_id').set('value',document.id('table_billto').getElementById('virtuemart_country_id').get('value'));
        } else {
            var validator=new JFormValidator();
            validator.attachToForm(document.id('table_billto'));
            var valid=true;
            document.id('table_billto').getElements('input').each(function(el) {
                var cval=validator.validate(el);;
                valid=valid && cval;
            });
            if(valid && document.id('virtuemart_country_id').value<=0) {
                return alert('<?php echo JText::sprintf('COM_VIRTUEMART_MISSING_VALUE_FOR_FIELD',JText::_('COM_VIRTUEMART_SHOPPER_FORM_COUNTRY')); ?>');
            }
            if(!valid) {
                window.location.hash='cart_top';
                return;
            }
        }
            
        
        new Request.JSON({
            'url':'index.php?type=onepage&opc_task=set_checkout',
            'method':'post',
            'data':document.id('checkoutForm').toQueryString(),
            'async':false,
            'noCache':true,
            'onSuccess':function(json,text) {
                // Fucky IE adds to task 'update' for some unexpected cause
                document.checkoutForm.task.value='confirm';
                //alert(document.checkoutForm.task.value);
                document.checkoutForm.submit();
            }
        }).send();
    }
    [​IMG]
    [​IMG]

    Это поле я отключил, теперь в корзине его нет. Вот каким бы кодом теперь его заменить (или что отредактировать в коде выше), чтобы вывести мои Способы Доставки?

    Что-то мне подсказывает нужно там изменить true false Чтобы активировать вывод Доставки.

    [​IMG]

    И вывести так, чтобы способ Доставки были такого же вида - выпадающий список. А доставка в корзине теперь считалась. Например при самовывозе - бесплатно. При доставке курьером +300 рублей.
     
    Последнее редактирование: 10 янв 2016
  6. Messir

    Messir

    Регистр.:
    24 июл 2011
    Сообщения:
    238
    Симпатии:
    35
    Обновиться желательно (обязательно) хотя бы в целях безопасности. И, поверьте, с другими вопросами геморроя тоже будет меньше...
    И шо то мне подсказывает, шо не там вы копаетесь. Это все делается настройками (по крайней мере в более поздних версиях), но для этого надо видеть всю админку.
     
  7. Messir

    Messir

    Регистр.:
    24 июл 2011
    Сообщения:
    238
    Симпатии:
    35
    Обновляться не хотите, корзина одностраничная (отдельный компонент, какой - неизвестно). Еще раз повторю - не ищите код в шаблоне, доставка/оплата должна включаться/выключаться через настройки. Хотите конкретики - доступ к админке в личку.
     
  8. lite46

    lite46 Постоялец

    Регистр.:
    22 ноя 2011
    Сообщения:
    56
    Симпатии:
    20
    One Page Checkout 1.3

    Включил доставку. Разобрался. Был закомментирован кусок кода, как раз в файле шаблона default_pricelist.php
    Теперь ищу, как radio заменить на select (drop-down) для вывода выпадающего списка Доставок. Как вариант попробовал обновить OPC до версии 2, где уже есть возможность включить выпадающий список - криво. Снова нужно делать шаблон корзины. Попробую часть из 2 перетянуть в 1.3.

     
    Последнее редактирование: 10 янв 2016