Письмо с магазина на Opencart

Opencart — конвертер валют в админке

Недавно предо мной постала задача конвертирования валют прямо в админке opencart. Заказчик хотел иметь возможность вводить цены в рублях, гривнах и долларах, при этом не пересчитывая вручную. Кроме того на сайте пользователь должен видеть только гривневые цены.

 

Я долго думал как это сделать так чтобы все правильно работало….Ничего лучшего не придумал кроме как проводить конвертирование в админке, а валютой по умолчанию сделать доллар.

Для того чтобы в на сайте пользователь не видел долларовые цены, я отключил все валюты кроме гривны (система — локализация — валюты) . После этого на сайте все цены были представленный только в гривнах.

Ну ближе к делу….

Как получить/вывести список и курс валют в opencart

Для начала нужно было получить список и значения валют в форме добавления товара opencart. Для этого  в файле контроллера admin/controller/catalog подключим модель localisation/currency у нее есть метод возвращающий массив с информацией о валютах данного магазина. Вот код обращения к модели.

$this->load->model('localisation/currency');
$this->data['currs'] = array();
$results = $this->model_localisation_currency->getCurrencies();
foreach ($results as $result) {
$this->data['currs'][] = array(
'currency_id' => $result['currency_id'], // ID - валюты, если нужно
'title' => $result['title'], // название валюты
'code' => $result['code'], // код валюты, если нужно
'value' => $result['value'] // значение валюты
);
}

Теперь перейдем к выводу валют и их относительного курса в форме добавления/ редактирования товара в  opencart.

Для этого в фале  admin/view/template/catalog/product_form.php добавим несколько радиокнопок со значениями валюты, по нажатию на эти кнопки  цена будет конвертироваться в валюту по умолчанию.

<div id="select_curr">
<?php foreach($currs as $cur){
echo '<input type="radio" name="curr_change" id="'.$cur["title"].'" value="'.$cur['value']. '"> '.$cur["title"].' - '.$cur['value'] ;if ($cur['value']==1) echo('<b> - ( По умолчанию )</b>');
}
?>
<br>
</div>

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

Для начала присвоим идентификатор полю с ценой, это нужно для обращения к нему из скрипта

<input type=»text» id=»price» name=»price» value=»<?php echo $price; ?>» />

Ну а теперь сам скрипт

<script type="text/javascript">
$('div #select_curr>input:radio').click(function(){
var selected_curr=$('div #select_curr input:radio:checked').attr('value');
var price=$('#price').attr('value')
$('#price').attr('value', Math.round(price/selected_curr).toFixed(2));
alert('Цена конвертирована в валюту по умолчанию');
});
</script>

Вот и все. По нажатию радиокнопки цена конвертируется в валюту по умолчанию, в моем случае это доллар. Вот так просто седалать конвертер валюты в админке opencart

Конечно все это дело можно было привести в божеский вид и сделать так называемый конвертер более понятным в работе, но за те копейки что заплатят мне и за тот вынос мозга который устроил клиент и так сойдет 😉


One thought on “Opencart — конвертер валют в админке

  1. Alexodiy 24.07.2018 at 17:42

    подскажите пожалуйста как сделать так же, только чтобы 3 поля было — евро, доллары и рубли и эти значения можно было бы ввести по отдельности, без всякой конвертации.

Добавить комментарий