Форум русской поддержки Joomla!® CMS
10.12.2016, 03:16:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Не меняется цена

 (Прочитано 2408 раз)
0 Пользователей и 1 Гость смотрят эту тему.
chesster
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 149


« : 06.08.2013, 12:50:25 »

Здравствуйте.
Только заметил, что не меняется цена в зависимости от количества.
Меняю количество, что-то происходит - цена помигивает, но сума не меняется.
Спасибо.
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3595


« Ответ #1 : 06.08.2013, 18:19:28 »

Похожие темы на форуме уже были, поищите. Дело скорее всего в шаблоне, он ведь не default, верно?
Записан
chesster
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 149


« Ответ #2 : 07.08.2013, 11:22:17 »

Похожие темы на форуме уже были, поищите. Дело скорее всего в шаблоне, он ведь не default, верно?
шаблон по то как раз по умолчанию, но чисто условно, потому что в нем уже куча правок.. но откат к первоначальному шаблону результата не дает.
п.с. не в моих привычках постить тему не использовав поиск перед этим Azn создал значит не нашел Wink
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3595


« Ответ #3 : 07.08.2013, 11:29:54 »

не в моих привычках постить тему не использовав поиск перед этим Azn создал значит не нашел Wink
Тогда вы уже должны знать, что необходимо давать больше информации.
Записан
chesster
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 149


« Ответ #4 : 07.08.2013, 12:40:11 »

Тогда вы уже должны знать, что необходимо давать больше информации.
даю больше информации.. установил полностью чистую Joomla 2 + полностью чистый VM2, все брал с рус. офсайтов последних версий..
и та же ошибка
увеличиваю количество, мутнеет цена (как будто слои накладываются) и становится опять на место ничего не поменяв
до

во время

после
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3595


« Ответ #5 : 07.08.2013, 13:40:27 »

А как должна была меняться цена в зависимости от количества?
Записан
chesster
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 149


« Ответ #6 : 07.08.2013, 13:51:17 »

А как должна была меняться цена в зависимости от количества?
Grin ну как-бы так - общая цена товаров = количество товаров * цену одного товара
или, хз, в ВМ2 это не реализовано? просто в ВМ1 это было по умолчанию.. если так, то тогда какого фига вообще срабатывает непонятно какой скрипт при нажатии на +- количества товара
Записан
chesster
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 149


« Ответ #7 : 07.08.2013, 14:27:35 »

при увеличении количества товара в карточке товара, цена должна изменяться в зависимости от количества.. т.е. цена 10$, нажал на плюсик, увеличил количество до 2, цена стала 20$.. там нажал я на submit корзины ("добавить в корзину") или нет, не важно..
« Последнее редактирование: 07.08.2013, 14:40:02 от chesster » Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3595


« Ответ #8 : 07.08.2013, 14:33:37 »

Прошу прощения, если случайно вас обидел. Предыдущий пост затираю.
установил полностью чистую Joomla 2 + полностью чистый VM2, все брал с рус. офсайтов последних версий..
и та же ошибка
увеличиваю количество, мутнеет цена (как будто слои накладываются) и становится опять на место ничего не поменяв
Какой к вас шаблон? В оригинальном default такого эффекта не видел.
Записан
chesster
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 149


« Ответ #9 : 07.08.2013, 14:45:23 »

Какой к вас шаблон? В оригинальном default такого эффекта не видел.
все по умолчанию, специально ничего не трогал, чтоб проверить этот "глюк". Поверх ВМ2 только установил аио и русифицировал ВМ2 и аио. В шаблонах тоже по умолчанию стоят шаблоны Beez_20 и Bluestork
думал может ява у меня на компе злится, но проверил на двую остальных, та же фигня..
Записан
chesster
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 149


« Ответ #10 : 07.08.2013, 14:51:36 »

таксь, http://demo.virtuemart.net/index.php/2012-01-13-09-33-20/virtuemart-default-layout/mobile-phones/i9000-galaxy-s-detail тоже самое.. глюк не у меня
кто-то знает где можно посмотреть демо 1.9 vm?
« Последнее редактирование: 07.08.2013, 14:59:30 от chesster » Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3595


« Ответ #11 : 07.08.2013, 16:25:48 »

