VM 2.x One Page Checkout 1.3

mumins

Интернетов сантехник
Регистрация
11 Мар 2009
Сообщения
1.004
Реакции
979
Не имеет отношение к Для просмотра ссылки Войди или Зарегистрируйся.
Only for VM 2.0.4 and higher. Joomla 2.5.Х
Для следующих VM версий надо ждать апдейти или сравнить с фаилами в директории \com_virtuemart\cart\ и переписывать изменения.

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

Распаковываем, читаем info.txt.

MBR
m.
>>>> Для просмотра ссылки Войди или Зарегистрируйся от пользователя Для просмотра ссылки Войди или Зарегистрируйся <<<
 
По поводу способов доставки следует их пересоздать.
Аналогичная проблема была, с одной лишь разницей: VM 2.0.8. Удалил способы и по новой создал, всё работает... Но вот на 2.0.10 данный приём не сработал(
 
Так, одну проблему решил. Собственно в файле default.php который выкладывал melitrom нет двух функций function update_product(id) и function remove_product(id).

PHP:
function update_product(id) {
    new Request.JSON({
        'url':'index.php?type=onepage&task=update_product',
        'method':'post',
        'data':'id='+id+'&quantity='+document.id('quantity_'+id).value,
        'onSuccess':function(json,text) {
            <?php if ( VmConfig::get('show_tax')) { ?>
                document.id('subtotal_tax_amount_'+id).set('text',json.subtotal_tax_amount);
            <?php } ?>
            document.id('subtotal_discount_'+id).set('text',json.subtotal_discount);
            document.id('subtotal_with_tax_'+id).set('text',json.subtotal_with_tax);
            <?php if ( VmConfig::get('show_tax')) { ?>
                document.id('tax_amount').set('text',json.taxAmount);
            <?php } ?>
            document.id('discount_amount').set('text',json.discountAmount);
            document.id('sales_price').set('text',json.salesPrice);
            <?php if ( VmConfig::get('show_tax')) { ?>
                document.id('total_tax').set('text',json.billTaxAmount);
                document.id('shipment_tax').set('text',json.shipmentTax);
                document.id('payment_tax').set('text',json.paymentTax);
            <?php } ?>
            document.id('shipment').set('text',json.salesPriceShipment);
            document.id('payment').set('text',json.salesPricePayment);
            document.id('total_amount').set('text',json.billDiscountAmount);
            document.id('bill_total').set('text',json.billTotal);
            Virtuemart.productUpdate(jQuery('.vmCartModule'));
 
            new Request.JSON({
                'url':'index.php?type=onepage&task=get_payments',
                'onSuccess':function(json,text) {
                    document.id('payments').empty();
                    var payments="";
                    for(var i=0;i<json.length;i++) {
                        payments+=json[i].toString().replace('input','input onclick="set_payment(this);"')+'<br />';
                    }
                    document.id('payments').set('html',payments);
 
                    new Request.JSON({
                        'url':'index.php?type=onepage&task=get_shipments',
                        'onSuccess':function(json,text) {
                            if(document.id('shipments')) {
                                document.id('shipments').empty();
                            }
                            var shipments="";
                            for(var i=0;i<json.length;i++) {
                                shipments+=json[i].toString().replace('input','input onclick="set_shipment(this);"')+'<br />';
                            }
                            document.id('shipments').set('html',shipments);
                        }
                    }).send();
                }
            }).send();
        }
    }).send();
}
 
function remove_product(id) {
    new Request.JSON({
        'url':'index.php?type=onepage&task=remove_product',
        'method':'post',
        'data':'id='+id,
        'onSuccess':function(json,text) {
            document.id('product_row_'+id).destroy();
            <?php if ( VmConfig::get('show_tax')) { ?>
                document.id('tax_amount').set('text',json.taxAmount);
            <?php } ?>
            document.id('discount_amount').set('text',json.discountAmount);
            document.id('sales_price').set('text',json.salesPrice);
            <?php if ( VmConfig::get('show_tax')) { ?>
                document.id('total_tax').set('text',json.billTaxAmount);
                document.id('shipment_tax').set('text',json.shipmentTax);
                document.id('payment_tax').set('text',json.paymentTax);
            <?php } ?>
            document.id('shipment').set('text',json.salesPriceShipment);
            document.id('payment').set('text',json.salesPricePayment);
            document.id('total_amount').set('text',json.billDiscountAmount);
            document.id('bill_total').set('text',json.billTotal);
            mod=jQuery(".vmCartModule");
            jQuery.getJSON(vmSiteurl+"index.php?option=com_virtuemart&nosef=1&view=cart&task=viewJS&format=json"+vmLang,
                function(datas, textStatus) {
                    if (datas.totalProduct >0) {
                        mod.find(".vm_cart_products").html("");
                        jQuery.each(datas.products, function(key, val) {
                            jQuery("#hiddencontainer .container").clone().appendTo(".vmCartModule .vm_cart_products");
                            jQuery.each(val, function(key, val) {
                                if (jQuery("#hiddencontainer .container ."+key)) mod.find(".vm_cart_products ."+key+":last").html(val) ;
                            });
                        });
                        mod.find(".total").html(datas.billTotal);
                        mod.find(".show_cart").html(datas.cart_show);
                    } else {
                        mod.find(".vm_cart_products").html("");
                        mod.find(".total").html(datas.billTotal);
                    }
                    mod.find(".total_products").html(datas.totalProductTxt);
                }
            );
 
            new Request.JSON({
                'url':'index.php?type=onepage&task=get_payments',
                'onSuccess':function(json,text) {
                    document.id('payments').empty();
                    var payments="";
                    for(var i=0;i<json.length;i++) {
                        payments+=json[i].replace('input','input onclick="set_payment(this);"')+'<br />';
                    }
                    document.id('payments').set('html',payments);
                }
            }).send();
 
            new Request.JSON({
                'url':'index.php?type=onepage&task=get_shipments',
                'onSuccess':function(json,text) {
                    document.id('shipments').empty();
                    var shipments="";
                    for(var i=0;i<json.length;i++) {
                        shipments+=json[i].replace('input','input onclick="set_shipment(this);"')+'<br />';
                    }
                    document.id('shipments').set('html',shipments);
                }
            }).send();
        }
    }).send();
}
Проблема с выводом Способов доставки и Способов оплаты осталась. Если пользователь не зареген не отображается, если зареген и указаны все доп поля, то все гуд. И еще, при подтверждении заказа собственно ничего не происходит. Если что то не указано, то ругается (не выбран способ доставки или оплаты и т.д.), но когда все выбрано по клику ничего не происходит.

Все разрешилось. Оказывается в настройках сомого VM, с способах оплаты и доставки я указал Россию, ну и собственно поэтому и не отображались они пока пользователь не авторизовался. Всем спасибо за чтение, разобрался сам.
 
Создал заново 2 типа доставки, старые не удалял. Эффекта 0. Самое интересное если в магазине авторизоваться, до этого забив адрес, то все отображается и доставки и оплаты.
Там ситуация такая, что нужно еще выбрать категории покупателей к которым применить эти способы - тогда показывает. Плюс их нужно при подключении плагина пересоздать. На версии 2.0.12 все работает...
 
Там ситуация такая, что нужно еще выбрать категории покупателей к которым применить эти способы - тогда показывает. Плюс их нужно при подключении плагина пересоздать. На версии 2.0.12 все работает...
Посмотрел свои настройки, группы покупателей не выбраны, по способам оплаты ничего не пересоздавал. Причина не отображения была в другом. Именно в том что была указана во вкладке Конфигурация страна.
 
Да ссори
Посмотрел свои настройки, группы покупателей не выбраны, по способам оплаты ничего не пересоздавал. Причина не отображения была в другом. Именно в том что была указана во вкладке Конфигурация страна.
Да ссори - забыл еще об этом тоже сказать))
 
