Неверный расчет стоимости

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

korshunov
korshunov
Репутация: 91
Сообщения: 1038
Зарегистрирован: 03.12.2015
С нами: 3 года 9 месяцев
Skype

Сообщение #1 korshunov » 03.12.2015, 19:17

1. На демо сайте кладу в корзину товар
http://demo.okay-cms.com/products/detskie-kacheli-graco-swingnbounce

2. Открываю корзину, показывает 1 шт, 499 руб
3. Увеличиваю число товара, теперь показывает 2 шт, 997 руб

А должно быть 2 х 499 = 998 руб.

Похоже, неверно работает из-за округления.

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 123
Сообщения: 1037
Зарегистрирован: 12.11.2015
С нами: 3 года 10 месяцев
Сайт Skype

Сообщение #2 OkayCMS » 03.12.2015, 19:39

Да, происходит это из-за того что у товара стоит цена 498.55 и выключено отображение копеек. Поэтому происходит округление при одном товаре в большую сторону, до 499, а при двух товарах и сумме в 997.10, до 997. В ближайшем обновлении, ориентировочно в начале следующей недели, в настройках для пользователей будет добавлен выбор как обрабатывать копейки в таких товарах при выключенном отображении товаров. Будет предложено два варианта.

1) Округлять по математическим правилам (как сейчас)
2) Округлять всегда в меньшую сторону. (Тогда клиент не будет видеть данных несовпадений, но возможен шанс, что владелец магазина будет недополучать доход в несколько копеек (рублей при заказе нескольких десятков одного товара)).

korshunov
korshunov
Репутация: 91
Сообщения: 1038
Зарегистрирован: 03.12.2015
С нами: 3 года 9 месяцев
Skype

Сообщение #3 korshunov » 06.12.2015, 14:45

Странный у Вас метод решения задачи.

Неужто не видите, что у второго способа будут подобные ошибки.
В том же примере, для двух товаров сумма в 997.10 округляется обоими способами до 997.
Каким бы способом не округлять цену одного товара, будет то же самое несоответствие.

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 123
Сообщения: 1037
Зарегистрирован: 12.11.2015
С нами: 3 года 10 месяцев
Сайт Skype

Сообщение #4 OkayCMS » 06.12.2015, 19:16

Да, вы правы. Будет даже хуже. Так как во втором случае клиенту будет показываться цена за 1 товар 498 р., а за 2 не 996, а 997. Будем думать.

Дрим
Дрим

Сообщение #5 Дрим » 13.04.2017, 09:43

Добрый день.
Как можно прописать цену до 4 знака? И выключить округление цены? Okay 1.2.2 Lite

makki
makki
Репутация: 160
Сообщения: 459
Зарегистрирован: 12.08.2016
С нами: 3 года 1 месяц
Откуда: Киев
Сайт Skype

Сообщение #6 makki » 16.10.2017, 14:13

Столкнулся с той же проблемой. Прошло почти 2 года как тема поднята, а в выпущенных обновлениях проблема не решена.
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS

korshunov
korshunov
Репутация: 91
Сообщения: 1038
Зарегистрирован: 03.12.2015
С нами: 3 года 9 месяцев
Skype

Сообщение #7 korshunov » 16.10.2017, 16:44

Для решения надо кардинально менять методы расчетов. Думаю, в ближайшие пару лет изменений к лучшему в этом вопросе Вы от разработчиков не дождетесь...

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 123
Сообщения: 1037
Зарегистрирован: 12.11.2015
С нами: 3 года 10 месяцев
Сайт Skype

Сообщение #8 OkayCMS » 16.10.2017, 18:23

Напишу проще. Количество времени, которое нужно потратить на решение этой проблемы, несопоставимо с пользой, которую принесет решение этой проблемы.

koteyka-2 M
Аватара
koteyka-2 M
Репутация: 7
Сообщения: 44
Зарегистрирован: 27.09.2016
С нами: 2 года 11 месяцев
Откуда: Днепр
Skype

Сообщение #9 koteyka-2 » 22.10.2017, 19:07

Думаю, что достаточно будет просто округлять цену до момента умножения на количество и проблема решится.
Настройка обмена OKAY и SIMPLA с 1С 7.7 и 8.х, Мой склад и Укрсклад
Доработка, изменение функционала.

korshunov
korshunov
Репутация: 91
Сообщения: 1038
Зарегистрирован: 03.12.2015
С нами: 3 года 9 месяцев
Skype

Сообщение #10 korshunov » 23.10.2017, 06:08

koteyka-2 писал(а):Думаю, что достаточно будет просто округлять цену до момента умножения на количество и проблема решится.

