Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Не меняется цена в заказах при изменении курса


 Поделиться

Рекомендованные сообщения

1 минуту назад, vcat сказал:

Нет, это 2 разных примера - сначала я установил курс 8,1, купил по этому курсу, заглянул в список заказов - также по этому курсу
Только после этого сделал другой пример, где установил курс 8,5, также купил и также посмотрел в список заказов

А в"учитывать в заказе" - ни чего лишнего нет?

Ссылка на комментарий
Поделиться на других сайтах


1 минуту назад, Dimasscus сказал:

Ну вот. По крайней мере так как я описал выше все отлично работает и без правок библиотеки корзины

Ну, в моем случае далеко не отлично ((
Ведь при изменении курса - на сайте все корректно меняется, цены по новому курсу пересчитывает, в корзину попадает по корректной цене.

Но вот после оформления заказа в админке товар попадает по другому курсу. Какой-то логики никак не прослеживается...

Ссылка на комментарий
Поделиться на других сайтах


надо смотреть в таблице .. (сырые данные)

Ссылка на комментарий
Поделиться на других сайтах

2 минуты назад, Dimasscus сказал:

А в"учитывать в заказе" - ни чего лишнего нет?

нет, там все отключил
налоги также отключил
то есть все, что каким-то образом могло бы делать дополнительный пересчет цены, отключено

Ссылка на комментарий
Поделиться на других сайтах


6 минут назад, vcat сказал:

нет, там все отключил
налоги также отключил
то есть все, что каким-то образом могло бы делать дополнительный пересчет цены, отключено

Попробуйте сделать заказ на 1ед. товара и заказ на несколько ед. И посмотрите именно в бд в заказе сумму обоих заказов- какие отличия от реальных сумм есть ли?

Ссылка на комментарий
Поделиться на других сайтах


7 минут назад, chukcha сказал:

надо смотреть в таблице .. (сырые данные)

Вот как раз и по таблицах тоже все в порядке:

Курс установлен 8,1

Цена товара в таблице `oc_product` - 253,00 - следовательно, на сайте цена 253 * 8,1 = 2049,00
Цена товара в корзине - 253,00 https://prnt.sc/26ljixc
При этом, тот же заказ в адмике по цене 2024,00 вместо 2049,00 https://prnt.sc/26ljl5h

Ссылка на комментарий
Поделиться на других сайтах


А опциях товара у вас цены случайно не проставлены?

Ссылка на комментарий
Поделиться на других сайтах


6 минут назад, Dimasscus сказал:

Попробуйте сделать заказ на 1ед. товара и заказ на несколько ед. И посмотрите именно в бд в заказе сумму обоих заказов- какие отличия от реальных сумм есть ли?

нет, при заказе на несколько единиц в таблице `oc_order_product` все в порядке - значение total строго соответствует сумме цены 
В БД товар ведь попадает в валюте админки, там все в порядке

 

Проблема лишь в пересчете курса оформленного заказа в админке сайта

Ссылка на комментарий
Поделиться на других сайтах


3 минуты назад, vcat сказал:

Вот как раз и по таблицах тоже все в порядке:

Курс установлен 8,1

Цена товара в таблице `oc_product` - 253,00 - следовательно, на сайте цена 253 * 8,1 = 2049,00
Цена товара в корзине - 253,00 https://prnt.sc/26ljixc
При этом, тот же заказ в адмике по цене 2024,00 вместо 2049,00 https://prnt.sc/26ljl5h

253*8=2024

253*9=2277

Понятно?:))

Ссылка на комментарий
Поделиться на других сайтах


Только что, vcat сказал:

нет

Выше написал причину

Ссылка на комментарий
Поделиться на других сайтах


1 минуту назад, Dimasscus сказал:

253*8=2024

253*9=2277

Понятно?:))

