Найважливіші характеристики та функціональні можливості модуля
- Дані з API Національного банку Польщі: отримання таблиць курсів через HTTPS, з контролем коректності відповіді та дат публікації.
- Чотири варіанти джерела курсів: таблиця A, об’єднані таблиці A і B, курс купівлі з таблиці C або курс продажу з таблиці C.
- Вибір валют, що підлягають оновленню: зазначення наявних, активних іноземних валют, пов’язаних із вибраним магазином у PrestaShop.
- Ціновий буфер для кожної валюти: окреме відсоткове значення від 0 до 50%, яке враховується під час обчислення курсу магазину.
- Підтримка різних базових валют: перерахунок через референтні значення в PLN, якщо базова валюта та вибрані валюти доступні у використовуваному джерелі.
- Попередній перегляд перед ручним підтвердженням: порівняння поточного курсу із запропонованим, відсоткової різниці, дати й номера таблиці NBP, а також перерахунку 100 одиниць базової валюти.
- Дійсність попереднього перегляду протягом 10 хвилин: підтвердження працівником, який його створив, після повторної перевірки курсів, налаштувань і базової валюти.
- Максимально допустима зміна курсу: перевищення встановленого порога однією з вибраних валют блокує збереження всього пакета.
- Пропуск незначних змін: поріг мінімальної зміни від 0 до 5%, що дозволяє залишити курс без збереження за менших відмінностей.
- Контроль віку публікації: ліміт від 1 до 30 календарних днів, який враховує дати даних, використаних для перерахунку.
- Спільне збереження курсів та історії: транзакція бази даних і блокування операцій цього модуля для конкретного магазину зменшують ризик часткового збереження та паралельних оновлень.
- Історія з доступом до деталей: дата операції, ручний режим або CRON, статус, причина зафіксованого блокування чи помилки, а також деталі створеного попереднього перегляду або зміни.
- Відновлення попередніх курсів: скасування збереженого оновлення доступне, якщо охоплені ним курси й надалі відповідають результату цієї операції.
- Автоматизація через CRON: приватна адреса для магазину, мінімальний інтервал між спробами від 15 до 1440 хвилин і можливість зміни ключа доступу.
- Симуляція автоматичного завдання: параметр
dry_run=1перевіряє план оновлення без зміни курсів магазину. - Оновлення підмножини валют через CRON: параметр
currenciesобмежує виклик зазначеними валютами серед раніше ввімкнених у модулі. - Інформація про перерахунок для клієнта: необов’язкове повідомлення на сторінці товару та в кошику показує фактичний курс магазину для вибраної іноземної валюти.
- Налаштування окремо для магазинів: у multistore налаштування, історія, ключ CRON і записи курсів стосуються конкретного магазину.
- Панель із шістьма вкладками: Огляд, Валюти, Налаштування, Автоматизація, Історія та Допомога впорядковують конфігурацію й керування оновленнями.
- Період зберігання історії: налаштування від 7 до 365 днів, з очищенням старіших записів після коректно оброблених оновлень CRON; симуляція не запускає очищення.
Які курси NBP можна використати в магазині?
| Джерело | Тип даних | Застосування в модулі |
|---|---|---|
| Таблиця A | Середні курси | Перерахунок валют, доступних у таблиці A. |
| Таблиці A і B | Середні курси з обох таблиць | Урахування також валют, опублікованих у таблиці B, з контролем дат обох джерел. |
| Таблиця C — купівля | Курси купівлі | Обчислення курсів магазину на основі значень купівлі з таблиці C. |
| Таблиця C — продаж | Курси продажу | Обчислення курсів магазину на основі значень продажу з таблиці C. |
Вибране джерело має містити базову валюту магазину та валюти, що оновлюються. PLN є референтним значенням зі значенням 1. Таблиці A і B можуть мати різні дати публікації, тому модуль перевіряє вік даних, потрібних для конкретного перерахунку.
Як працює перерахунок курсів і ціновий буфер?
PrestaShop зберігає кількість одиниць цільової валюти, що припадає на одну одиницю базової валюти магазину. Модуль обчислює цей курс як: значення базової валюти в PLN ÷ значення цільової валюти в PLN × (1 + відсотковий буфер ÷ 100). Результат зберігається з точністю до шести знаків після коми.
Приклад: якщо PLN є базовою валютою, а котирування становить 1 EUR = 4 PLN, курс магазину дорівнює 0,25 EUR за 1 PLN. Буфер 2% підвищує його до 0,255, тож сума 100 PLN, перерахована за цим курсом, дає 25,50 EUR. Буфер впливає на стандартний перерахунок цін, але не є банківською комісією чи гарантією маржі.
Що отримує персонал магазину?
- Менше ручного переписування курсів: дані надходять із вибраного джерела NBP, а після додавання розкладу оновлення може виконувати CRON.
- Контроль перед зміною цін в іноземних валютах: попередній перегляд дозволяє оцінити запропонований перерахунок, а буфери та пороги змін — налаштувати відповідно до правил магазину.
- Доступ до попередніх значень: деталі збереженого оновлення полегшують перевірку різниці та, за потреби, відновлення курсів.
- Окреме керування multistore: можна застосовувати різні джерела, буфери та правила автоматизації для окремих магазинів.
Яку інформацію отримує клієнт?
Після ввімкнення повідомлення клієнт, який користується іноземною валютою, може побачити на сторінці товару та в кошику перерахунок у вигляді «1 одиниця базової валюти = курс у валюті клієнта». Повідомлення також інформує, що ціни використовують курс магазину, який може містити ціновий буфер. Час збереженого оновлення та дата публікації NBP з’являються, коли запис із прочитаної останньої історії відповідає поточній базовій валюті та курсу клієнта; після відновлення курсів нова дата NBP не додається.
Повідомлення приховане для базової валюти, і його можна вимкнути в налаштуваннях. Відображення вимагає, щоб тема надавала підтримувані місця на сторінці товару та в кошику. Під час відображення цих сторінок модуль зчитує збережений курс магазину без отримання таблиць NBP.
Як запустити оновлення курсів NBP у PrestaShop?
- Виберіть магазин, а на вкладці Валюти позначте активні іноземні валюти та встановіть для них буфери.
- У Налаштуваннях виберіть джерело NBP, максимальну й мінімальну зміну курсу та допустимий вік публікації.
- Отримайте попередній перегляд в Огляді та порівняйте запропоновані значення. Сам попередній перегляд не змінює курсів.
- Підтвердьте коректний попередній перегляд і перевірте результат в історії.
- Якщо вам потрібна автоматизація, увімкніть її на вкладці Автоматизація та додайте на сервері завдання, яке викликає згенеровану адресу CRON. Доступна симуляція дозволяє заздалегідь перевірити результат без збереження курсів.
Умови роботи та обсяг оновлення
Модуль призначений для PrestaShop 1.7.x, 8.x і 9.x. Потрібна версія PHP, що підтримується відповідним випуском магазину, розширення cURL, коректна підтримка сертифікатів HTTPS і доступ сервера до API NBP. Таблиці, що зберігають курси валют магазину та історію модуля, мають використовувати рушій InnoDB. Базова валюта має бути активною та мати курс, що дорівнює 1; модуль не змінює її на іншу.
Оновлюються курси валют конкретного магазину, а не записи цін товарів чи попередні замовлення. Спеціальні ціни, фіксовані суми в іноземних валютах, купони та округлення зберігають нативну роботу PrestaShop. В одному магазині слід використовувати один механізм автоматичного оновлення курсів.
Установлення не змінює поточних курсів і залишає CRON вимкненим. Типовий буфер становить 0%, максимальна зміна — 10%, мінімальна зміна — 0,05%, допустимий вік публікації — 10 днів, мінімальний інтервал автоматичних спроб — 60 хвилин, а період історії — 90 днів. Відновлення вимагає наявного запису в історії, курсів, що й надалі збігаються, і тієї самої базової валюти; воно не призначене для перезапису пізніших змін.