Конечно, решится. Только надо ведь суметь "просто округлять цену до момента умножения".

Вот тут
http://forum.simplacms.ru/topic/12827-редактирование-суммцен/
один спец сначала сильно возмущался, что такие скачки цен трактуют как ошибку. Он считал, что это не ошибка совсем. Потом, видно, одумался, и заявил уже, что проблема есть, но решается легко и просто и написал кратенькое исправление в пару строк. Когда ему указали на очевидные детские ошибки в его "решении", в теме самоликвидировался. Должно быть, осознал...

Если считаете, что это очень просто, то напишите свой код, решающий проблему.
Почему-то мне кажется, что с ходу найдется ошибка в Вашем решении...

makki
makki
Репутация: 160
Сообщения: 459
Зарегистрирован: 12.08.2016
С нами: 3 года 1 месяц
Откуда: Киев
Сайт Skype

Сообщение #11 makki » 16.07.2018, 07:01

OkayCMS писал(а):Напишу проще. Количество времени, которое нужно потратить на решение этой проблемы, несопоставимо с пользой, которую принесет решение этой проблемы.
Польза от решения этой проблемы очевидна. Мне кажется такие недоработки не должны быть в коммерческом движке и сколько бы они не требовали времени и усилий их надо исправлять, перед тем как выпускать годами новые обновления.

Неужто так много времени нужно потратить на решение?....

Как вариант
1) Каждый товар должен иметь цену в собственной валюте (закупки) и цену в главной валюте (продажи).
2) Формировать цены в главной валюте на стадии добавления/редактирования или импорта товара по выставленному курсу.
3) Делать перерасчет цен при смене курса валют или основной валюты.
4) Убрать уже ненужные left join __currencies в sql запросах

Дополнительная польза от предлагаемого решения - сокращение количества sql запросов и как следствие небольшой прирост скорости работы движка, в особенности при отображении каталога товаров.
Последний раз редактировалось makki 16.07.2018, 08:36, всего редактировалось 3 раза.
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS

korshunov
korshunov
Репутация: 91
Сообщения: 1038
Зарегистрирован: 03.12.2015
С нами: 3 года 9 месяцев
Skype

Сообщение #12 korshunov » 16.07.2018, 07:54

makki писал(а):Польза от решения этой проблемы очевидна. Мне кажется такие недоработки не должны быть в коммерческом движке.
Можно было бы уже решить эту проблему с округлением цен, за годы обновлений.

Неужто так много времени нужно потратить на решение?....

На мой взгляд, основная причина того, что не исправлено за долгие годы, именно в том, что это сложно и требует больших трудозатрат. А главная трудность в том, что работа с ценами изначально запланирована нерационально, и сделать что-то несложным образом в рамках текущей структуры практически невозможно. На сайте Simpla некоторые спецы пытались решить вопрос с наскока - чем кончилось, известно. А разработчики Okay к этому вопросу, видимо, и подходить-то боятся...

Впрочем, попробуйте потратить мало времени и дать короткое простое решение. Оценим с удовольствием...

makki
makki
Репутация: 160
Сообщения: 459
Зарегистрирован: 12.08.2016
С нами: 3 года 1 месяц
Откуда: Киев
Сайт Skype

Сообщение #13 makki » 16.07.2018, 07:56

korshunov писал(а):Впрочем, попробуйте потратить мало времени и дать короткое простое решение. Оценим с удовольствием...
Я же описал решение. У меня оно давно работает.
Хотелось бы, чтобы такой проблемы небыло по-умолчанию в движке.
Последний раз редактировалось makki 16.07.2018, 09:50, всего редактировалось 1 раз.
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS

korshunov
korshunov
Репутация: 91
Сообщения: 1038
Зарегистрирован: 03.12.2015
С нами: 3 года 9 месяцев
Skype

Сообщение #14 korshunov » 16.07.2018, 09:32

Если имеете в виду пп. 1-4, то это совсем не решение. У Вас в этих пунктах речь идет в основном о валютах и курсах, в то время как ошибка, описанная в начале темы, проявляется даже в случае, когда установлена всего ОДНА валюта...

Если напишете полный список изменений в Вашем методе, думаю, наверняка обнаружится ошибка...
А еще лучше - установить бы где-то демо Вашего метода. Если Вы захотите исправлять ошибки и доводить его хотя бы до среднего состояния, работы Вам предстоит немало...


Название раздела: Баг-репорт OkayCMS (Сообщения об ошибках)
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Баг-репорт OkayCMS (Сообщения об ошибках)»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость