Урок 35 Как вывести вторую цену в Биткоинах на opencart (bitcoin, btc)?

Приветствую.
Давненько я не писал, все как то времени не было, хотя материала уже насобиралось. Думаю что в этом году постараюсь возобновить посты про доработки на opencart, ну а сегодня хотелось бы остановиться на том, как можно вывести вторую цену в Биткоинах (bitcoin, btc).
Криптовалюты все больше и больше входят в нашу жизнь. И если еще пару лет назад многие воспринимали их как «пустышку», то сегодня уже начинают понимать перспективу. Многие магазины начинают принимать в качестве оплаты за свои услуги криптовалюту, в частности bitcoin.
Я сегодня не буду рассматривать как добавить BTC в качестве валюты и как получать их курсы в автоматическом режиме. Сегодня речь пойдет как вывести рядом с основной ценой в категориях и в карточке товара цену в биткоинах.
Доработки будем делать в контроллерах, добавив новую переменную. Для получения курса будем использовать сервис bitpay.com, в частности его API. Я не буду детально разбирать сам скрипт. Он ниже
1 2 3 4 5 6 7 8 9 |
$url = "https://bitpay.com/api/rates"; $json = json_decode(file_get_contents($url)); $dollar = $btc = 0; foreach($json as $obj){ if ($obj->code=='USD') { $kursbtc = (1/$obj->rate)*$result['price']; $kursbtc = number_format($kursbtc, 8, ".", ""); } } |
Идем в /catalog/product/category.php и после строки
1 |
$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); |
вставляем код, который я дал выше. Для цены со скидкой код будет чуть другим
1 2 3 4 5 6 7 8 9 |
$url = "https://bitpay.com/api/rates"; $json = json_decode(file_get_contents($url)); $dollar = $btc = 0; foreach($json as $obj){ if ($obj->code=='USD') { $kursbtc_spec = (1/$obj->rate)*$result['special']; $kursbtc_spec = number_format($kursbtc_spec, 8, ".", ""); } } |
Далее после
1 2 |
'price' => $price, 'special' => $special, |
Добавляем
1 2 |
'kursbtc' => $kursbtc, 'kursbtc_spec' => $kursbtc_spec, |
По аналогии доработки делаются и для модулей Последние, Новинки, Рекомендуемые, Акционные
В темплейте этих модулей в необходимом месте добавляем код вывода цены в bitcoin
1 2 |
<?php echo $product['kursbtc']; ?> <?php echo $product['kursbtc_spec']; ?> |
Как вывести цену товара в BTC в карточке товара
Теперь переходим к варточке товара.
Опять идем в контроллер по адресу /catalog/product/product.php и после
1 |
$data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); |
добавляем код
1 2 3 4 5 6 7 8 9 |
$url = "https://bitpay.com/api/rates"; $json = json_decode(file_get_contents($url)); $dollar = $btc = 0; foreach($json as $obj){ if ($obj->code=='USD') { $data['kursbtc'] = (1/$obj->rate)*$result['special']; $data['kursbtc'] = number_format($data['kursbtc'], 8, ".", ""); } } |
И так же по аналогии делаем доработку для товаров со скидкой
1 2 3 4 5 6 7 8 9 |
$url = "https://bitpay.com/api/rates"; $json = json_decode(file_get_contents($url)); $dollar = $btc = 0; foreach($json as $obj){ if ($obj->code=='USD') { $data['kursbtc_spec'] = (1/$obj->rate)*$result['special']; $data['kursbtc_spec'] = number_format($data['kursbtc_spec'], 8, ".", ""); } } |
Теперь идем в темплейт карточки товара и в нужном месте выводим стоимость в биткоинах
1 2 |
<?php echo $kursbtc; ?> <?php echo $kursbtc_spec; ?> |
Не забываем после всех этих изменений обновить или почистить кеш модификаторов. Если Все было сделано верно, то результат должен быть примерно такой:
Оставить комментарий