Автор Тема: Проблема с обновлением валюты  (Прочитано 67 раз)

11 Октября 2016, 16:57:42
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день, товарищи!
Прошу помощи в следующем вопросе.
В настройках стоит основная валюта рубли и несколько альтернативных валют.
Цена продажи товара выставлена в рублях и конвертируется в валюты исходя из коэффициента. Обновление коэффициента происходит через сайт центрального банка рф.

НО есть проблема. Цена на новые товары конвертируется верно! А на старые нет!!!!
Старые товары используют тот коэффициент, который был установлен на момент их создания. При изменении коэффициента в ручном режиме цена на старые товары изменяется, но опять же показывается с искажением. Создаю новый товар с такой же ценой как и старый (в рублях), в валюте показывает разные значения.
Как быть? где искать?
11 Октября 2016, 17:09:36
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1190
  • Репутация: +28/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Цены на товары храняться в основной валюте сайта и перерасчитываются при обновлении валюты.
Это не касается заказов. В них цены не менются, остаются старые.
11 Октября 2016, 17:12:20
Ответ #2
  • Ветеран
  • *****
  • Сообщений: 20836
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Цены не "перерасчитываются при обновлении валюты". Меняется только курс.

Зайдите в Локализация -> Валюта нажмите кнопку обновить вылюты. Кеш очистите. После этого все цены у товаров на сайте будут показанны с учетом нового курса.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
11 Октября 2016, 17:15:32
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 1190
  • Репутация: +28/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Цены не "перерасчитываются при обновлении валюты". Менятся только курс
Я имел в виду, что меняются на сайте при смене валюты.
У товаров меняются, в сделанных заказах нет.
11 Октября 2016, 17:27:48
Ответ #4
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цены не "перерасчитываются при обновлении валюты". Меняется только курс.

Зайдите в Локализация -> Валюта нажмите кнопку обновить вылюты. Кеш очистите. После этого все цены у товаров на сайте будут показанны с учетом нового курса.

Это все понятно, что пересчитывается только курс. В том и проблема, что старые товары пересчитывают цену в валюте по старому курсу. Новые товары пересчитывают валютную цену по новому курсу. А мне надо чтобы все товары пересчитывали цену в валюте по текущему курсу. При нажатии кнопки "обновить вылюты" обновляется также только курс обмена, причем этот курс берется откуда-то из престы. Я поставил чтобы курс брался из банка ЦБ РФ, и он хорошо себе обновляется. но старые товары не пересчитывают цену в валюте по новому курсу. А оставляют пересчитывают по тому курсу который был на момент их создания. КЭШ чистил. не помогло
11 Октября 2016, 17:30:07
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 1190
  • Репутация: +28/-1
  • Сообщество PrestaShop
    • Просмотр профиля
В таблице ps_currency у вас какие валюты и курсы?
11 Октября 2016, 17:34:19
Ответ #6
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В таблице ps_currency у вас какие валюты и курсы?
где эта таблица лежит, подскажите пожалуйста =)
11 Октября 2016, 17:35:54
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 1190
  • Репутация: +28/-1
  • Сообщество PrestaShop
    • Просмотр профиля
На хостинге в базе данных сайта.
11 Октября 2016, 17:45:21
Ответ #8
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
На хостинге в базе данных сайта.
там указаны все текущие валюты с текущими (правильными) курсами.
Вообще в базе путаница есть два файла currency ( у одного префикс 4y у другого ps) рабочий тот, что ps. Не может быть конфликта?
11 Октября 2016, 18:16:09
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 1190
  • Репутация: +28/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Может, так как в prestashop курс берется только из этой таблицы и больше нигде не хранится.
11 Октября 2016, 18:27:42
Ответ #10
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Может, так как в prestashop курс берется только из этой таблицы и больше нигде не хранится.
удалил вообще все валюты из нерабочей таблицы. не помогло. Преста вообще обращается в базу с префиксом ps_ и вот в ней-то как раз курсы корректные. И они обновляются вместе с теми что на сайте. Так что тут все нормально. Могут старые товары к другой какой-то таблице обращаться?
11 Октября 2016, 18:51:57
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 1190
  • Репутация: +28/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Нет не могут. Курс из одной таблицы берет.
Может специальные цены старые грузить, а простые цены нет.
11 Октября 2016, 18:52:58
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 1190
  • Репутация: +28/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Модулей каких нубудь для вылют нет? Кроме стандарного блока валют.
11 Октября 2016, 19:09:11
Ответ #13
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нет не могут. Курс из одной таблицы берет.
Может специальные цены старые грузить, а простые цены нет.
Так ведь нет специальных цен! все товары имеют только цену отгрузки и все.
Вот пример:
есть старый товар стоит 28400 руб. при смене валюты показывает $365.31, получается 1$ = 77.74 руб.
При смене стоимости, система пересчитывает валютное значение соответсвенно, но курс тот же 1$ = 77.74

создаю новый товар со стоимостью 28400 руб., при смене валюты показывает $456.64, 1$= 62,19 руб. Товары стоят рядом в одной категории и т.д.
при смене стоимости этот товар тоже пересчитывается в валюте но по новому курсу.

другой момент: в локализации - валюты стоят следующие коэффициенты (они подгружаются с сайта цб рф по текущему курсу каждый час)
рубль = 1
$ = 0.016079 = 62,19 руб
€ = 0.014467 = 69,12 руб
£ = 0.013075 = 76,48 руб
все работает, на новых товарах цены тоже меняются каждый час, все хорошо!
Но на старых товарах, во-первых коэффициенты другие. Во-вторых если я вручную меняю коэффициент, то цена на них меняется не так как на новых.
К примеру:
ставлю £ = 0.1
И получаю что старый товар с ценой 28400 руб = £2272
а новый товар с ценой 28400 руб = £2840
Такое ощущение что на старых товарах стоит еще один коэффициент = 0,8, но вот где он и откуда взялся не пойму
11 Октября 2016, 19:13:10
Ответ #14
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Модулей каких нубудь для вылют нет? Кроме стандарного блока валют.
нет нету. есть файл погрузки курсов валют с сайта ЦБ РФ, находится в корне сайта. вот его содержание:
<?php
require(dirname(__FILE__).'/config/config.inc.php');
 
if (!
$feed = @simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp'))
echo Tools::displayError('Cannot parse feed.');
 
$rates=array();
foreach (
$feed->Valute as $valute) {
$rates[(string)$valute->CharCode]=(float)str_replace(',','.',$valute->Value);
}
 
$currencies Currency::getCurrencies(true);
foreach (
$currencies as $currency){
if (isset($rates[$currency->iso_code])){
$currency->conversion_rate=1/$rates[$currency->iso_code];
$currency->update();
}
}
echo(
'ok');
Еще сегодня прошло обновление нового блока отображения валют, но я не думаю что это из-за него.