Дробные числа товара VirtueMart 2.6.16 (Решено)
- Роман
- Автор темы
- Не в сети
- Новый участник
9 года 8 мес. назад - 9 года 8 мес. назад #7209
от Роман
Роман создал тему: Дробные числа товара VirtueMart 2.6.16 (Решено)
Итак, в 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
строку
меняем на
Для того чтобы товар меньше 1 добавлялся в корзину меняем LIMIT с 1 на 0.1 в cart.php
Но у меня интернет магазин продуктов питания... и там очень нужна такая вещь.
Я нашел как это исправить но вот только в корзине при заказе нельзя заказать если товара меньше 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 мес. назад пользователем Роман.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Wedal
- Не в сети
- Администратор
Less
Больше
- Сообщений: 2868
- Спасибо получено: 659
9 года 8 мес. назад #7211
от Wedal
Wedal ответил в теме Дробные числа товара
Роман, действуйте так:
1) Найдите через переопределение констант Joomla или поиском по файлам, в какой языковой переменной хранится текст ошибки "Пожалуйста, введите количество этого товара".
2) Поиском по файлам найдите все файлы, в которых встречается эта языковая переменная.
3) Определите, какой из найденных файлов напрямую относится к корзине.
4) Найдите в этом файле условия, которые приводят к появлению ошибки, сопоставьте их с вашей задачей и исправьте.
1) Найдите через переопределение констант Joomla или поиском по файлам, в какой языковой переменной хранится текст ошибки "Пожалуйста, введите количество этого товара".
2) Поиском по файлам найдите все файлы, в которых встречается эта языковая переменная.
3) Определите, какой из найденных файлов напрямую относится к корзине.
4) Найдите в этом файле условия, которые приводят к появлению ошибки, сопоставьте их с вашей задачей и исправьте.
Спасибо сказали: Роман
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Роман
- Автор темы
- Не в сети
- Новый участник
9 года 8 мес. назад #7212
от Роман
Роман ответил в теме Дробные числа товара
Вот получается так...
Переменная в яз файле ./ru-RU/ru-RU.com_virtuemart.ini
./components/com_virtuemart/helpers/cart.php
и тут я застрял.. )
Блин размусолить бы эту тему... в поиске не найти ничего толкового на дробные числа в virtuemart
З.Ы. вчера уже фрилансеров начал искать... пока без результатно (
Переменная в яз файле ./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
и поставил значение
Теперь осталось допилить шаг при заказе +0.1 и -0.1
Но не на весь товар а на отдельные весовые...
Я и так там настолько все донаправлял что только что заметил что если товар стоит от 1000р то в корзине показывается 1р )) а если например 2690 то 2р ))), а вот с цены ниже 1000р отображаются норм...
итак у меня ж стоит 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
от Роман
Роман ответил в теме Дробные числа товара
меня осинило... опять же утром...
Кнопка +- ведь использует JavaScript итак.... для того чтоб можно было + 0.1 или -0.1 надо всего то изменить в файле /components/com_virtuemart/assets/js/vmprices.js меняем как в коде на parseFloat вместо parseInt и теперь в админке можно ставить шаг товара в 0.1
надеюсь кому нибудь поможет... а то я тут сам с собой разговариваю мой сайт Gastronomik.ru
Кнопка +- ведь использует 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 мес. назад пользователем Роман.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Анастасия
- Не в сети
- Новый участник
Less
Больше
- Сообщений: 1
- Спасибо получено: 0
9 года 1 мес. назад #7437
от Анастасия
Анастасия ответил в теме Дробные числа товара VirtueMart 2.6.16 (Решено)
помогите мне пожалуйста (((
вроде бы сделала все что описано, но не выходит (((
вроде бы сделала все что описано, но не выходит (((
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.