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

lite46

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

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

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

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

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

Сайт:

Скрытое содержимое доступно для зарегистрированных пользователей!


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


JVf9xUe.png


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

WFsb7g7.jpg

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


X2r3ix9.png
zB4ema0.png

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

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

leiwhk1.png
 
Последнее редактирование:
В названии темы указан ВМ 1.1, на скринах виден ВМ 2... Если опираться все-таки на скрины, то рекомендовал бы обновить ВМ 2 до последней актуальной версии (поскольку версии до 2.0.26 были тестовыми и потому ужасно сырыми), потом уже разбираться с доставкой оплатой...
 
В названии темы указан ВМ 1.1, на скринах виден ВМ 2... Если опираться все-таки на скрины, то рекомендовал бы обновить ВМ 2 до последней актуальной версии (поскольку версии до 2.0.26 были тестовыми и потому ужасно сырыми), потом уже разбираться с доставкой оплатой...

ошибся, стоит 2.0.20b
Вряд ли нужно обновление. Ведь до этого как-то были добавлены Способы. А вот как - не пойму. Сейчас хочу просто заменить Оплату на Доставку. А где это сделать - не знаю. До ккучи файлов пересмотрел, а найти код оплаты, чтобы заменить - не могу.
 
нашел где выводятся текущие способы оплаты. это обычное произвольное поле.
ВОПРОС! Где взять кусок кода Способов доставки, чтобы разместить в своей корзине?
 
Вот кусок кода, где выводится Доп. поле "Способы оплаты"

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();
}

WFsb7g7.jpg
MrJAJxC.png

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

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

6GQPCp9.png

И вывести так, чтобы способ Доставки были такого же вида - выпадающий список. А доставка в корзине теперь считалась. Например при самовывозе - бесплатно. При доставке курьером +300 рублей.
 
Последнее редактирование:
Обновиться желательно (обязательно) хотя бы в целях безопасности. И, поверьте, с другими вопросами геморроя тоже будет меньше...
И шо то мне подсказывает, шо не там вы копаетесь. Это все делается настройками (по крайней мере в более поздних версиях), но для этого надо видеть всю админку.
 
Сейчас нет необходимости обновляться. Посмотрел еще шаблон. Получается оформление корзины сразу в шаблоне. Корзина одностраничная. Не хватает мне знаний, чтобы отредактировать шаблон корзины и заставить работать доставку. Мужики, прошу помощи! Отблагодарю 1000 р.
Обновляться не хотите, корзина одностраничная (отдельный компонент, какой - неизвестно). Еще раз повторю - не ищите код в шаблоне, доставка/оплата должна включаться/выключаться через настройки. Хотите конкретики - доступ к админке в личку.
 
Обновляться не хотите, корзина одностраничная (отдельный компонент, какой - неизвестно). Еще раз повторю - не ищите код в шаблоне, доставка/оплата должна включаться/выключаться через настройки. Хотите конкретики - доступ к админке в личку.

Для просмотра ссылки Войди или Зарегистрируйся

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

 
Последнее редактирование:
Назад
Сверху