Перейти к содержанию
Официальный форум поддержки Simpla

Обновление курса валют по курсу нац. банка, обновление цен


Перейти к решению Решено Kasha,

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

Может, кому надо будет такое решение..

На днях реализовал для заказчика такую задачу. У него в 1С товары заведены в евро, гривнах и долларах. А продает в гривнах. Написал скрипт, который каждую ночь берет официальные курсы валют, берет все цены из 1С и пересчитывает по обновленному курсу + % за конвертацию. И еще обновляет в курсы валют в админке.
Каждое утро на сайте цены корректируются по изменению курса валют. Сейчас, когда в евро есть нестабильность, это актуально.

Если кому нужна будет такая схема - обращайтесь.

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

Может, кому надо будет такое решение..

 

На днях реализовал для заказчика такую задачу. У него в 1С товары заведены в евро, гривнах и долларах. А продает в гривнах. Написал скрипт, который каждую ночь берет официальные курсы валют, берет все цены из 1С и пересчитывает по обновленному курсу + % за конвертацию. И еще обновляет в курсы валют в админке.

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

 

Если кому нужна будет такая схема - обращайтесь.

нужен модуль чтоб по курсу доллара ЦБ банка России плясать)напишите мне

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

Смысл создавать тему в готовых решениях ? 

Если вы не хотите делится с остальными, а хотите заняться Фрилансом... создайте тему в "Платные модули и услуги"

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

нужен модуль чтоб по курсу доллара ЦБ банка России плясать)напишите мне

 

Реализовывал такой модуль, он весьма прост, и по сути никак не связан с симплой. ЦБ отдает каждый день инфу в xml, дальше кроном просто тырим эту инфу и вносим в базу в текущую валюту, и у всё :) делов на 20 минут ;)

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

Реализовывал такой модуль, он весьма прост, и по сути никак не связан с симплой. ЦБ отдает каждый день инфу в xml, дальше кроном просто тырим эту инфу и вносим в базу в текущую валюту, и у всё :) делов на 20 минут ;)

Покажешь мастер класс ?

Ссылка на сообщение
Поделиться на другие сайты
  • Решение
<?php

class ExchangeRatesCBRF
{
	var $rates;
	function __construct($date = null)
	//В PHP версии ниже 5 это метод объекта следует переименовать в ExchangeRatesCBRF
	{
		$client = new SoapClient("http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL"); 
		if (!isset($date)) $date = date("Y-m-d"); 
		$curs = $client->GetCursOnDate(array("On_date" => $date));
		$this->rates = new SimpleXMLElement($curs->GetCursOnDateResult->any);
	}

	function GetRate ($code)
	{
	//Этот метод получает в качестве параметра цифровой или буквенный код валюты и возвращает ее курс
		$code1 = (int)$code;
		if ($code1!=0) 
		{
			$result = $this->rates->xpath('ValuteData/ValuteCursOnDate/Vcode[.='.$code.']/parent::*');
		}
		else
		{
			$result = $this->rates->xpath('ValuteData/ValuteCursOnDate/VchCode[.="'.$code.'"]/parent::*');
		}
		if (!$result)
		{
			return false; 
		}
		else 
		{
			$vc = (float)$result[0]->Vcurs;
			$vn = (int)$result[0]->Vnom;
			return ($vc/$vn);
		}

	}
}
//Тут небольшой пример того как использовать этот класс для получения курса на текущую дату
	$rates = new ExchangeRatesCBRF();
	$usd = $rates->GetRate("USD");
        echo "Курс доллара на сегодня: " . $usd;
?>

Дальше догадаешься как сделать?

Вызов курса для записи в переменную, запись из переменной в базу, всё это обернуть и в крон... Ну в общем сами знаете ;)

 

Заменив переменную можно получить курс любой пары от ЦБ

$usd = $rates->GetRate("USD");
Ссылка на сообщение
Поделиться на другие сайты
  • 3 месяца спустя...

 

<?php

class ExchangeRatesCBRF
{
	var $rates;
	function __construct($date = null)
	//В PHP версии ниже 5 это метод объекта следует переименовать в ExchangeRatesCBRF
	{
		$client = new SoapClient("http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL"); 
		if (!isset($date)) $date = date("Y-m-d"); 
		$curs = $client->GetCursOnDate(array("On_date" => $date));
		$this->rates = new SimpleXMLElement($curs->GetCursOnDateResult->any);
	}

	function GetRate ($code)
	{
	//Этот метод получает в качестве параметра цифровой или буквенный код валюты и возвращает ее курс
		$code1 = (int)$code;
		if ($code1!=0) 
		{
			$result = $this->rates->xpath('ValuteData/ValuteCursOnDate/Vcode[.='.$code.']/parent::*');
		}
		else
		{
			$result = $this->rates->xpath('ValuteData/ValuteCursOnDate/VchCode[.="'.$code.'"]/parent::*');
		}
		if (!$result)
		{
			return false; 
		}
		else 
		{
			$vc = (float)$result[0]->Vcurs;
			$vn = (int)$result[0]->Vnom;
			return ($vc/$vn);
		}

	}
}
//Тут небольшой пример того как использовать этот класс для получения курса на текущую дату
	$rates = new ExchangeRatesCBRF();
	$usd = $rates->GetRate("USD");
        echo "Курс доллара на сегодня: " . $uds;
?>

Дальше догадаешься как сделать?

Вызов курса для записи в переменную, запись из переменной в базу, всё это обернуть и в крон... Ну в общем сами знаете ;)

 

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

а не проще через крон установить, чтоб курс доллара обновлялся хотя бы раз в день например в 00 01 каждого дня 01 00 * * *

Вот те и пляски под ЦБ, тока беда что клиент сделал заказ по одной цене, завтра оплатит по другой

Ссылка на сообщение
Поделиться на другие сайты
  • 8 месяцев спустя...

Sheeft, спасибо, пригодилось.

Только в конце кода маленькую ошибочку исправить бы - в последних строках переменная пишется по-разному - $usd и $uds.

Ссылка на сообщение
Поделиться на другие сайты
  • 6 месяцев спустя...

А можно поподробнее про данную доработку?

С php не очень дружу, а хотелось бы вставить данную доработку в симплу

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

Кто сделает мануал для новичков, за символическую плату?

Откровенно говоря, программисты никаких мануалов не пишут, и все же если вы его получите не надейтесь на 100% работоспособность (конечно же если у вас руки прямые, а не растут из пятой точки).
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

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

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

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

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

Загрузка...
×
×
  • Создать...