таксь, http://demo.virtuemart.net/index.php/2012-01-13-09-33-20/virtuemart-default-layout/mobile-phones/i9000-galaxy-s-detail тоже самое
Так это оф.демо сайт. Вы уверены, что такая фишка была в стандартном пакете VM2? Если да, то в какой версии?
Записан
chesster
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 149


« Ответ #12 : 07.08.2013, 18:58:18 »

Так это оф.демо сайт. Вы уверены, что такая фишка была в стандартном пакете VM2? Если да, то в какой версии?
в том, то и дело, что была.. не помню в какой версии, не факт что во 2й, может и в конце первых.
вы когда меняете количество товара в карточке на демке офсайта, у вас ничего с ценой не происходит? я в плане - визуально присмотритесь
Записан
chesster
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 149


« Ответ #13 : 08.08.2013, 17:06:02 »

прочитано больше 100 раз.. народ, что никому не интересно?
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3595


« Ответ #14 : 09.08.2013, 22:47:20 »

в том, то и дело, что была.. не помню в какой версии, не факт что во 2й, может и в конце первых.
Не помню такую фишку во всех известных мне версиях.
вы когда меняете количество товара в карточке на демке офсайта, у вас ничего с ценой не происходит? я в плане - визуально присмотритесь
Ну да, срабатывает эффект jQuery fadeTo, когда выполняется комманда recalculate, которая пересчитывает цену в зависимости от аттрибутов.
« Последнее редактирование: 09.08.2013, 22:50:59 от robert » Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #15 : 12.08.2013, 22:44:33 »

Ну да, эффект срабатывает, потом уходит AJAX запрос, который обрабатывает контроллер в controller\productdetails.php, который в свою очередь обращается к модели в файле models\product.php, в методе которого (О ужас!) вызывается метод из класса описанного в administrator\helpers\calculationh.php и называется getProductPrices. В нем идет обращение еще к каким то методам и возвращается массив цен.Только как он работает я пока еще толком не понял, но ошибка кроется где то там. У самого та же самая проблема, если разберусь то напишу здесь. В крайнем случае можно скрипт повесить который будет цену умножать.
Записан
fsv
Moderator
*****

Репутация: +330/-2
Offline Offline

Пол: Мужской
Сообщений: 2247


« Ответ #16 : 13.08.2013, 00:20:20 »

прочитано больше 100 раз.. народ, что никому не интересно?
Интересно, конечно, о чем 17 сообщений. А то не понял.
"Цена" - стоимостная оценка единицы товара; она же - "Sales price" на оф.демо-сайте.
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #17 : 13.08.2013, 05:09:18 »

В общем, как оказалось в VirtueMart не предусмотрена возможность изменять цену юнита, только в корзине можно увидеть итоговоую цену:
http://forum.virtuemart.net/index.php?topic=112155.msg377176#msg377176
Ну и фиг с ним сделаем сами. На форумах есть решения прописать в файл  components\com_virtuemart\controllers\productdetails.php в строку 296
Код:

//VmConfig::$echoDebug = TRUE;
$prices = $product_model->getPrice ($virtuemart_product_id, $customPrices, $quantity);
                //добавить
                $prices['basePrice'] = $prices['basePrice'] * $quantity;
                $prices['basePriceWithTax'] = $prices['basePriceWithTax'] * $quantity;
                $prices['discountedPriceWithoutTax'] = $prices['discountedPriceWithoutTax'] * $quantity;
                $prices['salesPrice'] = $prices['salesPrice'] * $quantity;
                $prices['salesPriceWithDiscount'] = $prices['salesPriceWithDiscount'] * $quantity;
                $prices['taxAmount'] = $prices['taxAmount'] * $quantity;
                $prices['discountAmount'] = $prices['discountAmount'] * $quantity;
                $prices['basePriceWithTax'] = $prices['basePriceWithTax'] * $quantity;

Но это очень грязный подход, потому как мы вносим изменения в контроллер которые могут отменится при обновлении VirtueMart.
Поэтому я набросал жабаскрипт который можно добавить в шаблон. Если кому надо могу выложить.
« Последнее редактирование: 13.08.2013, 05:14:45 от zomby6888 » Записан
chesster
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 149


« Ответ #18 : 15.08.2013, 14:22:59 »

