Перейти к содержанию
Официальный форум поддержки Simpla

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

Проблема заключается в следущем. Разные поставщики присылают оптовые прайсы в разных валютах, доллары, евро, гривны. Вывожу на сайте гривны. Заливается и хранится в базе только одна валюта. Но курсы меняются каждый день, поэтому возникает проблема. Потому что, например, один товар стоил 100 грн., а другой 100 евро, курс евро был, допустим, 9,94. Поэтому в админке харнится цена 10,06 на первый товар и 100 на второй. Потом курс меняется и становится, например, 10,24 (грн. за евро). В итоге на сайте выводится уена на первый товар 103,01 грн. (!вот тут проблема цена на товар не менялась, а он подорожал на 3 грн., а все из-за того, что валюта админки не та в которой оптовый прайс!), а на второй 1024 грн. (как и должно быть).
Думаю было бы целесообразно в при добавлении товара указывать валюту и в админке выводить ту валюту, в которой был добавлен товар, и ничего не конвертировать для админки, но на сайте выводить те валюты которые попросит покупатель, соответветственно по курсу валют, который может меняться каждый день.
Как мне кажется это очень ценная доработка и не сложно реализуемая, единственная проблема будет с сортировкой товара (например, по цене), там надо будет на лету пересчитывать.
Вобщем кто-то делал такое? Есть решения этой проблемы? Или мысли как это сделать?

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

Есть решение, добавляете в базе к вариантам 2 колонки в одной валюты в другой суммы.

В симпла продакт.тпл в 2-ух местах добавляешь:

<li class="variant_priceval">
			<input name="variants[priceval][{$variant->id}]" type="text" value="{$variant->priceval|escape}" />
			<input name="variants[val][{$variant->id}]"      type="text" value="{$variant->val|escape}"  style="width:50px;"/>
		</li>


и для пустых:

<li class="variant_priceval">				<input name="variants[priceval][]" type="text" value="0.00" />				<input name="variants[val][]"      type="text" value="EUR"  style="width:50px;"/>			</li>


создаете отдельный скрипт, который узнает текущий курс, и проставляет цены в нужной валюте

и ставите его в крон, каждое утро.
Ссылка на сообщение
Поделиться на другие сайты

Немного не то. Я сам смогу менять курсы, это не важно, а конвертацию делать на ходу исходя из выбранной пользоваьтелем валюты и валюты товара. В это и загвоздка. Раньше конвертация происходила только исходя из выбранной пользователем валюты.
Добавил столбец cur_id в базу s__variants, ну и вытащил его с помощью функции get variants и get variant, добавил поля в импорт, экспорт. Осталось только изменить функцию convert в Money.php, формулу я придумал: вместо

$result = $result*$currency->rate_from/$currency->rate_to;


пишем

$result = $result*$rate_to(варианта товара)/$rate_from(варианта товара)*$currency->rate_from/$currency->rate_to;


Но вот как инициализировать нужный вариант (т.е. цену которого сейчас будем конвертировать)? Пробовал

$this->product->variant->rate_to;

Не работает.
Знатоки симплы помогайте, осталось один шаг сделать и будет новая доработка, которой все смогут пользоваться.
Повторяю вопрос: как обратиться к варианту товара, который мы сейчас конвертируем из файла Money.php?
Ссылка на сообщение
Поделиться на другие сайты

Никак, в эту функцию передается только сумма и, опционально, валюта в которую нужно конвертировать. Эта функция никакого отношения к вариантам не имеет, всё что она делает - это умножает переданные ей числа между собой. Но этого достаточно, просто передавайте туда валюту варианта {$v->price|convert:$v->cur_id}

Ссылка на сообщение
Поделиться на другие сайты
просто передавайте туда валюту варианта {$v->price|convert:$v->cur_id}

Простите, это работает для 202? А то что-то какая-то ерунда все время выскакивает, даже не могу понять что нужно на что умножать. чтоб получить такие странные результаты.
Ссылка на сообщение
Поделиться на другие сайты

Пробовал при вытяжке вариантов добавить

(cur.rate_to/cur.rate_from) as con_price


а потом в шаблоне

{$product->variant->price|convert/$product->variant->con_price}

В результате получалось какое-то число очень длинное, причем до запятой только один знак, а потом все остальные, например, 5.45653123565.
Пробовал и ваш вариант, но в результате всегда 44 !?
Ссылка на сообщение
Поделиться на другие сайты

извините, я перепутал - нужно же конвертировать из валюты варианта, а не в неё, так что так не получится. Прийдется переделывать convert и передавать в нее дополнительным параметром id валюты варианта

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

Вот а как? Как передать этот параметр?
Кстати, а через шаблон нельзя? Просто формулу там вставить price|convert разделить на мой con_price и вывести результат с двумя знаками после запятой, там можно как то формулы в смарти писать? Так было бы проще..

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

Ура получилось!! Использовал такую конструкцию:

{math equation="x*y" x=$product->variant->price y=$product->variant->con_price assign="conv"}<span>{$conv|convert}</span>

Правда в мануале смрти написано, что это ресурсоемкая функция, поэтому ее лучше не использовать. Но что поделаешь? По другому как сделать я не заню.
Осталось поправить сортировку, корзину, заказы..((
Ссылка на сообщение
Поделиться на другие сайты

Странно, после того как добавил эти доработки перестала работать корзина, нажимаю на купить, переходит в корзину и говорит мол товаров нет... Никто не знает что такое?

Ссылка на сообщение
Поделиться на другие сайты
  • 1 год спустя...

Подскажите, а можно сделать так чтобы в админке можно было вводить цены в долларах и менять самостоятельно курс, а на сайте цену товаров отображать в рублях?

 

Это актуально для магазинов работающих по системе дропшиппинг, когда у поставщика цена в долларах, приходится постоянно корректировать все цены на сайте при изменении курса доллара - это мега гемор, если товаров много...

Ссылка на сообщение
Поделиться на другие сайты
  • 6 месяцев спустя...

Подскажите, а можно сделать так чтобы в админке можно было вводить цены в долларах и менять самостоятельно курс, а на сайте цену товаров отображать в рублях?

 

Это актуально для магазинов работающих по системе дропшиппинг, когда у поставщика цена в долларах, приходится постоянно корректировать все цены на сайте при изменении курса доллара - это мега гемор, если товаров много...

Можно. Но на сайте такая забавная арифметика получается, без внесения правок!)) Я ставлю в админке у.е. и задаю курс, посетители видят к примеру гривну целым числом. Сайт округляет и снимает копейки сам. Итоговая сумма заказа у меня в админке и у посетителя одинаковая, но вот если проверять по каждой позиции в корзине, конечно хохма. Разница может гулять в 20-50 грн, если позиций много. Что-то типа 5шт. * 20 грн. = 107 грн.

Пришлось пару раз оправдываться перед клиентами и объяснять " Понимаете, у нас в админке сайта на всем товаре курс в долларах..."))

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...