Дробное количество товара в minishop2?
Здравствуйте!
Нашел вроде бы решения, но что-то ничего не помогает, в любом случае при указании дробного количества выходит ошибка Введите допустимые значения. Ближайшие допустимые значения
Есть ли работающие способы на сегодняшний момент? Заранее спасибо
Последним пользовался подсказками из этого коммента
Нашел вроде бы решения, но что-то ничего не помогает, в любом случае при указании дробного количества выходит ошибка Введите допустимые значения. Ближайшие допустимые значения
Есть ли работающие способы на сегодняшний момент? Заранее спасибо
Последним пользовался подсказками из этого коммента
Комментарии: 8
Проблема решилась, но появилась вторая.
После оформления заказа и в админке количество все равно указывается целым числом: если меньше одного, то 0, если больше, то ближайшее целое. Куда теперь ковырять, чтобы и там отображалось верно. Интересно то, что сумму считает верно, но вот именно count выводит неправильно после оформления заказа и в админке.
После оформления заказа и в админке количество все равно указывается целым числом: если меньше одного, то 0, если больше, то ближайшее целое. Куда теперь ковырять, чтобы и там отображалось верно. Интересно то, что сумму считает верно, но вот именно count выводит неправильно после оформления заказа и в админке.
А что вы продаете, что у вас не целое число? Вообще в базе ms2_order_products, там установлено целое число, соответственно и в minishop2.mysql.schema.xml тоже указано целое число. Там вам много где придется править, поэтому лучше переведи вашу единицу измерения в меньшую сторону. Если продаете в литрах, переведите в миллилитры, если миллилитрах → микролитры
Ситуация такая. Я сделал сайт для снабженцов компании: они выбирают товары из каталога, добавляют их в заявки (корзина) и сохраняют их (оформление заказа). Руководство выделяет деньги в соответствии с суммой заявки каждому снабженцу. Товары разные: строительные материалы, продукты, хозтовары, также есть такие позиции как парковка, мойка и заправка. Цены могут меняться с каждым разом, поэтому помимо обычной цены я добавил еще одно поле «Цена покупки», чтобы если расходы были ниже или выше, чем в заявке, снабженцы могли это указать перед закрытием заявки и руководство видело из-за чего другая сумма. Так вот, очень неудобно было бы менять все в наименьшую сторону, так как снабженцам помимо их рабочих суматох еще и придется перед заполнением считать цены: вместо КГ в Г, вместо М в СМ, вместо М2 в СМ2 — тут 100% будут ошибки.
Я путем велосипеда добавил возможность указывать дробное количество, но оно только в корзине. В каталоге, после оформления заказа (заявки) и в админке указываются все равно целые числа, хотя сумма считается правильно, т.е. учитываются дробные, а сам count почему-то все равно целое число.
Я путем велосипеда добавил возможность указывать дробное количество, но оно только в корзине. В каталоге, после оформления заказа (заявки) и в админке указываются все равно целые числа, хотя сумма считается правильно, т.е. учитываются дробные, а сам count почему-то все равно целое число.
Тогда во первых нужно поменять значение в базе данных для поля count в таблице ms2_order_products, на decimal, значение сами поставите или 10,4 или на сколько оно дробное. Или расширять класс, добавлять отдельное поле. Или, если сложно лезть в исходники minishop2 и там ломать. =) Это файлы в core где нужно править msorderproduct.map.inc.php, minishop2.mysql.schema.xml, ну и в assets/components/minishop2/js/mgr/orders/ тоже нужно смотреть. Но такой подход плохой, после обновления minishop2 все слетит. Поэтому лучше расширять классы, заменять нужные значения.
Да, изменил в БД тип count с integer на float. Теперь и в админке и после оформления заказа показывается дробное число. Но остался один момент: не подскажите почему в каталоге (сниппет msProducts) не получается добавить дробное число в корзину, т.е. я его могу изменить только в самой корзине уже, но не перед добавлением.
Возможно тут:
/www/promelectrica.ru/assets/components/minishop2/js/web/default.js
Тут тоже нужно посмотреть if (status['total_count'] < 1) поставить минимальное значение 0.0000001
Нужно смотреть, что он передает. И искать все что связано с cart/add, cart/change, cart/remove
/www/promelectrica.ru/assets/components/minishop2/js/web/default.js
Тут тоже нужно посмотреть if (status['total_count'] < 1) поставить минимальное значение 0.0000001
Нужно смотреть, что он передает. И искать все что связано с cart/add, cart/change, cart/remove
Нет, это никак не связано с этим. Потому что ошибка Введите допустимые значения. Ближайшие допустимые значения... выходит именно из-за того, что я ввожу дробное число, не важно больше или меньше 1.
1) Решение актуальное на сегодня в этом комменте.
2) Также надо изменить в таблице ms2_order_products тип count с int(10) на float.
3) Чтобы была возможность добавлять дробное число в корзину с каталога, достаточно в чанке tpl.msProducts.row (или в вашем аналоге) для инпута с name=«count» step=any
2) Также надо изменить в таблице ms2_order_products тип count с int(10) на float.
3) Чтобы была возможность добавлять дробное число в корзину с каталога, достаточно в чанке tpl.msProducts.row (или в вашем аналоге) для инпута с name=«count» step=any
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.