"В последнем обновлении изменения размера скидок продиктовано необходимостью правильной фискализации по ФЗ-54 - скидка, назначенная на весь заказ, распределяется по товарным позициям. В случае когда не удаётся её равномерно распределить, возникают копейки." - и теперь редактируя скидку в заказе не убрать, например, 01 копейку, из-за чего итоговая сумма заказа может быть 12650 руб 99 копеек. Нашим покупателям и нам неудобно иметь дело с копейками. Пытаемся избавиться от копеек при помощи плагина Гибкие скидки, в настройках которого ставим галочку округлять в большую сторону. В итоге копейки убираются, но при округлении от суммы скидки которая была изначально 765.01 копейки, съедаются от нас 35 рублей, т.е. округлилось до 800 руб. Что-то можно с этим сделать? Вручную 01 копейку никак не убрать, а дарить на каждый заказ по 35 руб невыгодно. Основная валюта рубли, цены в товарах конвертируются по внутреннему курсу сайта из иностранной валюты в рубли.
25 комментариев
только что тоже самое спросил в тп, ответ такой же, надеюсь можно будет для ИП поправить в php пока уточняю как, будем благодарны если кто знает...
Представляю лица работников в пунктах самовывоза которым надо с копейками работать, и лица покупателей у постамата, когда надо будет за любой заказ возвращать деньги на телефон или на счет яндекс денег. Гипер не удобно!
Тоже после обновления, покупатели применяют скидку и всегда добавляется одна копейка к скидке, никак не убрать. В итоге общая сумма типа 4 414,99. Устали уже объяснять всем что это за копейка. Вручную округлить не можем(((
Пришел ответ от тп:
Следует округлять скидку таким образом, чтобы она нацело поделилась на количество товаров в заказе. Тогда копейки не должны появляться.
Такая логика добавлена в Shop-Script версии 8.9 — сожалеем, но простого способа изменить такое поведение не предусмотрено. Мы передали разработчикам сообщение о возникшей у вас проблеме.
Если кто-нибудь использует Гибкие скидки, установите в плагине округление, а общее округление скидок в разделе Магазин - Настройки - Валюты отключите.
Мы очень хотим использовать, нет ли скидок сезонных на покупку плагина?) Для постоянных покупателей?)
На плагин скидку можно получить только в распродажи, устраиваемые Вебасистом.
Не сработало(
В настройках- Валюты не предусмотрено отключение округления для цен товаров и конвертации валют, даже не смотря на наличие только одной валюты
У нас не заработало... в Валютах округление отключено для скидок, в настройках плагина "Гибкие скидки" пробовали разные значения округления.
Это еще что. Вы попробуйте какой-то товар продать за 0 у.е. (валюта не важна), ну, как бы в подарок. В чеке будет "-0.01 у.е." ?
Почему нельзя в заказе сразу рассчитывать цену со скидкой, а итоговый размер скидки будет виден только в бекенде. Покупателю по большому счету важно какая конечная цена со скидкой, а не сумма самой скидки
Что за идиотизм... кому вообще в голову пришло выкатить такое обновление? В который раз убеждаемся, что разработчики не понимают, что действительно нужно владельцам интернет-магазинов.
Тоже вылезает одна копейка в скидке, указанной вручную.
ВРУЧНУЮ, Карл!!
Никак ее не убрать.
Округление не помогает совсем. В корзине 3 товара, скидка 7800 руб. (делится на 3). В итоге всё-равно добавляется копейка.
Более того редактируя скидку в бекенде получаем вообще вот такую картину, скидка увеличивается на 1 коп каждый раз при редактировании суммы скидки.
P.S. Отредактировать уже не могу.. С увеличением скидки я, конечно, загнул.
Но, при 3-х товарах последовательно редактируя скидку на 1 руб всегда добавлялась копейка:
7800 => 7800.01
7801 => 7801.01
7802 => 7802.01
7803 => 7803.01
7804 => 7804.01
7805 => 7805.01
7806 => 7806.01
Итак, если я правильно понял задумку разработчиков, то они упустили в файле wa-apps/shop/lib/classes/shopDiscounts.class.php остановить распределение копеек, если все уже распределились.
Решается добавлением кода
Перед закрывающей скобкой цикла foreach примерно в районе 777 (как иронично) строки. Скриншот:
https://monosnap.com/direct/0y...
Не претендуя на оригинальность просто озвучу какие-то свои мысли.
От копеек избавиться достаточно просто через конфиг currency.php выставив там precision => 0 для вашей валюты, чтобы вовсе отключить копейки везде. В настройках валют поставить при этом режим "Не округлять" (без конфига этот режим недоступен). И тогда после этого можно будет продать товар за 0 рублей без проблем и вообще нигде копеейка не вылезет.
Проблема в том, что такой режим работы подойдет не всем и кому-то эти копейки не нужны в ценах, но процентные скидки их требуют для точности.
Новая логика распределения предполагает сумму скидки кратную кол-ву товаров в заказе. Поэтому сумма скидки должна будет делиться нацело на кол-во товаров. И будет корректироваться системой по-умолчанию в большую сторону, если попадает не на деление нацело.
Допустим у меня в заказе 9 товаров (сумма заказа при этом совершенно не важна). Если я хочу поставить скидку в 5 рублей, то получу округление до 9. Следующая скидка может быть 18 рублей, потом 27 рублей и т.д.
Если товаров в заказе скажем 115 штук, то беда. Шаг скидки будет 115 рублей (115, 230, 345 и т.д.).
Со скидкой в % от суммы заказа будут сложности. Сумма вычисленных % будет меняться в большую сторону, что, как правило, обозначает минус для продавца.
Допустим 10% скидка от заказа на сумму 2000 рублей при 65 товарах составит 200 рублей, но 200 не делится нацело на 65 и пофигу что эти 65 товаров могут быть хоть все одного вида, хоть все разные по 1 шт, т.к. возможные значения 65, 130, 195 и 260 рублей.
В итоге при скидке в 10% от заказа в 2000 рублей продавец не получит 60 рублей, т.к. клиент заплатит не 1800, а 1740 рублей. При другом числе товаров, но при такой же общей стоимости заказа итоговые суммы недополученных денег могут быть даже больше.
И для таких ситуаций приходится сохранять копейки как ни крути, но это приводит к неудобству в расчетах. Если в супермаркетах суммы округляют налету продавцы и ты платишь как правило что-то ровное кратное рублям, то при расчетах в постаматах или картой онлайн возникает какое-то неудобство.
Пара знакомых, торгующие мелочевкой в больших кол-вах (бывает до 1000 позиций в заказе) выкручиваются перенося сумму скидки в цену каких-нибудь позиций заказа, что неудобно, но позволяет не оперировать копейками и задавать скидки вручную более точно. Процентные скидки они вынуждены были отменить как класс вообще совсем. Работать стало невозможно.
Чем меньше товарных позиций в среднем заказе, тем точнее у вас будет работать система скидок в любых её вариантах хоть в %, хоть в рублях.
Спасибо за чудесный ФЗ-54 конечно же, но нужен какой-то корректирующий алгоритм, вводящий "недостающий контрольный неполный" рубль в ту или иную сторону, чтобы убрать возникающие копейки по итогу и/или скидке.
Корректировка есть, но она хромает немного. Ошибка скорее технического рода, чем "идейного".
https://www.webasyst.ru/store/... если не редактировать вручную файлы.
До 4 точность, дает вроде округление
как исправить? обновились и теперь эта копейка не дает нормально работать....
Указанный выше (Алексей Webasyst 6 апреля 2020 21:59) бесплатный плагин решает проблему.
Это не совсем очевидно, но в данном плагине нужно установить точность 4. Тогда при выставлении ручной скидки в заказе и включенном округлении в настройках валют магазина, всё работает корректно - копейки не вылезают.
Мы выпустили обновление Shop-Script, в котором добавили разные возможности корректировки скидок в заказах. Обновление можно установить в «Инсталлере».
Проверьте, пожалуйста. Сообщите нам, если возникнут трудности при использовании новой функции.
Теперь если скидка больше стоимости заказа(без учета доставки) - то невозможно в бэкенде сохранить заказ:
Невозможно сохранить заказ с указанной скидкой. Выключите округление для скидок или измените настройку округления валюты, чтобы скидка стала меньше цены заказанного товара, либо разрешите разбиение позиций заказа в настройках валют.
А часто надо сделать скидку на всю стоимость с учетом доставки.
О разных ошибках сообщайте, пожалуйста, в отдельных темах на форуме поддержки. Так их удобнее обрабатывать и обсуждать, если потребуется.