Linhunt Posted September 11, 2012 Share Posted September 11, 2012 Всем привет! Необходимо решить задачу с ценами на доставку, мучаюсь уже несколько часов, никак не получается. Надеюсь на вашу помощь) Итак, имеется магазин в котором цена по умолчанию - доллары, а во фронтенде все это переводится в рубли по курсу. Стоимость доставки же, необходимо сделать в рублях, например 300р. Сейчас пока поставил доставку в 10$, стало соответственно 318р. Как, и можно ли это реализовать? Пробовал править файлы в админке, например AdminShipping.php, заменяя там строку $currency = new Currency(_PS_CURRENCY_DEFAULT_); на $currency = new Currency('4'); В результате в админке теперь пишет рубли, но на деле выходит все в долларах. Link to comment Share on other sites More sharing options...
Linhunt Posted September 13, 2012 Author Share Posted September 13, 2012 Ни у кого никаких идей нет на этот счет? Link to comment Share on other sites More sharing options...
Cvalya Posted September 28, 2012 Share Posted September 28, 2012 Тоже нуждаюсь в подобном!) Еще не проявилось решение? Link to comment Share on other sites More sharing options...
Linhunt Posted October 6, 2012 Author Share Posted October 6, 2012 Появилось. Сделал скрипт, который раз в день лезет на сайт ЦБ, обновляет курсы валют и корректирует стоимость доставки в долларах так, чтобы на сайте выходило ровно 300 рублей. Работает уже около месяца, всем доволен. Если нужно, могу подробней рассказать. 1 Link to comment Share on other sites More sharing options...
Cvalya Posted January 4, 2013 Share Posted January 4, 2013 Если нужно, могу подробней рассказать. Да, было бы полезно! Link to comment Share on other sites More sharing options...
xcandlelight Posted January 24, 2013 Share Posted January 24, 2013 Если нужно, могу подробней рассказать. Присоединяюсь, расскажите пожалуйста, ооочень актуально!!! И еще если не трудно - как вы сделали чтобы во фронт-офисе отображались цены в рублях?? Link to comment Share on other sites More sharing options...
Linhunt Posted January 24, 2013 Author Share Posted January 24, 2013 Да, было бы полезно! Извиняюсь, некогда было сразу ответить, а потом забыл. Исправляюсь) Присоединяюсь, расскажите пожалуйста, ооочень актуально!!! Создаем файл с таким содержанием <?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.'); } else { $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 ($currency->iso_code == 'RUB'){ $currency->conversion_rate=$rates[uSD]; $currency->update(); echo('Курсы валют успешно обновлены.'); } } $deliveryMoscow = 300/$rates[uSD]; //Стоимость доставки по Москве 300р. $deliveryMO = 400/$rates[uSD]; //Стоимость доставки по МО 400р. Db::getInstance()->Execute(' UPDATE `'._DB_PREFIX_.'delivery` SET `price` = '.$deliveryMoscow.' WHERE `id_carrier` = 4'); Db::getInstance()->Execute(' UPDATE `'._DB_PREFIX_.'delivery` SET `price` = '.$deliveryMO.' WHERE `id_carrier` = 5'); // 4 и 5 - id способов доставки } Сохраняем его в любую директорию сайта, например в корень (а лучше в свою папку admin или еще куда нибудь подальше), под именем update_rates.php. Теперь он доступен по ссылке http://site.ru/update_rates.php, по переходу на которую на сайте обновится курс рубля по отношению к доллару, а так же цена за доставку подстроится под новый курс. Лично я, настроил на сервере планировщик Cron который запускает этот скрипт каждую ночь. И еще если не трудно - как вы сделали чтобы во фронт-офисе отображались цены в рублях?? Для этого нужно править функцию setCurrency. Находится она в classes/Tools.php Находим строку $currency = Currency::getCurrencyInstance((int)_PS_CURRENCY_DEFAULT_); и меняем на $currency = Currency::getCurrencyInstance('4'); , где 4 - id валюты. Все это производилось на Prestashop версии 1.4.9.0 но и на других версиях должно работать. Если есть вопросы, задавайте. 1 Link to comment Share on other sites More sharing options...
xcandlelight Posted January 24, 2013 Share Posted January 24, 2013 Спасибо огромное!!!!!! все работает, вы гений!!!)) надо изучать php >_< Заодно решился вопрос с тем, чтобы преста брала курс с ЦБРФ. Я так понимаю переводить доставку будет только для тех способов доставки, которые прописаны в файле php. Мега удобно, когда товар в наличии и цена доставки курьером фиксированная в RUB, а предзаказ доставляется за USD. Еще раз спасибо. Link to comment Share on other sites More sharing options...
Linhunt Posted January 24, 2013 Author Share Posted January 24, 2013 Спасибо огромное!!!!!! все работает, вы гений!!!)) надо изучать php >_< Заодно решился вопрос с тем, чтобы преста брала курс с ЦБРФ. Я так понимаю переводить доставку будет только для тех способов доставки, которые прописаны в файле php. Мега удобно, когда товар в наличии и цена доставки курьером фиксированная в RUB, а предзаказ доставляется за USD. Еще раз спасибо. Да незачто) Вы правы, переводить будет только те способы, что в файле. Соответственно, если нужно будет добавить еще один способ доставки, то добавляете его в этот файл. Link to comment Share on other sites More sharing options...
xcandlelight Posted January 27, 2013 Share Posted January 27, 2013 нужно править функцию setCurrency. ... Если есть вопросы, задавайте. Появился небольшой вопрос... А у вас при этом цены в корзине нормально отображаются, если указать кол-во товара >1? У меня установлено доллары округлять до 2 цифр после зпт, рубли до целых. Получается, копейки он не показывает, но учитывает (см.скрин)? Link to comment Share on other sites More sharing options...
Linhunt Posted January 27, 2013 Author Share Posted January 27, 2013 Появился небольшой вопрос... А у вас при этом цены в корзине нормально отображаются, если указать кол-во товара >1? У меня установлено доллары округлять до 2 цифр после зпт, рубли до целых. Получается, копейки он не показывает, но учитывает (см.скрин)? Я думаю что эти ошибки связаны не с этой функцией, а с механизмом округления этих самых копеек. Вот смотрите, допустим у вас товар стоит 150,40р. соответственно преста при показе на сайте округляет эту цену до 150р. При покупке 2-х товаров стоимость становится 300,80р. и округляется по правилам до 301р. Мне кажется, если поменять в настройках метод округления на большую или меньшую сторону, это может помочь. PS. Можете скинуть в личку ваш сайт? Link to comment Share on other sites More sharing options...
xcandlelight Posted January 27, 2013 Share Posted January 27, 2013 ответила! Link to comment Share on other sites More sharing options...
Genadiy Posted November 7, 2014 Share Posted November 7, 2014 Появилось. Сделал скрипт, который раз в день лезет на сайт ЦБ, обновляет курсы валют и корректирует стоимость доставки в долларах так, чтобы на сайте выходило ровно 300 рублей. Работает уже около месяца, всем доволен. Если нужно, могу подробней рассказать. Добрый день, помогите пожалуйста! Для меня очень актуальна проблема автоматической корректировки цены товара по курсу к доллару. Цена на прямую зависит от курса доллара. Т.е. если стоимость товара 100 долларов я пересчитываю в ручную и ставлю цену, но учитывая что сейчас курс не стабильный и в течении 1 недели курс доллара меняется 2-3 раза, в ручную переписывать более 200 единиц товара очень проблематично. Подскажите где можно приобрести модуль в который можно вписать местную валюту и курс доллара, который можно менять когда нужно. Готов принять любую реальную помощь, благодарность будет реальная. Link to comment Share on other sites More sharing options...
Genadiy Posted November 7, 2014 Share Posted November 7, 2014 (edited) Как ни пытался сам найти ничего не могу Edited November 7, 2014 by Genadiy (see edit history) Link to comment Share on other sites More sharing options...
gluck Posted November 14, 2014 Share Posted November 14, 2014 Установите Default Currency в доллары. Забейте все цены в долларах. Установите модуль "Блок валют", он идет из коробки. Таким образом посетитель при заходе на сайт впервые будет видеть все цены в долларах, но сможет переключить их в любую валюту кнопкой. Если вы принимаете оплату только в рублях, можно попробовать установить ограничение валют для каждого модуля оплаты. Это есть во вкладке "Платежи" в админке, но в моей версии это работает криво. Я переключаю валюту насильно в рубли, когда посетитель оформляет заказ, этот способ работает корректно. Далее ищете скрипт, который по крону будет ходить на cbr.ru (или куда скажете) и обновлять курсы регулярно. Вживляете его в магазин и забываете об этой проблеме. Link to comment Share on other sites More sharing options...
Recommended Posts