Jump to content

Модули доставки


Recommended Posts

мм. логично. доставка = 30р за 1 км. валюта в админке - евро. курс 44р. поставил доставку 0,68 (в смысле 68 евроцентов). оформляю заказ. пишет стоимость доставки за 10км = 7р. т.е. считает 1 к 1 с округлением

Link to post
Share on other sites
  • Replies 93
  • Created
  • Last Reply

Top Posters In This Topic

  • support

    45

  • lodos

    25

  • neorumancer

    6

  • enigmabob@mail.ru

    4

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

Link to post
Share on other sites

желательно, но не годится. просто потому, что товар поставляется по евровому прайсу. а торговать  в евро (т.е. показывать цену не в нац.валюте) нельзя. я так понимаю - нужно ковырять самому?

Link to post
Share on other sites

Видимо, да, т.к. пересчёт по курсу идёт только для товаров, если я правильно понимаю чуть проблемы.

Link to post
Share on other sites

проблема в js модуля msk. при оформлении заказа теперь доставка считается красиво. но при указании километража - пересчёт из евро в рубли не проходит.

Link to post
Share on other sites

Ну вобщем-то потому он и сидит в файлах, а не идёт с магазином, т.е. по причине возможных глюков.

Таков уж модуль, другого нет на данный момент.

Link to post
Share on other sites

Пересчёт числа по курсу идёт с использованием класса vam_price, в /includes/classes/vam_price.php

Для пересчёта курса есть метод CurrEx если я правильно помню.

Link to post
Share on other sites

может кто маленька подсобит? собственно, нужно реализовать рассчёт километрожа по курсу евро при оформлении заказа и при его просмотре в модуле доставки "msk"??

Link to post
Share on other sites

Вам нужно пример использовать CurrExx, т.е. пересчёт числа по куру другой валюты?!

Можно посмтреть в /includes/modules/payment/paypal.php

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

Link to post
Share on other sites

немного не так. мне нужно, чтоб в модуле доставки по Московской обл. (модуль 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

Ну я так понимаю нужно просто пересчитать число по курсу в рубли.

Примерно вот так:


round($vamPrice->CalculateCurrEx('здесь число', 'RUR'), $vamPrice->get_decimal_places('RUR')
[/code]

Вот эта строка выведет указанное число в пересчёте на рубли.

Link to post
Share on other sites

Ну я ж не знаю где Вы хотите выводить.

Может где-то в /includes/modules/shipping, в файле модуля.

Link to post
Share on other sites

мм. я нашёл где происходит 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

заменил

($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

Что, прям так и написали с тексто 'здесь число'?!

Наверное нужно как-то так:


($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

про "здесь число" - мои грабли. признаю. подустал маленька чёт


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

А если просто куда-нибудь вставить, например в /includes/header.php внизу, до ?>:


global $vamPrice;
echo $vamPrice->CalculateCurrEx(1000, 'RUR');
[/code]

Что выводит?!

В Админке - Разное - Валюты есть ведь валюта с кодом RUR ?!

Link to post
Share on other sites

RUR,  EUR [default]

вставил в /include/header.php

в самый низ


global $vamPrice;
echo $vamPrice->CalculateCurrEx(1000, 'RUR');
[/code]

на выходе получил

1000

Link to post
Share on other sites

Ну тогда может какой-нибудь кривой вариант типа:


($one_km_cost?$one_km_cost * курс:'0')
[/code]

Link to post
Share on other sites

вО! отлично! "кривой" метод был самым лучшим ))

делюсь эмоциями:

Для моего решения 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

и снова я...

При оформлении заказа в

http://dragonterra.com/gidromassage/checkout_confirmation.php

стоимость доставки считает не по курсу. какой файл отвечает за вывод стоимости доставки по курсу в модуле kms ?

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...