Найти тему
SergeyJS

Как я валюту чинил, а прогеры из ЦБ РФ даже не помогли

Всем привет!

Кто знаком с CMS Opencart, знает, что валюта обновляется самостоятельно, если в настройках выбрать данный чек бокс. Либо вы можете обновлять ее самостоятельно, нажимая на кнопочку "обновить" внутри настроек-локализация-валюта. И вроде все в порядке. Но если вдруг вы сталкивались со сложностями обновления, а точнее автообновления, как я - то эта статья точно для вас!

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

При детальной проверке, оказалось, что как только котировки на ЦБ РФ узнаются на следующий день - наша валюта подтягивает эти обновленные данные. Другими словами, условно, 20 марта 2021 года, на 12 часов дня, валюта равна 1$ = 73 руб НО в 14.00 ЦБ РФ выкладывает на сайт изменение курса на завтра, на 21 марта 2021 года и все. Наш сайт уже формирует цену доллара от 21 марта. Условно 1$ = 74 руб Конечно страдают все.

Обновление валют в админ панели
Обновление валют в админ панели

Клиенты, так как получают не верную цену из-за поспешных изменений в валюте. Мы, так как яндекс маркет сыпет ошибки и блокирует наше размещение. Как итог - надо чинить! Подошел к делу я очень серьезно.

Функция refresh
Функция refresh

1. Нашел функцию refresh, за которую отвечает кнопка обновления валюты.

2. Понял что в этой функции лежит описание запроса у ЦБ РФ.

3. Попытался указать вызов времени в 23 часа по мск, но безуспешно

4. Выяснил что на самом деле, весь код устроен на Opencart таким образом, что автообновление валюты происходит при 2 условиях - когда мы заходим в наш.сайт/admin панель - когда мы заходим в настройки нашего магазина

5. В итоге после недельной переписки с гуру PHP разработки на кибер форуме, понял что нужно обратиться к CRON

6. Узнал что CRON помогает через ISP manager запустить некий скрипт в нужное нам время и сколько угодно раз. Но вызов всяческих php файлов не давал нужного результата (вообще ничего не давал)

7. Наткнулся на видео в ютуб про опенкарт и написал автору канала о своей проблеме

8. Автор записал 30 минутное видео о том, как решить похожую задачу

9. Я все сделал + закомментил код, который отвечает за вызов функции при входе в админ панель и в настройки (для того что бы только мы с помощью крон управляли автообновлением)

10. Настройка CRON, тест и все готово, теперь валюта обновляется раз в день. И я маркет не ругается на разницу в цене.

Над задачей я бился месяц, весь март если хотите. Да я новичок, познакомился с опенкартом и CMS + php буквально в феврале. Так как занимаюсь только JS и фронтенд разработкой. Если у кого-то будут сложности с валютой в данной CMS или с чем-то походим, пишите, помогу чем смогу, ведь теперь я еще больше понимаю в принципах MVC Задача решена, двигаемся дальше.

Еще много всего интересного и сложного впереди!

Всем денег и кайфа!