Перейти к содержанию
system

Автообновление курса валют с другого сайта.

Рекомендуемые сообщения

Здравствуйте.

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

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Краткий план действий:

0. Подготовить свободное время от месяца до всей жизни в зависимости от склада ума для реализации задуманного;

1. Выучить язык программирования PHP;

2. Выучить шаблон проектирования MVC;

3. Выучить архитектуру OpenCart (одновременно осознав, что пункт два поможет в этом, но не очень);

4. Выучить базовые принципы парсинга;

5. Написать собственное дополнение с желаемым функционалом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Краткий план действий:

0. Подготовить свободное время от месяца до всей жизни в зависимости от склада ума для реализации задуманного;

1. Выучить язык программирования PHP;

2. Выучить шаблон проектирования MVC;

3. Выучить архитектуру OpenCart (одновременно осознав, что пункт два поможет в этом, но не очень);

4. Выучить базовые принципы парсинга;

5. Написать собственное дополнение с желаемым функционалом.

:-D маааленькая инструкция..

CODEONETEAM, а сейчас валюты с какого сайта обновляются? :oops:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Yahoo Finance, но благодаря ikarus теперь есть возможность обновления курсов валют с ЦБРФ.

 

пасибочки.. поставила мод от ikarus  :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Краткий план действий:

0. Подготовить свободное время от месяца до всей жизни в зависимости от склада ума для реализации задуманного;

1. Выучить язык программирования PHP;

2. Выучить шаблон проектирования MVC;

3. Выучить архитектуру OpenCart (одновременно осознав, что пункт два поможет в этом, но не очень);

4. Выучить базовые принципы парсинга;

5. Написать собственное дополнение с желаемым функционалом.

М-да-а-а...

Не просто оказывается, но спасибо за ответ, спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это всё хорошо, но что делать, если курс не подходит? Допустим у меня цена в евро. Выводится в грн или руб, не суть.

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

Я перепробовал много вариантов. 

Парсинг с приватбанка https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=5

модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=17778&filter_search=currency&filter_license=0

Парсер http://blog.spy-reality.in.ua/avtomaticheskoe-obnovlenie-valyut-opencart.html

Модуль для ЦБРФ.

Переделывал стандартный файл валют под http://bank-ua.com/export/currrate.xml

И не могу найти себе место уже..

Если ставить % наценки на курс, то в зависимости от колебаний % тоже будет разный. а 1% на 400 евро это уже разница дай Бог для кого-то.

И что делать? Вот есть курс например, 1 евро - 18,2 грн.  А мне надо 18,7. Завтра будет 18,35 , а мне надо 19, 

Что делать?

Изменено пользователем Keyser

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если ставить % наценки на курс, то в зависимости от колебаний % тоже будет разный. а 1% на 400 евро это уже разница дай Бог для кого-то.

А что мешает сделать наценку на курс фиксированной, а не в процентном выражении?

 

И что делать? Вот есть курс например, 1 евро - 18,2 грн. А мне надо 18,7. Завтра будет 18,35 , а мне надо 19

Судя по данной формулировке к текущему курсу евро нужно добавлять ~0,5 - 0,65.

P.S. Уже обсуждалась задача.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что мешает сделать наценку на курс фиксированной, а не в процентном выражении?

 

Судя по данной формулировке к текущему курсу евро нужно добавлять ~0,5 - 0,65.

P.S. Уже обсуждалась задача.

 

Уважаемый, смотрите, я лично в пхп не силён, делаю методом тыка и логики  :ugeek:

 

У меня есть такой скрипт - 

<?php
/** 
* @Author Spy-Reality
* Парсер керса валют с ПРИВАТ 24 в OPENCART

*/


// Подключение к БД
include 'config.php';
$dbhost = DB_HOSTNAME;
$dbuser = DB_USERNAME;
$dbpass = DB_PASSWORD;
$dbname = DB_DATABASE;
$sqlchar='utf8';
 
 
$db = new PDO ( 'mysql:host=' . $dbhost . ';dbname=' . $dbname, $dbuser, $dbpass);
$db->query ( 'SET character_set_connection = '.$sqlchar );
$db->query ( 'SET character_set_client = '.$sqlchar );
$db->query ( 'SET character_set_results = '.$sqlchar );

$default=$db->query("SELECT code FROM " . DB_PREFIX . "currency WHERE value='1.00000000'")->fetch(PDO::FETCH_ASSOC);

