[Помогите] Изменить валюту в почте

Тема в разделе "OpenCart", создана пользователем avtostopshik, 21 апр 2015.

  1. avtostopshik

    avtostopshik

    Регистрация:
    16 май 2014
    Сообщения:
    165
    Симпатии:
    13
    Помогите пожалуйста изменить отображаемую валюту, что показывается в почте. Две валюты в магазине - рубли и баты. По умолчанию стоят баты. В магазине нет возможности выбрать валюту, там показывается только одна - рубли. В письмах, приходящих клиенту, напротив каждого товара стоит валюта в батах, и только на против строчек "итого" и "сумма" указаны рубли.
    Для того, чтобы в магазине отображались только рубли, я немного поправил файл system\library\currency.php, в результате одна из строк выглядит так:
    public function format($number, $currency = 'RUB', $value = '', $format = true) {
    if ($currency && $this->has($currency)) {
    $symbol_left = $this->currencies[$currency]['symbol_left'];
    $symbol_right = '<font class="ruble">'.$this->currencies[$currency]['symbol_right'].'</font>';

    Так вот, нужно чтобы баты в письме не показывались, были только рубли.
    Адрес магазина - http://taidar.ru/
    Движок - ocStore 1.5.5.1.2
    Шаблон не дефолтный
    Скрин почты - https://yadi.sk/i/TM-qGNnjg8zf7
     
    halfhope нравится это.
  2. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    285
    Симпатии:
    312
    Файл model/checkout/order.php, функция confirm.
    Найдите код:
    PHP:
    $template->data['products'][] = array(
        
    'name'     => $product['name'],
        
    'model'    => $product['model'],
        
    'option'   => $option_data,
        
    'quantity' => $product['quantity'],
        
    'price'    => $this->currency->format($product['price'] + ($this->config->get('config_tax') ? $product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']),
        
    'total'    => $this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value'])
    );
    Замените в значениях price и total $order_info['currency_value'] на 'RUB' .
     
    avtostopshik нравится это.
  3. avtostopshik

    avtostopshik

    Регистрация:
    16 май 2014
    Сообщения:
    165
    Симпатии:
    13
    Спасибо. Действительно, символ изменился, только пересчёт остался прежним. То есть сейчас ситуация такая- продукт стоит 200 рублей, в батах это 100, в корзине значит указывает цену в рублях - 200, а в письме цена в батах, но с символом рубля. И получается в письме: напротив продукта цена 100 рублей, а в графе итого - 200.
    Скрин - https://yadi.sk/i/TM-qGNnjg8zf7
     
    halfhope нравится это.
  4. avtostopshik

    avtostopshik

    Регистрация:
    16 май 2014
    Сообщения:
    165
    Симпатии:
    13
    Как сделать так, чтобы расчёт правильно производился?
     
    halfhope нравится это.
  5. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    285
    Симпатии:
    312
    За это отвечает переменная $order_info['currency_value'], которая передается последней в функцию format, в ней содержится коэффицент валюты на который умножается стоимость товара. Для того чтобы все работало правильно нужно узнать какой коэффицент у валюты RUB и передать его в функцию format вместо $order_info['currency_value'].

    Для получение коэффицента есть функция $this->currency->getValue('RUB'). Т.е. Нужно заменить $order_info['currency_value'] на $this->currency->getValue('RUB')
     
    avtostopshik нравится это.
  6. avtostopshik

    avtostopshik

    Регистрация:
    16 май 2014
    Сообщения:
    165
    Симпатии:
    13
    Спасибо большое, это сработало)) только хочу уточнить - там было семь пунктов $order_info['currency_value'], которые я заменил на $this->currency->getValue('RUB')[/quote] - нечего плохого не будет в том, что я именно все семь заменил?
     
    halfhope нравится это.
  7. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    285
    Симпатии:
    312
    - нечего плохого не будет в том, что я именно все семь заменил?[/quote]
    хз. Скорей всего будет. Рекомендую заменить только в коде, который я писал в начале темы, т.е. в price и total.
     
    avtostopshik нравится это.