то есть, проблема со значениями курса после запятой - да, действительно
только вот диллема:
- на фронте пересчет курса проходит корректно, значения после запятой учитываются
- в корзине также все в порядке
- а вот после оформления заказа система округляет значение курса к целому числу без учета значений после запятой
Куда копать, чтобы найти, где именно прописана логика такого округления курса?

Ссылка на комментарий
Поделиться на других сайтах


2 минуты назад, vcat сказал:

то есть, проблема со значениями курса после запятой - да, действительно
только вот диллема:
- на фронте пересчет курса проходит корректно, значения после запятой учитываются
- в корзине также все в порядке
- а вот после оформления заказа система округляет значение курса к целому числу без учета значений после запятой
Куда копать, чтобы найти, где именно прописана логика такого округления курса?

Возможно какой то модификатор округляет,или где то вносились правки в вывод значения. В письмах тоже округленное приходит?

Ссылка на комментарий
Поделиться на других сайтах


Только что, Dimasscus сказал:

Возможно какой то модификатор округляет,или где то вносились правки в вывод значения. В письмах тоже округленное приходит?

да, в письме также приходит цена по округленному курсу

 

Ссылка на комментарий
Поделиться на других сайтах


2 минуты назад, vcat сказал:

да, в письме также приходит цена по округленному курсу

 

Ну если я не ошибаюсь- данные в заказ и в письма берутся из модели order.php. там убрать округление наверно

Ссылка на комментарий
Поделиться на других сайтах


7 минут назад, Dimasscus сказал:

Ну если я не ошибаюсь- данные в заказ и в письма берутся из модели order.php. там убрать округление наверно

посмотрел в  модель order.php - повсюду по коду встречается конструкия:

$this->currency->format($product['price']


но вот явного определения округления валюты там не видно (или не так смотрю)

Ссылка на комментарий
Поделиться на других сайтах


10 минут назад, vcat сказал:

посмотрел в  модель order.php - повсюду по коду встречается конструкия:


$this->currency->format($product['price']


но вот явного определения округления валюты там не видно (или не так смотрю)

Это видать какая то фича опенкарт.про:)) в обычной сборке нет проблем с округлением. Попробуйте сравнить файлы 

Я имею ввиду что округление курса валюты- не стандартная фича:)

Изменено пользователем Dimasscus
Ссылка на комментарий
Поделиться на других сайтах


48 минут назад, vcat сказал:

Вот как раз и по таблицах тоже все в порядке:

Курс установлен 8,1

Цена товара в таблице `oc_product` - 253,00 - следовательно, на сайте цена 253 * 8,1 = 2049,00
Цена товара в корзине - 253,00 https://prnt.sc/26ljixc
При этом, тот же заказ в адмике по цене 2024,00 вместо 2049,00 https://prnt.sc/26ljl5h

вы смотрите в oc_order
oc_order_product

Ссылка на комментарий
Поделиться на других сайтах

4 минуты назад, chukcha сказал:

вы смотрите в oc_order
oc_order_product

да, тут проблему уже определили благодаря @Dimasscus

 

в таблице `oc_order` значение currency_value попадает целым числом - 8 вместо 8,1
но вот откуда ноги растут, пока неизвестно - в модели order.php не видно ничего подозрительного, что бы обрезало значение курса

Ссылка на комментарий
Поделиться на других сайтах


1 минуту назад, vcat сказал:

да, тут проблему уже определили благодаря @Dimasscus

 

в таблице `oc_order` значение currency_value попадает целым числом - 8 вместо 8,1
но вот откуда ноги растут, пока неизвестно - в модели order.php не видно ничего подозрительного, что бы обрезало значение курса

тип этого поля?

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

1 минуту назад, chukcha сказал:

тип этого поля?

Спасибо огромное!!!!
Решилось!

Тип поля был DECIMAL, при этом длина/значение было 15,0 - отсюда и ноги расли )
Изменил значение, все решилось - курс попадает в корзину без округления 

Тут уже интересно, как такие настройки поля получились, учитывая, что правок туда никто не вносил.
Но главное, что заработало!

Спасибо Вам огромнейшее!

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.