Интересно, конечно, о чем 17 сообщений. А то не понял.
а как по мне, то я внятно, причем несколько раз, объяснил что я имел ввиду...
"Цена" - стоимостная оценка единицы товара; она же - "Sales price" на оф.демо-сайте.
что такое "Цена" я знаю, и после того как она берется напрямую из базы, то еще пересчитывается через фиг знает сколько функций.. и только потом "итог" пишется в HTML. Так вот этот "итог" должен меняться в зависимости от количества товара, который я указываю в окне товара, и причем не в корзине, а в том же окне и в то же время..

кароч, у меня уже такое чувство, или я на самом деле пытаюсь что-то доказать? зачем?)))) и зачем вы мне что-то доказываете? мне бы решение вопроса..

Ну да, эффект срабатывает, потом уходит AJAX запрос, который обрабатывает контроллер в controller\productdetails.php, который в свою очередь обращается к модели в файле models\product.php, в методе которого (О ужас!) вызывается метод из класса описанного в administrator\helpers\calculationh.php и называется getProductPrices. В нем идет обращение еще к каким то методам и возвращается массив цен.Только как он работает я пока еще толком не понял, но ошибка кроется где то там. У самого та же самая проблема, если разберусь то напишу здесь. В крайнем случае можно скрипт повесить который будет цену умножать.
во-во!! ну хоть вы меня поняли! я даже не уверен что это, ошибка, недоработка или так и должно быть..

Поэтому я набросал жабаскрипт который можно добавить в шаблон. Если кому надо могу выложить.
мне надо Azn
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #19 : 15.08.2013, 14:40:40 »

Пожалуйста. Вам нужен файл по адресу: templates\ваш шаблон\html\com_virtuemart\category\default.php. Если его нет то вручную создайте этот путь и скопируйте туда файл из папки components\com_virtuemart\views\category\tmpl\default.php. Можете конечно и его править но тогда при обновлении файл может переписатся. Добавьте туда в любое место (только не между тэгами <?php  и ?>) следующий код:
Код:
<script type="text/javascript" language="JavaScript">
$(window).load(function () {
$("form.product").each(function() {
var form = jQuery(this);
var quantity=form.find('.quantity-input'), quantityInt = parseInt(quantity.val());
var plus = form.find('.quantity-plus');
var minus = form.find('.quantity-minus');
var id = form.find('input[name="virtuemart_product_id[]"]').val();
var prices = $("#productPrice" + id);
var stepval = form.find('input[name="quantity"]').val();
var step = (isNaN(parseInt(stepval)))? 1 : parseInt(stepval);
var datas = form.serialize();
plus.unbind('click');
minus.unbind('click');
var setvalue = function () {
$.getJSON(window.vmSiteurl + 'index.php?option=com_virtuemart&nosef=1&view=productdetails&task\
=recalculate&virtuemart_product_id='+id+'&format=json' + window.vmLang, encodeURIComponent(datas),
function (datas, textStatus) {
for (var key in datas) {
if (datas[key] != 0 && datas[key] != null) {
var pricestr = datas[key].match(/^[.]*([\d]+[\W]*[\d]*)(.*)/);
price = parseFloat(pricestr[1].replace(/[,]+/g, '.'));
currency = pricestr[2];
prices.find("span.Price"+key).html((price*quantityInt).toFixed(2)+currency);
}
}
});
}
plus.click(function() {
if (!isNaN(quantityInt)) {
quantityInt += step;
quantity.val(quantityInt);
}
setvalue();
});
minus.click(function() {
if (!isNaN(quantityInt) && quantityInt>step) {
quantityInt -= step;
quantity.val(quantityInt);
} else quantityInt = step;
setvalue();
});
});
});
</script>

Ах да, забыл . В моем случае корзина находится в просмотре категорий. в вашем случае она скорее всего находится по адресу: templates\ваш шаблон\html\com_virtuemart\productdetails\default.php  в шаблоне или в components\com_virtuemart\views\productdetails\tmpl\default.php. Добавляете скрипт туда.
« Последнее редактирование: 15.08.2013, 14:56:48 от zomby6888 » Записан
chesster
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 149


« Ответ #20 : 15.08.2013, 15:58:57 »

в вашем случае она скорее всего находится по адресу: templates\ваш шаблон\html\com_virtuemart\productdetails\default.php  в шаблоне или в components\com_virtuemart\views\productdetails\tmpl\default.php. Добавляете скрипт туда.
чет не хочет работать, вообще без изменений.. пробую варианты
« Последнее редактирование: 15.08.2013, 16:13:35 от chesster » Записан
fsv
Moderator
*****