Ребят, во-первых: Спа-си-бо за помощь! Наконец-то отобразились доставка и способы оплаты... но теперь новая проблема. Скажите пожалуйста в чём может быть дело.
Суть: Joomla 2.5.6+VirtueMart 2.0.10. Выбираю товар->перехожу в корзину->заполняю всё/// затем жму "оформить заказ", а в результате: никакой реакции((( И так можно жать сколько душе угодно, результата "0". Пока-что тестирую локально на Денвере, но не думаю что проблема в нём... Пару страниц назад Для просмотра ссылки Войди или Зарегистрируйся] упоминалась подобная проблема, но ответа так и не последовало...
 
Да действительно такая проблема есть в тех исходниках которые выкладывали. Немного поковырявшить нашел выход, по крайней мере у меня заработало и заказ формируется и остается в базе.
Правим файлик default.php строка 574 - //echo $this->checkout_link_html; надо раскоментировать строку.
Далее ниже по коду наоборот комментим.

PHP:
            if (!VmConfig::get('use_as_catalog')) {
                echo '<a class="vm-button-correct" href="javascript:void(0);" onclick="submit_order();"><span>' . JText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU') . '</span></a>';
            }
            $text = JText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU');

Сохраняем и наслаждаемся заказом в один клик.
 
Ответ 2:
1 Шаг. Заходим в MySQL базу вашего сайта и заходим в таблицу """префикс вашей базы_virtuemart_userfields"""
2 Шаг. Редактируем 4 строку по именем agreed (в PHP My Admin нажимае на иконку карандаша)
3 Шаг. Временно меняем имя agreed на agree. Нажимаем в самом низу кнопочку ОК
4 Шаг. Заходим в виртуамат, в НАСТРАИВАЕМЫЕ ПОЛЯ и видим что 4 поле agree стало без замочка. Далее выключаем все места его публикации.

