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

ajr

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Мне нужно сделать, чтобы пользователь мог задавать дробное количество товара. Сделать так, чтобы форма, в которую вносится количество, воспринимала дробные числа оказалось не трудно. Но подсчёт общей суммы (количество умножить на цену) производится в этом случае неправильно. И никак не могу найти в каком файле и какой фрагмент кода производит эту калькуляцию.
Может кто сталкивался... Подскажите.
*

ajr

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Ну что, никто не знает?
Перешлю 50 WMR тому кто первый реально поможет в этой ветке:)))
*

tug

  • Захожу иногда
  • 333
  • 40 / 4
=) Поле в базе исправили?
*

ajr

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
По-моему база здесь пока непричём. Меня интересует та стадия, когда пользователь выбирает товар, добавляет его в корзину, а заказ ещё не оформлен. Но сумму он уже видит. По-моему, на этом этапе количество, заданное пользователем и эта сумма хранятся где-то в сессиях, а не в базе. Если я не прав, то поправьте...
Вот где эта калькуляция происходит(количество * на цену)?
*

ajr

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Проблема решена. Вопрос снимается.
*

tug

  • Захожу иногда
  • 333
  • 40 / 4
Вы правы конечно, база тут ни при чем, это я ступил...
Расскажите тогда уж всем =)
*

ajr

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Вряд ли кому-то это понадобится...)
Всё оказалось довольно просто.
Сначала надо подправить регулярные выражения в файле ps_cart.php , чтобы форма не отказывалась дробные числа принимать
if (!ereg("^[0-9.0-9]*$", $quantity))
в двух местах, в функциях add и update
и прямо перед этими регулярными выражениями вставить
$quantity = str_replace(",",".",$quantity);
чтобы вместо точки пользователь мог и запятую ставить.
И всё работает.
А потом, чтобы правильно отображалась инфа в разделе "Мои заказы" надо изменить поле в базе с INT на DECIMAL (tab. vm_order_item, поле product_quantity)
*

Balex777

  • Новичок
  • 8
  • 1 / 0
Вряд ли кому-то это понадобится...)
Всё оказалось довольно просто.
Сначала надо подправить регулярные выражения в файле ps_cart.php , чтобы форма не отказывалась дробные числа принимать
if (!ereg("^[0-9.0-9]*$", $quantity))
в двух местах, в функциях add и update
и прямо перед этими регулярными выражениями вставить
$quantity = str_replace(",",".",$quantity);
чтобы вместо точки пользователь мог и запятую ставить.
И всё работает.
А потом, чтобы правильно отображалась инфа в разделе "Мои заказы" надо изменить поле в базе с INT на DECIMAL (tab. vm_order_item, поле product_quantity)
Здесь все правильно описано, но не работает в лоб в VM 1.1.3. В файле cart.php нужно еще переменную quantity объявить типа DOUBLE и в базе данных соответственно полю product_quantity тоже присвоить тип DOUBLE. Работает.
*

Albert

  • Новичок
  • 7
  • 0 / 0
Здесь все правильно описано, но не работает в лоб в VM 1.1.3. В файле cart.php нужно еще переменную quantity объявить типа DOUBLE и в базе данных соответственно полю product_quantity тоже присвоить тип DOUBLE. Работает.

А в связке Joomla 1.5 и VirtueMart 1.1.3 дробное количество товара работает?
*

Albert

  • Новичок
  • 7
  • 0 / 0
Код
$quantity = str_replace(",", ".", $quantity);			
if (!ereg("^[0-9.0-9]*$", $quantity)) {


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

А как сделать, чтобы и запятые ставить можно было?
*

Balex777

  • Новичок
  • 8
  • 1 / 0
А в связке Joomla 1.5 и VirtueMart 1.1.3 дробное количество товара работает?

Работает. Именно на такой связке и тестировал.
*

Balex777

  • Новичок
  • 8
  • 1 / 0
Код
$quantity = str_replace(",", ".", $quantity);			
if (!ereg("^[0-9.0-9]*$", $quantity)) {


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

А как сделать, чтобы и запятые ставить можно было?

Я тоже столкнулся с этим. Причем первоначально вроде бы работало. После перезапуска web-сервера осталась возможность ставить только точку. Пока не понял как сделать запятую. Может автор кода (Ajr) поможет с этим?
*

jukov_b1

  • Осваиваюсь на форуме
  • 39
  • 6 / 0
Всем привет! Для того что бы корректно обрабатывалась запятая и добавление 0.5 товара необходимо еще подкорректировать ps_cart.php: в местах инициализации $quantity заменить (int) на (double) и замену на запятую поставить перед этими инициализациями. Скорректированный файлик прилагается  ^-^ .

Еще обратите внимание что нужно заменить тип данных поля product_in_stock таблицы jos_vm_product, на случай если магазин будет вычитать из общего количества товара на складе заказанное дробное количество  ^-^
Я заменил на тип данных double(15,2) а не просто double, не уверен нужно ли это, но на всякий случай, чтобы  mysql возвращаю с 2мя знаками после запятой (тоже касается tab. vm_order_item, поле product_quantity)

Примечание: глючат кнопки вверх вниз напротив количества товара, если введено количество с запятой а не точкой, нужно js подправлять, не разбирался какой.



[вложение удалено Администратором]
*

Alexandr14

  • Новичок
  • 9
  • 1 / 0
 Подскажите как и в каком файле переделать, чтобы  AlphaUserPoints принимал дробные числа!
*

jazzauto

  • Новичок
  • 1
  • 0 / 0
Интернет-магазин продает некоторые товары метрами квадратными - дробное число. Другие товары продаются штучно, а не метрами квадратными. Это целое число. То есть, скрипт должен интуитивно понимать, какой товар в целых числах, а какой товар в дробных числах.
Магазин на Virtuemart-2.6.x Joomla 2.5
Профессиональное решение этой задачи выложено здесь
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Количество просмотров товара VirtueMart Существует?

Автор grishin

Ответов: 38
Просмотров: 9801
Последний ответ 22.08.2020, 08:44:29
от rsn
VirtueMart. Вывести названия дополнительных изображений в карточке товара

Автор Delik

Ответов: 3
Просмотров: 3368
Последний ответ 04.09.2018, 10:42:46
от Eholov
Как сделать импорт товара на VirtueMart?

Автор Усач911

Ответов: 0
Просмотров: 934
Последний ответ 07.11.2017, 22:03:18
от Усач911
Sj Minicart Pro for VirtueMart не показывает изображение товара

Автор 6199233

Ответов: 2
Просмотров: 1259
Последний ответ 22.07.2017, 17:16:46
от 6199233
Ищу компонент для virtuemart: после заказа товара приходит SMS, есть такое?

Автор stylus83

Ответов: 0
Просмотров: 1010
Последний ответ 25.10.2016, 12:41:27
от stylus83