Вопрос подсчета стоимости покупки вроде бы совсем простой. Но, как оказывается, даже в нем автор Simpla умудрился навешать баги.
Багов, связанных с ценами, я бы сказал, даже несколько групп.
1. Простейший - покупателю на самом деле на странице заказа, как ни странно, даже не показывается настоящая цена товара. А показывается некое округление этой цены. Из-за чего итоговой расчет цены выглядит так, как будто автор системы не знает простых правил арифметики. Подробности описаны на
http://simpla-tuning.com/kak-simpla-ne-umeet-schitat-tsenu
2. Вторая большая группа багов - ошибки, связанные с ценами в валютах:
http://simpla-tuning.com/zakazy-i-valyuty
3. Третья большая группа багов - ошибки цен в заказах, подробности на
http://simpla-tuning.com/rabota-s-zakazom
Упомянутые выше ошибки взаимосвязаны и носят системный характер. Причина самого их наличия - просчеты и в корне неверный подход автора к работе с ценами.
Настоящая разработка кардинально меняет расчет цен, исправляя эти недостатки.
Изменения весьма обширны как в логике работы, так и в коде. Но несмотря на это, удалось избежать написания больших объемов кода, а кое в чем даже упростить работу.
Доработка делает ряд серьезных изменений. В частности, в отличие от стандартной Simpla, правильно работает следующее:
1. При редактировании товара в админке к каждой основной цене (варианта) в админке указывается своя валюта. Цены в других валютах затем пересчитываются в зависимости от курсов валют.
2. На сайте показывается правильная цена товара. Подсчет стоимости нескольких одинаковых товаров производится обычным умножением.
3. В заказе запоминается валюта заказа и цены в этой валюте на момент заказа.
4. При дальнейшей обработке цены в заказе не меняются, в том числе при изменении курса валют.
5. В письмах админу и покупателю цены указываются в валюте заказа (как в начальных письмах, так и в письмах, отправляемых из админки при изменении заказа).
6. В админке при дальнейшей обработке заказа цены указываются также в валюте заказа.