Далее в MySQL базе переименовываем обратно с agree на agreed как указанно в первых трёх пунктах.
была проблема в том, что при покупке требовало "согласиться с условиями обслуживания". выключение этого пункта в меню настройках магазина не помогало. проблема решилась вышеприведенным способом. пропал этот пункт, пропало место для галочки в заказе. спасибо.
Осталась еще одна проблема. после подтверждения заказа почему то перекидывает на повторную форму регистрации, где еще раз человек должен заполнить такие же поля, да плюс еще ко всему этому все браузеры ругаются типа непонятный сертефикат, вообщем намекают, что это типа вирусня. что делать друзья?
 
Правим файлик default.php строка 574 - //echo $this->checkout_link_html; надо раскоментировать строку.
Сохраняем и наслаждаемся заказом в один клик.
Сработало, спасибо. Как бы ещё сделать такое: если корзина пуста, чтобы пользователь не мог в неё "попасть" и допустим получал сообщение "Вы ещё ничего не выбрали"?

Осталась еще одна проблема. после подтверждения заказа почему то перекидывает на повторную форму регистрации, где еще раз человек должен заполнить такие же поля, да плюс еще ко всему этому все браузеры ругаются типа непонятный сертефикат, вообщем намекают, что это типа вирусня. что делать друзья?
Наверное SSL включён? Попробуйте отключить в настройках магазина, должно быть всё хорошо. У Вас же нету сертификата подписаного?

Кстати, если на сайте несколько валют, рекомендую в файле html/com_virtuemart/cart/default_pricelist.php (почти в конце) изменить
PHP:
<td align="right"><strong><?php echo $this->currencyDisplay->createPriceDiv('totalInPaymentCurrency','', $this->totalInPaymentCurrency,false); ?></strong></td>
на следующий:
PHP:
<td align="right"><strong><?php echo $this->totalInPaymentCurrency; ?></strong></td>
 
Кто ещё может сказать:
Проблема 1: за что отвечает вот этот чекбокс "Use preloader" в настройках плагина? А то у меня, если его поставить в положение "Yes", при переходе в корзину просто показывает индикатор загрузки и ничего не происходит...
Проблема 2: при включении на сайте "Javascript Compression" модуль не хочет работать. Когда жмём "добавить товар в корзину", попадаем на страницу корзины. но в ней видим 0 товаров((
 
Назад
Сверху