if($default['code']== 'UAH'){
    $xml = simplexml_load_file('https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=4');
    
    $price=1; // одна гривна;

	$eur=$xml->row[7]->exchangerate;
	$eur=(array)$eur;
	$codEUR=$eur['@attributes']['ccy'];
	$valEUR=$eur['@attributes']['sale'];
	$conEUR=$price/$valEUR;  // Корвентация в евро;
	
	$usd=$xml->row[4]->exchangerate;
	$usd=(array)$usd;
	$codUSD=$usd['@attributes']['ccy'];
	$valUSD=$usd['@attributes']['sale'];
	$conUSD=$price/$valUSD;  // Конвертация в доллар;
	
	$rub=$xml->row[6]->exchangerate;
	$rub=(array)$rub;
	$codRUB=$rub['@attributes']['ccy'];
	$valRUB=$rub['@attributes']['sale'];
	$conRUB=$price/$valRUB;  // Конвертация в рубль;
	
	$pln=$xml->row[0]->exchangerate;
	$pln=(array)$pln;
	$codPLN=$pln['@attributes']['ccy'];
	$valPLN=$pln['@attributes']['sale'];
	$conPLN=$price/$valPLN;  // Корвентация в злотый;
	
	
date_default_timezone_set('Europe/Kiev');
$date=date('Y-m-d H:i:s');

$stmt = $db->query("SELECT code FROM " . DB_PREFIX . "currency");
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
//echo $row['code'] ;
switch ($row['code']){
case 'UAH':
		 $db->exec("UPDATE " . DB_PREFIX . "currency SET value = '1.00000000', date_modified = '" .  $date . "' WHERE code = 'UAH'");
         break;
case $codEUR:
if($valEUR==true){
		 $db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($conEUR, 8, '.', '') . "', date_modified = '" .  $date . "' WHERE code = '" . $codEUR . "'");
		 }else{
		 echo "Валюта EUR не обновлена (нет курса)<br>";
		 }
         break;
case $codRUB:
if($valRUB==true){
         $db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($conRUB, 8, '.', '') . "', date_modified = '" .  $date . "' WHERE code = '" . $codRUB . "'");
		 }else{
		 echo "Валюта RUB не обновлена (нет курса)<br>";
		 }
         break;
case $codUSD:
if($valUSD==true){
         $db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($conUSD, 8, '.', '') . "', date_modified = '" .  $date . "' WHERE code = '" . $codUSD . "'");
		 }else{
		 echo "Валюта USD не обновлена (нет курса)<br>";
		 }
         break;
case $codPLN:
if($valPLN==true){
         $db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($conEUR, 8, '.', '') . "', date_modified = '" . $date . "' WHERE code = '" . $codEUR . "'");
		 }else{
		 echo "Валюта PLN не обновлена (нет курса)<br>";
		 }
         break; 
            }
			
        }
		$defaultd=$db->query("SELECT date_modified FROM " . DB_PREFIX . "currency WHERE code='UAH'")->fetch(PDO::FETCH_ASSOC);
		echo 'Курс обновился в ('.$defaultd['date_modified'].')';

}elseif($default['code']== 'USD'){

	$xml = simplexml_load_file('https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=4');
	
	$usd=$xml->row[4]->exchangerate;
	$usd=(array)$usd;
	$codUSD=$usd['@attributes']['base_ccy'];
	$valUSD=$usd['@attributes']['sale'];
	$conUSD=$valUSD;  // Конвертация в доллар;
	
	
date_default_timezone_set('Europe/Kiev');
$date=date('Y-m-d H:i:s');

$stmt = $db->query("SELECT code FROM " . DB_PREFIX . "currency");
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
switch ($row['code']){
case 'USD':
		 $db->exec("UPDATE " . DB_PREFIX . "currency SET value = '1.00000000', date_modified = '" .  $date . "' WHERE code = 'USD'");
         break;
case $codUSD:
if($valUSD==true){
         $db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($conUSD, 8, '.', '') . "', date_modified = '" .  $date . "' WHERE code = '" . $codUSD . "'");
		 }else{
		 echo "Валюта UAH не обновлена (нет курса)<br>";
		 }
         break;
		 }
		 }
		$defaultd=$db->query("SELECT date_modified FROM " . DB_PREFIX . "currency WHERE code='USD'")->fetch(PDO::FETCH_ASSOC);
		echo 'Курс обновился в ('.$defaultd['date_modified'].')';

}elseif($default['code']== 'EUR'){

	$xml = simplexml_load_file('https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=4');
	
	$eur=$xml->row[7]->exchangerate;
	$eur=(array)$eur;
	$codEUR=$eur['@attributes']['base_ccy'];
	$valEUR=$eur['@attributes']['sale'];
	$conEUR=$valEUR;  // Конвертация в доллар;
	
date_default_timezone_set('Europe/Kiev');
$date=date('Y-m-d H:i:s');

$stmt = $db->query("SELECT code FROM " . DB_PREFIX . "currency");

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
		
switch ($row['code']){

case 'EUR':
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '1.00000000', date_modified = '" .  $date . "' WHERE code = 'EUR'");
break;
case $codEUR:

if($valEUR==true){
         $db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($conEUR, 8, '.', '') . "', date_modified = '" .  $date . "' WHERE code = '" . $codEUR . "'");
		 }else{
		 echo "Валюта UAH не обновлена (нет курса)<br>";
		 }
		 
         break;
		 }

		 }
		 
		$defaultd=$db->query("SELECT date_modified FROM " . DB_PREFIX . "currency WHERE code='EUR'")->fetch(PDO::FETCH_ASSOC);
		echo 'Курс обновился в ('.$defaultd['date_modified'].')';
		
		}else{
		echo 'Курс не обновился!';
		}
		
