0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 2121 Просмотров
*

alikon1

  • Осваиваюсь на форуме
  • 32
  • 2 / 0
Появилось ли решение для добавления дробного количества товара в VM3, как это было сделано в VM2 и VM1.5? Всё обыскал, ответ нигде не могу найти.
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Дробное количество товара в VM3
« Ответ #1 : 22.10.2016, 12:09:31 »
/components/com_virtuemart/assets/js/vmprices.js
Попробуйте изменить строку. - 124
Код
Ste = parseInt(quantity.attr("step"));
Замените на
Код
Ste = parseFloat(quantity.attr("step"));

и чуть ниже строка 126
Код
Qtt = parseInt(quantity.val());
Меняем на
Код
 Qtt = parseFloat(quantity.val());


И соответственно в товаре на вкладке Статус в поле Шаги по оформлению количества поставить дробное число. 0.5

Не знаю не тестировал... Но кажется что должно работать.
*

alikon1

  • Осваиваюсь на форуме
  • 32
  • 2 / 0
Re: Дробное количество товара в VM3
« Ответ #2 : 22.10.2016, 16:02:39 »
Как и раньше в предыдущих VirtueMart

1. Изменил БД:
   #_virtuemart_products поле product_in_stock с integer на float
   #_virtuemart_order_items поле product_quantity с integer на float

2. В \components\com_virtuemart\helpers\cart.php упоминания int quantity заменил на float quantity
3. В components\com_virtuemart\assets\js\vmprices.js заменил parseInt на parseFloat в 7-ми местах.
4. В параметрах самого товара в настройках VirtueMart выставил шаг 0.1

Теперь показывается предупреждение Warning: Division by zero in \components\com_virtuemart\helpers\cart.php on line 1735.
При нажатии кнопки добавления в корзину бесконечно крутится fancybox, при этом соответственно данные в мини корзине не обновляются.
Если обновить страницу вручную, в корзине вместо "Корзина пуста" отображается итоговая сумма (верная), ссылка Показать корзину, но вместо кол-ва товара всё-равно надпись "Корзина пуста". Если перейти в корзину, то там кол-во и итоговая сумма отображается верно.
*

alikon1

  • Осваиваюсь на форуме
  • 32
  • 2 / 0
Re: Дробное количество товара в VM3
« Ответ #3 : 22.10.2016, 16:14:22 »
Так же странно ведет себя отображаемое количество товара при изменении +/-. Значения идут 0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6, 0.7, 0.7999999999999999, 0.8999999999999999, 0.9999999999999999, 1.0999999999999999, 1.2, 1.3, 1.4000000000000001, 1.5000000000000002, 1.6000000000000003, 1.7000000000000002, 1.8000000000000003, 1.9000000000000004, 2, 2.1, 2.2... Вместо просто шага через 0.1
*

Танита Сар

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Дробное количество товара в VM3
« Ответ #4 : 11.04.2018, 11:59:54 »
Я нашла такой вариант на связке VM 3 + плагин One Page Checkout for VirtueMart



Меняем в таблице virtuemart_products поле product_in_stock с integer на float.
И в таблице virtuemart_order_items также меняем поле product_quantity.
**
components\com_virtuemart\helpers\cart.php
Теперь и в этом файле нужно изменить обработку для типа числа. Ищем опять слово quantity и меняем приведение к int на приведение к float.
**
/plugins/system/onepage_generic
vmprices.js
Открываем файл в текстовом редакторе и ищем все вхождения слова quantity. Если для поля количества используется приведение к целому parseInt, то мы меняем тип с целого на float - parseFloat.

это дало возможность только  писать в корзине вручную дробные числа через точку


********
шаг 0,1 в корзине onepage_generic
plugins/system/onepage_generic/cart/tmpl/default_left.php

заменить все $step=1 на $step=0.1

*******
шаг 0,1 на странице товара
templates/shaper_megadeal_ii/html/com_virtuemart/sublayouts/addtocartbar.php
заменить все $step=1 на $step=0.1


В результате кнопками +/- можно увеличивать уменьшать кол-во товара на 0,1 начиная с 1.

***
если в магазе есть товары поштучно, то в каждом товаре поставить шаг товара 1 или любой другой  нужный шаг (напр  по 0,8)



Осталась одна проблема как писали выше, шаги выглядят так - 0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6, 0.7, 0.7999999999999. Правда после добавления в корзину все округляется до нужного. Но если в корзине изменять то опять получаются такие хвосты.

Кто нибудь знает как сделать чтобы после точки писалась только одна десятичная?
*

erbsen

  • Новичок
  • 9
  • 0 / 0
Re: Дробное количество товара в VM3
« Ответ #5 : 12.03.2020, 14:16:42 »
Я прошу прощения, могли бы помочь, разъяснить? В сети по этому вопросу есть только этот вариант.
у меня J3.9.12+VirtueMart 3.4.2
В какой таблице менять integer на float, если речь идёт о базе данных - у меня в поле product_in_stock стоит доступное количество товара.

$step=1 на $step=0.1 менял, приведение к int на приведение к float тоже, выставлял шаг в товаре, кэш чистил - ни к чему не привело.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сортировка По наличию товара - сначала По убыванию в VirtueMart

Автор rsn

Ответов: 6
Просмотров: 2104
Последний ответ 02.10.2022, 19:22:56
от SolopoV
Открытие карточки товара VirtueMart3 в новом окне из категории

Автор djed9

Ответов: 2
Просмотров: 1323
Последний ответ 16.07.2021, 09:06:35
от djed9
Как в RSS ленту VirtueMart 3 добавить дополнительные изображения товара?

Автор Slava77

Ответов: 2
Просмотров: 1460
Последний ответ 06.06.2021, 01:12:01
от Slava77
Продублировать фото товара после описания

Автор djed9

Ответов: 3
Просмотров: 610
Последний ответ 11.02.2020, 13:16:46
от djed9
Отключение всплывающего окна и перехода в корзину при добавлении товара

Автор calashnikov

Ответов: 15
Просмотров: 12473
Последний ответ 03.02.2020, 16:07:06
от zrkyuseo