4.3.6 модуль СДЭК а валюта не рубль, можно что сделать?

Еще споткнулся - включил модуль СДЕК, он включился, ответ присылает со стомостью, но в модуле срабатывает

if (empty($ruble) || $ruble['is_primary'] == 'N') {
    $this->_internalError(__('shippings.sdek.activation_error'));
}

А у меня основная - не рубль… Есть варианты как победить?

Так, сам острю - сам смеюсь опять.

Закомментировал эту проверку, дальше все пошло с одним НО: СДЭК возвращает стоимость в рублях, а модуль считает это валютой и, соответственно, умножает на курс.

Памагитеинвалиду, в каком месте идет прием данных? Я там это на курс валюты умножу и все дела.

Покопался, в

/app/addons/rus_sdek/func.php

есть

function fn_sdek_calculate_cost_by_shipment($order_info, $shipping_info, $shipment_info, $rec_city_code)

Явно вот оно, что надо…

        $result = $sum_rate['price']; меняю на
	$result = $sum_rate['price'] / 45; это типа курс у меня такой...

return $result;

Но в итоге ничего не меняется в выводе ни тестового расчета ни расчета на сайте… Что за дела?

Так, почти нашел. Точнее нашел - почти сделал…

/app/addons/rus_sdek/Tygh/Shippings/Services/Sdek.php

private function _getRates($response)

Есть строка

        $rates['price'] = $response['result']['price'] / 45;

Куда тупо вставил курс валюты, и заработало - калькулятор отдает цену в рублях теперь. Да, через зад, лучше бы, конечно, заставить модуль отдавать инфо что на выходе валюта уже рубли. Но хоть так.

ВОПРОС: в этом скрипте можно как-то получить курс валюты?

Чем дальше в лес - тем злее партизаны…

ВОПРОС 2:

В СДЭК передаются запросы с указанием кода доставки. Я нашел единственное место, где эти коды задаются:

/app/addons/rus_sdek/config.php

define('SDEK_STOCKROOM', 136);
define('SDEK_DOOR', 137);
define('SDEK_DOOR_STOCKROOM', 234); - это как надо.
define('SDEK_DOOR_DOOR', 233); - это как надо.
//define('SDEK_DOOR_STOCKROOM', 138); - это в оригинале, закомментил.
//define('SDEK_DOOR_DOOR', 139); - это в оригинале, закомментил.
define('SDEK_TIMEOUT', 5);

Вроде бы все должно работать… Но запросы в СДЭК улетают с кодами 138 и 139! Думал запрос кешируется - менял адреса и регионы, нет. Думал скрипты кешируются - удалял модуль и устанавливал назад с промежуточным жестким удалением /var/cache/ - не помогло. Прошелся по всем файлам /app/addons/rus_sdek/ в поисках треклятого кода 139 - нет числа 139 в файлах! Что за фигня, где я туплю так сильно?

Ну и

ВОПРОС 3:

После установки модуля появляются языковые переменные sdek_tariff_хххх значения которых я поменял. Но после удаления-установки модуля их значения опять старые. Перерыл все вроде файлы модуля - не могу найти где эти дефолтные значения спрятаны…

Как говориться сам придумал и сам обиделся! )))

Блин, ну подскажите же кто-нибудь! Явно ответ где-то на поверхности но я сослепу его не вижу!

define(‘SDEK_DOOR_STOCKROOM’, 138); - это было.

//define(‘SDEK_DOOR_STOCKROOM’, 138); - я закомментил

define(‘SDEK_DOOR_STOCKROOM’, 234); - вставил новую строку.

Все это в /app/addons/rus_sdek/config.php

Кеш чистил по-всякому. Прошелся grep по всему серверу в поисках SDEK_DOOR_STOCKROOM вдруг где еще оно сидит - нет. Прошелся по всей папке /app/addons/rus_sdek в поисках 138 - нет больше числа 138 (кроме ID городов).

Кеш чистил. По всякому. Модуль откл-вкл. Модуль удалить - поставить, но все равно былин в запросе передается ID доставки 138 если выбрать способ доставки SDEK_DOOR_STOCKROOM!!!

Всем спасибо за жаркое участие, в итоге методом дедукции я додумался сам, где может быть проблема, проверил - вуаля, она там и есть. Все у меня заработало, кроме подстановки курса валюты. Но это я думаю и не дождусь ответа, так что забью. Работает - и ладно.

2 лайка