lodos 0 Posted December 15, 2009 Report Share Posted December 15, 2009 мм. логично. доставка = 30р за 1 км. валюта в админке - евро. курс 44р. поставил доставку 0,68 (в смысле 68 евроцентов). оформляю заказ. пишет стоимость доставки за 10км = 7р. т.е. считает 1 к 1 с округлением Link to post Share on other sites
support 446 Posted December 15, 2009 Report Share Posted December 15, 2009 Мультивалютность не по всему магазину, пересчитываются только цены товара, а вот стоимость доставки нет, очень желательно конечно иметь одну валюту, да всё в ней и забивать. Link to post Share on other sites
lodos 0 Posted December 15, 2009 Report Share Posted December 15, 2009 желательно, но не годится. просто потому, что товар поставляется по евровому прайсу. а торговать в евро (т.е. показывать цену не в нац.валюте) нельзя. я так понимаю - нужно ковырять самому? Link to post Share on other sites
support 446 Posted December 15, 2009 Report Share Posted December 15, 2009 Видимо, да, т.к. пересчёт по курсу идёт только для товаров, если я правильно понимаю чуть проблемы. Link to post Share on other sites
lodos 0 Posted December 15, 2009 Report Share Posted December 15, 2009 проблема в js модуля msk. при оформлении заказа теперь доставка считается красиво. но при указании километража - пересчёт из евро в рубли не проходит. Link to post Share on other sites
support 446 Posted December 15, 2009 Report Share Posted December 15, 2009 Ну вобщем-то потому он и сидит в файлах, а не идёт с магазином, т.е. по причине возможных глюков. Таков уж модуль, другого нет на данный момент. Link to post Share on other sites
lodos 0 Posted December 15, 2009 Report Share Posted December 15, 2009 мм. тогда такой вопрос.. текущий курс (значение) в какой php-переменной живёт? Link to post Share on other sites
support 446 Posted December 15, 2009 Report Share Posted December 15, 2009 Пересчёт числа по курсу идёт с использованием класса vam_price, в /includes/classes/vam_price.php Для пересчёта курса есть метод CurrEx если я правильно помню. Link to post Share on other sites
lodos 0 Posted December 17, 2009 Report Share Posted December 17, 2009 может кто маленька подсобит? собственно, нужно реализовать рассчёт километрожа по курсу евро при оформлении заказа и при его просмотре в модуле доставки "msk"?? Link to post Share on other sites
support 446 Posted December 17, 2009 Report Share Posted December 17, 2009 Вам нужно пример использовать CurrExx, т.е. пересчёт числа по куру другой валюты?! Можно посмтреть в /includes/modules/payment/paypal.php Там как раз пересчитывается сумма заказа из одной валюты в другую, можно пример посмотреть. Link to post Share on other sites
lodos 0 Posted December 17, 2009 Report Share Posted December 17, 2009 немного не так. мне нужно, чтоб в модуле доставки по Московской обл. (модуль MSK, находится тут: http://vamshop.ru/product_info.php/info/p17_Raschyot-dostavki-v-km-ot-MKAD.html) выводилась стоимость доставки по текущему курсу. Задача осложняется тем, что в админке цены в евро, а на сайте отображены в рублях по курсу. Соответственно, в настройках модуля установлена цена в евро. При рассчёте километража - отображается в евро. А при оформлении заказа - как нужно - в рублях по курсу. Задача в том, чтоб при рассчёте километража учитвывался курс валют! Проект временно живёт тут: http://dragonterra.com/gidromassage/ Проверить можно при создании заказа в выборе способа доставки Link to post Share on other sites
support 446 Posted December 17, 2009 Report Share Posted December 17, 2009 Ну я так понимаю нужно просто пересчитать число по курсу в рубли. Примерно вот так: round($vamPrice->CalculateCurrEx('здесь число', 'RUR'), $vamPrice->get_decimal_places('RUR')[/code]Вот эта строка выведет указанное число в пересчёте на рубли. Link to post Share on other sites
lodos 0 Posted December 17, 2009 Report Share Posted December 17, 2009 а где именно её вставить и с какой строки её поменять? Link to post Share on other sites
support 446 Posted December 17, 2009 Report Share Posted December 17, 2009 Ну я ж не знаю где Вы хотите выводить. Может где-то в /includes/modules/shipping, в файле модуля. Link to post Share on other sites
lodos 0 Posted December 17, 2009 Report Share Posted December 17, 2009 мм. я нашёл где происходит js рассчёт /inc/kms.inc.php function kms_js_text($one_km_cost) { $s='<script type="text/javascript"> function count_kms_cost() { Val=document.getElementById("kms_qty").value * '.($one_km_cost?$one_km_cost:'0').' document.getElementById("kms_result").value=Math.round(Val) }; </script>'; return $s;};[/code]так понимаю, километраж умножается на вот это($one_km_cost?$one_km_cost:'0')подставил сюда Ваш код - написало ошибку, типа метод или функция неизвестны Link to post Share on other sites
support 446 Posted December 17, 2009 Report Share Posted December 17, 2009 Попробуйте ещё добавить такую строку: global $vamPrice;[/code] Link to post Share on other sites
lodos 0 Posted December 17, 2009 Report Share Posted December 17, 2009 заменил ($one_km_cost?$one_km_cost:'0') на (round($vamPrice->CalculateCurrEx('здесь число', 'RUR'), $vamPrice->get_decimal_places('RUR'))) в начале ф-ции global $vamPrice; выводит стоимость 0 Link to post Share on other sites
support 446 Posted December 17, 2009 Report Share Posted December 17, 2009 Что, прям так и написали с тексто 'здесь число'?! Наверное нужно как-то так: ($one_km_cost?round($vamPrice->CalculateCurrEx($one_km_cost, 'RUR'), $vamPrice->get_decimal_places('RUR')):'0')[/code] или просто что б проверить, выводит или нет, вот так: [code]($one_km_cost?round($vamPrice->CalculateCurrEx(1000, 'RUR'), $vamPrice->get_decimal_places('RUR')):'0') Link to post Share on other sites
lodos 0 Posted December 17, 2009 Report Share Posted December 17, 2009 про "здесь число" - мои грабли. признаю. подустал маленька чёт echo ($one_km_cost?round($vamPrice->CalculateCurrEx(1000, 'RUR'), $vamPrice->get_decimal_places('RUR')):'0');[/code] выводит 1000 [code]($one_km_cost?round($vamPrice->CalculateCurrEx($one_km_cost, 'RUR'), $vamPrice->get_decimal_places('RUR')):'0') всё равно на 100км = 68, типо рублей Link to post Share on other sites
support 446 Posted December 17, 2009 Report Share Posted December 17, 2009 А если просто куда-нибудь вставить, например в /includes/header.php внизу, до ?>: global $vamPrice;echo $vamPrice->CalculateCurrEx(1000, 'RUR');[/code]Что выводит?!В Админке - Разное - Валюты есть ведь валюта с кодом RUR ?! Link to post Share on other sites
lodos 0 Posted December 17, 2009 Report Share Posted December 17, 2009 RUR, EUR [default] вставил в /include/header.php в самый низ global $vamPrice;echo $vamPrice->CalculateCurrEx(1000, 'RUR');[/code]на выходе получил1000 Link to post Share on other sites
support 446 Posted December 17, 2009 Report Share Posted December 17, 2009 Ну тогда может какой-нибудь кривой вариант типа: ($one_km_cost?$one_km_cost * курс:'0')[/code] Link to post Share on other sites
lodos 0 Posted December 17, 2009 Report Share Posted December 17, 2009 вО! отлично! "кривой" метод был самым лучшим )) делюсь эмоциями: Для моего решения memcached (описано тут: http://vamshop.ru/forum/index.php?topic=4608.0) находим функцию function kms_js_text($one_km_cost) и целиком меняем на function kms_js_text($one_km_cost) {global $memcache_obj, $eurocurs; $s='<script type="text/javascript"> function count_kms_cost() { Val=document.getElementById("kms_qty").value * '.($one_km_cost?$one_km_cost * $eurocurs:'0').' document.getElementById("kms_result").value=Math.round(Val) }; </script>'; return $s;};[/code] в случае, если пользуемся $_SESSION["eurocurs"], то функция будет выглядеть так: [code]function kms_js_text($one_km_cost) { $s='<script type="text/javascript"> function count_kms_cost() { Val=document.getElementById("kms_qty").value * '.($one_km_cost?$one_km_cost * $_SESSION["eurocurs"]:'0').' document.getElementById("kms_result").value=Math.round(Val) }; </script>'; return $s;}; Link to post Share on other sites
support 446 Posted December 17, 2009 Report Share Posted December 17, 2009 Хорошо, что разобрались и спасибо за код. Link to post Share on other sites
lodos 0 Posted December 18, 2009 Report Share Posted December 18, 2009 и снова я... При оформлении заказа в http://dragonterra.com/gidromassage/checkout_confirmation.php стоимость доставки считает не по курсу. какой файл отвечает за вывод стоимости доставки по курсу в модуле kms ? Link to post Share on other sites
Recommended Posts