Куда идем?

Дробные числа товара VirtueMart 2.6.16 (Решено)

Больше
9 года 8 мес. назад - 9 года 8 мес. назад #7209 от Роман
Итак, в Virtuemart 2.6 как я сразу понял нельзя покупать товар в таких величинах как 0.1 или 2.5
Но у меня интернет магазин продуктов питания... и там очень нужна такая вещь.

Я нашел как это исправить но вот только в корзине при заказе нельзя заказать если товара меньше 1 выскакивает ошибка

"info
Пожалуйста, введите количество этого товара."

стоит компонент OnePage Checkout, но думаю дело в cart.php

Я его весь уже изнасиловал.... а решения не найти :(

Прошу помощи добрые форумчане

И еще если кто знает как задать шаг для таких весовых товаров в 0.1 например!?

З.Ы. Может кому пригодится.

В базе данных меняем типы полей с int на float

_virtuemart_products поле product_in_stock
_virtuemart_order_items поле product_quantity

Для того, чтобы при обновлении количества в самой корзине не отбрасывалась дробная часть, в файле \components\com_virtuemart\helpers\cart.php
строку
Code:
$quantity = JRequest::getInt('quantity');

меняем на
Code:
$quantity = JRequest::getFloat('quantity');

Для того чтобы товар меньше 1 добавлялся в корзину меняем LIMIT с 1 на 0.1 в cart.php
Code:
public function getCardCategoryId($virtuemart_product_id) { $db = JFactory::getDBO(); $q = 'SELECT `virtuemart_category_id` FROM `#__virtuemart_product_categories` WHERE `virtuemart_product_id` = ' . (int) $virtuemart_product_id . ' LIMIT 0,1'; $db->setQuery($q); return $db->loadResult(); }
Последнее редактирование: 9 года 8 мес. назад пользователем Роман.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 8 мес. назад #7211 от Wedal
Wedal ответил в теме Дробные числа товара
Роман, действуйте так:
1) Найдите через переопределение констант Joomla или поиском по файлам, в какой языковой переменной хранится текст ошибки "Пожалуйста, введите количество этого товара".
2) Поиском по файлам найдите все файлы, в которых встречается эта языковая переменная.
3) Определите, какой из найденных файлов напрямую относится к корзине.
4) Найдите в этом файле условия, которые приводят к появлению ошибки, сопоставьте их с вашей задачей и исправьте.
Спасибо сказали: Роман

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 8 мес. назад #7212 от Роман
Роман ответил в теме Дробные числа товара
Вот получается так...

Переменная в яз файле ./ru-RU/ru-RU.com_virtuemart.ini
Code:
COM_VIRTUEMART_CART_ERROR_NO_VALID_QUANTITY="Пожалуйста, введите количество этого товара."

./components/com_virtuemart/helpers/cart.php
Code:
private function checkForQuantities($product, &$quantity=0,&$errorMsg ='') { $stockhandle = VmConfig::get('stockhandle','none'); // Check for a valid quantity if (!is_numeric( $quantity)) { $errorMsg = JText::_('COM_VIRTUEMART_CART_ERROR_NO_VALID_QUANTITY', false); // $this->_error[] = 'Quantity was not a number'; $this->setError($errorMsg); vmInfo($errorMsg,$product->product_name); return false; } // Check for negative quantity if ($quantity < 0.1) { // $this->_error[] = 'Quantity under zero'; $errorMsg = JText::_('COM_VIRTUEMART_CART_ERROR_NO_VALID_QUANTITY', false); $this->setError($errorMsg); vmInfo($errorMsg,$product->product_name); return false; }


и тут я застрял.. )

Блин размусолить бы эту тему... в поиске не найти ничего толкового на дробные числа в virtuemart

З.Ы. вчера уже фрилансеров начал искать... пока без результатно (

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 8 мес. назад - 9 года 8 мес. назад #7213 от Роман
Роман ответил в теме Дробные числа товара
так.... корзину с заказом победил.. )) (утро, вечера мудренее)

итак у меня ж стоит OnePage Checkout (ну прост он в 1 клик и красив)

так там я нашел такой же кусок кода... ./components/com_onepage/overrides/cart_override.php

и поставил значение
Code:
if ($quantity < 0.1) {

Теперь осталось допилить шаг при заказе +0.1 и -0.1
Но не на весь товар а на отдельные весовые...
Я и так там настолько все донаправлял что только что заметил что если товар стоит от 1000р то в корзине показывается 1р )) а если например 2690 то 2р ))), а вот с цены ниже 1000р отображаются норм...
Последнее редактирование: 9 года 8 мес. назад пользователем Роман.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 8 мес. назад - 9 года 8 мес. назад #7216 от Роман
Роман ответил в теме Дробные числа товара
B) меня осинило... опять же утром...

Кнопка +- ведь использует JavaScript итак.... для того чтоб можно было + 0.1 или -0.1 надо всего то изменить в файле /components/com_virtuemart/assets/js/vmprices.js меняем как в коде на parseFloat вместо parseInt и теперь в админке можно ставить шаг товара в 0.1
Code:
plus.click(function() { var Qtt = parseFloat(quantity.val()); if (!isNaN(Qtt)) { quantity.val(Qtt + Ste); Virtuemart.setproducttype(cart,virtuemart_product_id); } }); minus.click(function() { var Qtt = parseFloat(quantity.val()); if (!isNaN(Qtt) && Qtt>Ste) { quantity.val(Qtt - Ste); } else quantity.val(Ste); Virtuemart.setproducttype(cart,virtuemart_product_id); });

надеюсь кому нибудь поможет... а то я тут сам с собой разговариваю ;) мой сайт Gastronomik.ru
Последнее редактирование: 9 года 8 мес. назад пользователем Роман.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 1 мес. назад #7437 от Анастасия
Анастасия ответил в теме Дробные числа товара VirtueMart 2.6.16 (Решено)
помогите мне пожалуйста (((
вроде бы сделала все что описано, но не выходит (((

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.