?>

 

Валюта у товара в евро, в настройках указана евро по дефолту. На витрину выводится Грн (system\library\currency.php смена $this->set($this->config->get('config_currency'));     на $this->set('UAH') ;)

Как мне сюда добавить наценку? Сейчас курс 18,20, а я хочу 18,7

Изменено пользователем Keyser

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Join the conversation

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

Гость
Вы комментируете как гость. Если у вас есть аккаунт, пожалуйста, войдите
Ответить в этой теме...

×   Вы вставили контент с форматированием.   Удалить форматирование

  Разрешено использовать не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

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

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Похожий контент

    • От Evopixel
      Всем привет!
      Необходимо убрать два поля со страницы возврата товара и удалить проверку на обязательное их заполнение.
      1-ое поле модель
      2-е поле распакован да/нет
      Чтобы просто убрать их со страницы нашел файл /catalog/view/theme/tema/template/account/return_form.tpl убрал со страницы, но возврат не оформляется, т.к. по прежнему идет проверка на их заполнение.
      Нашел файл /catalog/controller/account/return.php в нем строку 570-572
              if ((utf8_strlen($this->request->post['model']) < 1) || (utf8_strlen($this->request->post['model']) > 64)) {
                  $this->error['model'] = $this->language->get('error_model');
              }
      При ее удалении возникает ошибка при оформлении возврата.
      Подскажите пожалуйста как победить данную задачку.
    • От alex62
      Как можно сделать так, чтобы при копировании информации автоматически добавлялась ссылка на сайт.
      Запрещать копирование с сайта я не хочу.
    • От dubok1195
      300.00 руб
      Скачать/Купить дополнение


      Category Tabs
      The Category Tabs module displays carousel products from a selected category. It is possible to set the first item of slide(the text, a picture and also a button for visit to a category page are added in the settings).
       
      Module using the owl carousel plugin. Open source code. The module does not require the replacement of files. Module include russian and english localisation  
      For quick contact with the developer, write to Skype dubok1195
      Thank you for your choice!
      Regards Glove
       
      Модуль Category Tabs отображает карусель товаров из выбраной категрии. Есть возможность указать первым елементом слайда - добавленый в настройках текст, картинку а также кнопку для перехода в категорию.
       
      Используеться плагин owl carousel. Открытий код. Модуль не требует замены файлов. Модуль включает русскую и английскую локализацию.
        Для быстрого контакта с разработчиком пишите в скайп dubok1195
      Спасибо за Ваш выбор!
      С уважением Glove
      Добавил dubok1195 Добавлено 21.03.2019 Категория Слайдшоу, баннеры, галереи Системные требования Сайт разработчика https://glove.com.ua/ Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.1 ocStore Несовместим OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет  
    • От dubok1195
      The Category Tabs module displays carousel products from a selected category. It is possible to set the first item of slide(the text, a picture and also a button for visit to a category page are added in the settings).
       
      Module using the owl carousel plugin. Open source code. The module does not require the replacement of files. Module include russian and english localisation  
      For quick contact with the developer, write to Skype dubok1195
      Thank you for your choice!
      Regards Glove
       
      Модуль Category Tabs отображает карусель товаров из выбраной категрии. Есть возможность указать первым елементом слайда - добавленый в настройках текст, картинку а также кнопку для перехода в категорию.
       
      Используеться плагин owl carousel. Открытий код. Модуль не требует замены файлов. Модуль включает русскую и английскую локализацию.
        Для быстрого контакта с разработчиком пишите в скайп dubok1195
      Спасибо за Ваш выбор!
      С уважением Glove
    • От Priest83
      Народ, возможно кто то сталкивался. На данный момент Google pay вроде как предлагает размещение кнопки оплаты через него на сайте, а так же уведомление для физических точек что "Здесь можно расплатиться Google pay". Попытался порыться в сети, но очень все размыто, даже на сайте google pay. Возможно кто то сталкивался уже с двумя вопросами.
      1. Добавление способа оплаты google pay
      2/ Размещение метки на карте google pay "Здесь можно расплатиться с помощью google pay"
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.