Репутация: +330/-2
Offline Offline

Пол: Мужской
Сообщений: 2247


« Ответ #21 : 15.08.2013, 17:30:51 »

Код
<div id="amountItem"></div>
<script type="text/javascript">
(function($) {
$(document).ready(function() {
amountItem();
$(".quantity-controls").click(function() {
setTimeout(function() { amountItem(); }, 500);
});
function amountItem() {
var price = parseFloat($("span.PricepriceWithoutTax").html().replace(/[^,\d]/g,'').replace(/,/g, '.'));
var qty = $(".quantity-input").val();
var amountItem = (price*qty).toFixed(2);
$("#amountItem").html(amountItem);
}
});
})(jQuery);
</script>
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #22 : 15.08.2013, 18:56:42 »

чет не хочет работать, вообще без изменений.. пробую варианты
У вас какая версия VirtueMart? У меня вроде работает все.

С таймаутом тоже вариант, я сначало тоже так написал, но потом подумал что хз когда ответ на запрос вернется, вдруг сервак секунду думать будет, поэтому сделал анбинд и вручную отправку запроса, ну и запуск уже после load документа, чтобы скрип из vmprices.js его не опередил и не перезатер цены. В вашем случае это конечно не страшно, потому как у вас цена в отдельный блок пишется,  однако в таком случае придется править стили)
« Последнее редактирование: 15.08.2013, 19:08:38 от zomby6888 » Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #23 : 15.08.2013, 19:38:28 »

немного подправил скрипт, попробуйте так:
Код:
<script type="text/javascript" language="JavaScript">
$(window).load(function () {
$("form.product").each(function() {
var form = jQuery(this);
var quantity=form.find('.quantity-input'), quantityInt = parseInt(quantity.val());
var plus = form.find('.quantity-plus');
var minus = form.find('.quantity-minus');
var id = form.find('input[name="virtuemart_product_id[]"]').val();
var prices = form.parents(".productdetails").find(".product-price");
if (0 == prices.length) {
prices = $("#productPrice" + id);
}
var stepval = form.find('input[name="quantity"]').val();
var step = (isNaN(parseInt(stepval)))? 1 : parseInt(stepval);
var datas = form.serialize();
plus.unbind('click');
minus.unbind('click');
var setvalue = function () {
$.getJSON(window.vmSiteurl + 'index.php?option=com_virtuemart&nosef=1&view=productdetails&task\
=recalculate&virtuemart_product_id='+id+'&format=json' + window.vmLang, encodeURIComponent(datas),
function (datas, textStatus) {
for (var key in datas) {
if (datas[key] != 0 && datas[key] != null) {
var pricestr = datas[key].match(/^[.]*([\d]+[\W]*[\d]*)(.*)/);
price = parseFloat(pricestr[1].replace(/[,]+/g, '.'));
currency = pricestr[2];
prices.find("span.Price"+key).html((price*quantityInt).toFixed(2)+currency);
}
}
});
}
plus.click(function() {
if (!isNaN(quantityInt)) {
quantityInt += step;
quantity.val(quantityInt);
}
setvalue();
});
minus.click(function() {
if (!isNaN(quantityInt) && quantityInt>step) {
quantityInt -= step;
quantity.val(quantityInt);
} else quantityInt = step;
setvalue();
});
});
});
</script>
Записан
chesster
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 149


« Ответ #24 : 16.08.2013, 10:16:20 »

вчера что-то сделал, сегодня заработало  Grin
огромеднейшее спасибо!
Записан
STARKY
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2



« Ответ #25 : 18.05.2015, 19:12:52 »

Добрый вечер! Такая же дилемма. Поставил на сайт custom fields fo rall v3.0.1, дабы было больше свободы с дополнительными полями. Поля работают, цена минусуется и все вроде бы ок, но вот цена только мигает и все. Ничего динамически не хочет меняться. Скрипты сверху пробовал, ничего, абсолютно никакой реакции, кроме мигания. VirtueMart 2.6.6. Можете кто-нибудь подсказать как решить данную бяду? ! ! !
Записан
BHy4eK
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 113



« Ответ #26 : 27.07.2015, 15:50:23 »

zomby6888 Спасибо большое!
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet