Что проще для поддержания актуальной цены?

Тема в разделе "Общие вопросы", создана пользователем Zhezkazganetcs, 26 фев 2016.

  1. Zhezkazganetcs

    Zhezkazganetcs Продвинутый пользователь

    Сообщения:
    819
    Симпатии:
    108
    system\library\currency.php
    Код:
    if ($value) {
                $value = $value;
            } else {
                $value = $this->currencies[$currency]['value'];
            }
    
            if ($value) {
                $value = (float)$number * $value;
            } else {
                $value = $number;
            }
    заменить на
    Код:
    if ($value) {
                  $value = $value;
            } else {
                  $value = $this->currencies[$currency]['value'];
            }
    
            if ($value) {
                $value = (float)$number * round($value,-3);
            } else {
                $value = $number;
            }
    если цену поставить в евро 43(точка)26 а курс вручную установить 26000, то получится 1124760
    а должно получаться 1125000
    Рубль (По умолчанию) (1.00000000)
    евро (26000.00000000)
     
  2. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    220
    Так подождите.У вас Админке товары заполняются евро. На сайте вывод РБ.
    Так почему у вас цена тогда назначена по умолчанию Рубль, а не Евро?
     
  3. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    220
    В таком случае вам нужно цену по умолчанию ставить евро и внести такие изменения. Место RUB код валюты РБ
    "system\library\currency.php строка ~33

    найти
    $this->set($this->config->get('config_currency'));
    заменить на
    $this->set('RUB');
    Не забываем очистить кеш браузе и куки."
     
  4. Zhezkazganetcs

    Zhezkazganetcs Продвинутый пользователь

    Сообщения:
    819
    Симпатии:
    108
    нет
    сделал все
    но считает неправильно
     
    Последнее редактирование: 2 июн 2017
  5. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.569
    Симпатии:
    432
    Проще говоря, вы проводите изменения в контроллерах- вообще не гуд. Потом можно будет запутаться в ценах.
    Проще будет создать дополнительную цену и разделить их на вывод по валютам.
     
  6. Zhezkazganetcs

    Zhezkazganetcs Продвинутый пользователь

    Сообщения:
    819
    Симпатии:
    108
    solunski.d, а вы еще не реализовали решение?
     
  7. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.569
    Симпатии:
    432
    У вас на сайте должна быть одна валюта или две?
    Вы используете round() . Используйте для округления ceil()
    round — Округляет число типа float
    ceil — Округляет дробь в большую сторону - то что нам нужно
    PHP:
    <?
        
    $a 26318.83;
        
    $b 100;
        echo 
    ceil($a/$b) * $b//26400
    ?>
    Во вариант, вроде с рублями все ок.

    UPD: Нужно оперировать $b, для маленьких чисел подойдет 10, для тысяч 100.
    А дальше идет проверка если больше то $b будет равен столько то, если меньше то столько
     
    Последнее редактирование: 2 мар 2016
  8. Zhezkazganetcs

    Zhezkazganetcs Продвинутый пользователь

    Сообщения:
    819
    Симпатии:
    108
    у меня на сайте будет только одна валюта - белорусские рубли
    выбора валют не должно быть
    куда этот код вставлять?

    только цены то все разные
    и курсы каждый день пляшут
     
    Последнее редактирование: 2 мар 2016
  9. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.569
    Симпатии:
    432
    Ты хочешь сохранить реальную цену и только показать на сайте округленную?
     
  10. Zhezkazganetcs

    Zhezkazganetcs Продвинутый пользователь

    Сообщения:
    819
    Симпатии:
    108
    я хочу установить на сайте цену в евро, т.к. в евровом эквиваленте цены редко меняются
    на сайте, чтобы цена показывалать только в белорусских рублях
    и чтобы у пользователя не было на сайте выбора валют
     
  11. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.569
    Симпатии:
    432
    Ну вы замудрили :)
    Получается нужно евро конвертировать в "белорусские рубли" а потом округлить.
    Я вот что не знаю, если менять в фронтенде, будет ли корректно работать оплата. Если да, то задача проста.
     
  12. Zhezkazganetcs

    Zhezkazganetcs Продвинутый пользователь

    Сообщения:
    819
    Симпатии:
    108
    ну нужно попробовать
    в любом случае сначала на тестовом, а потом уже не рабочем
    просто пока перенес и установил актуальные цены евро опять скокнул и опять нужно все цены править
     
  13. Ecsiron

    Ecsiron Продвинутый пользователь

    Сообщения:
    415
    Симпатии:
    53
    Помогите разобраться!
    Искал ответ на вопрос с мультивалютой. Наверное Вы уже в курсе, что я именно это и реализовал в ОС 2.3.
    Все цены у товаров в валюте, на сайте конвертируется.
    Магазин работает, но записывается в заказ в рублях.(
    И что самое страшное, Новый год уже скоро, а там и курсы могут взлететь.
    Мне нужен ответ, как сделать сохранение заказа в БД со стоимостью в Евро.
    При этом, чтобы письма отправлялись с ценами в рублях.
     
  14. Zhezkazganetcs

    Zhezkazganetcs Продвинутый пользователь

    Сообщения:
    819
    Симпатии:
    108
    не, я не в курсе
    просто забил пока на этот вопрос
    только какая разница в чем будет стоимость, если курсы будут сконвертированы
     
  15. Ecsiron

    Ecsiron Продвинутый пользователь

    Сообщения:
    415
    Симпатии:
    53
    еще раз повторюсь. По учетной политике стоимость замораживается в момент оплаты, подтверждением служит платежка с отметкой банка. Как только мы ее видим мы сами запрашиваем счет и сразу его оплачиваем. Счет в рублях действует в момент вписывания! А счет в Евро на протяжении месяца.
    Так как нужно придерживаться закона я и ввел мультивалюту, все отлично, за раздела Заказы(
    "Формирование цены по текущему курсу ЦБ РФ! Все ценники на сайте в рублях и оформлены единообразно"
    Ты заказываешь у меня товар, я говорю, что можешь его оплачивать, а цена уже замороженная в ОС!
    Я жду оплаты несколько дней, а курс рубля в этот момент колеблется. А в заказах он заморожен!
    ОС конфликтует с нашей учетной политикой, она замораживает цены при заказе, а не оплате(
    Сам буду дописывать, но буду рад помощи и подсказкам от знатоков.
     
  16. vikaharkov

    vikaharkov Продвинутый пользователь

    Сообщения:
    676
    Симпатии:
    71
    Уверена, что как только это сделаете, у вас появятся претензии от покупателей.
    Если в евро цена неизменна, то в белорублях она будет меняться.
    Покупатель покажет вам скрин страницы со старой ценой и обвинит вас в аферизме.

    Всё это высказано только относительно Беларуси. Раз нельзя к евро или доллару открыто привязывать, то может возникнуть непонимание между вами и покупателем. Мне кажется, лучше дописать, что цены ориентировочные, и окончательная цена формируется в счет-фактуре.
     
  17. Ecsiron

    Ecsiron Продвинутый пользователь

    Сообщения:
    415
    Симпатии:
    53
    У нас покупают даже Белоруссия и Казахстан! Мы торгуем по таможенному союзу, я умею документы делать с НДС 0%. Тут еще один нюанс на сайте цена единая для всех и она включает НДС)
    Пускай оферту перечитают, все наличие и цены говорим на момент обращения по складу и курсу ЦБ РФ. Наша компания уже 7 лет работает и только барыги просят им цену заморозить, а этого не будет никогда. Так что у нас очень клиентоориентированная компания и поэтому разговор короткий) Да, товар был в наличии, когда Вы спрашивали, а сейчас его купили и Вам ждать 8 недель. Заказываем? Или мы можем вернуть вам деньги. Почти все говорят, что это плохие новости и соглашаются ждать. У нас эксклюзивный и высококачественный продукт.
     
  18. Zhezkazganetcs

    Zhezkazganetcs Продвинутый пользователь

    Сообщения:
    819
    Симпатии:
    108
    vikaharkov, да привязывайте хоть к тугрикам
    главное на сайте выводить в белках
    курсы меняются один раз в сутки и пусть он хоть 100500 сделает скринов - это ничего не даст
    а вот попытается обвинить, то тут уже и мы сможем его засудить "бла, бла защита деловой репутации..."
    так что если не знаете, то лучше не высказывайтесь
    все у нас нормально
     
  19. Ecsiron

    Ecsiron Продвинутый пользователь

    Сообщения:
    415
    Симпатии:
    53
    Респект и уважуха! У нас аналогично, я даже евро замаскировал, оно появляется если на цену мышь навести.
    у меня заказ попадает в согласование, когда буду отзваниваться, то спрашу, когда они будут оплачивать.
    если не сразу, то сохраню в евро. Пока так думаю. Если подскажите, как сделать так, чтобы сразу было в евро,
    то сильно поможете.