Kliknij by skopiować
License
Services and extensions
Express module installation is done on HelpDesk up to 3 working days. You can install the modules on your own - see the FAQ on HelpDesk for instructions.
This extension will allow you to configure the module independently in multiple Multistore stores. Without this extension, you will only be able to use the module in one Multistore store.
100,00 EUR VAT incl. 81,30 EUR net
81,30 EUR net
100,00 EUR VAT incl.
    325 points in the loyalty program
    Support and
    Updates With the module, you get 3 months of support, which you can extend at any time
    Instant
    Access You will get access to the module files immediately after payment
    Invoice
    VAT 0% You will receive a EU-invoice with 0% VAT.
    Detailed description

    Current NBP Exchange Rates in Your PrestaShop Store

    Automatic currency rate updates

    Exchange rates straight from the NBP—the official feed

    By default, PrestaShop retrieves exchange rates from its own external source pegged to the EUR—which is not affiliated with the National Bank of Poland. Our module replaces these with the official, public NBP exchange rate table.

    Background automation—URL link and CRON

    A single, secure token supports CRON—it works for both shared hosting and servers with SSH access.

    Additional, manual exchange rate for product price conversion—a ready-to-use solution for invoices

    Regardless of the NBP exchange rate, you can set an additional exchange rate used to convert product prices. This rate is not visible to the customer. Every order in a foreign currency is assigned the actual NBP exchange rate from the date of purchase.

    2069508669.1200w.png
    PShow NBP – Exchange Rates from the NBP

    Compliance with the NBP

    Exchange rates are retrieved directly from the official, public API at api.nbp.pl —Table A (major currencies, daily) or Table B (other currencies, weekly).

    The store’s default currency is never altered—its exchange rate always remains 1, in accordance with PrestaShop requirements.

    Control over the exchange rate for price conversion

    Set your own fixed exchange rate for any currency—for example, for promotions or testing—with a live conversion preview in your browser.

    The NBP reference exchange rate continues to be tracked in the background, regardless of the manually set exchange rate.

    Zero manual work on invoices

    Every order in a foreign currency is assigned the NBP exchange rate from the date of purchase or the business day preceding the date of purchase.

    Current NBP exchange rate on orders

    Ready-to-use data for invoices in foreign currencies

    This is the only feature of its kind among PrestaShop exchange rate modules.

    • When an order is placed in a foreign currency, the module retrieves the current exchange rate from a previously downloaded NBP reference rate—the checkout does not connect to the NBP, so an NBP outage does not affect the order placement process.
    • The current exchange rate overwrites the `conversion_rate` field in the PrestaShop order, which is used by reports and statistics.
    • The amount paid by the customer never changes—the data is locked in at the time the order is created.
    • A complete set of data is stored in a separate table: the exchange rate from checkout, the actual NBP exchange rate, the NBP table and date, and the gross/net amounts converted to the store’s default currency.

    Manual exchange rate—the price visible to the customer

    Your price, your rules

    Sometimes a store wants to show customers prices that differ from those resulting from a non-market exchange rate conversion—for promotional purposes, rounding, or testing.

    • You can enter the same exchange rate as the NBP or any other rate.
    • Live conversion preview in the browser, even before saving.
    • Clearing the field restores automatic conversion from the NBP.
    • The NBP reference exchange rate is always visible and updated next to it—regardless of the manually set exchange rate.
    • Two exchange rates are included in the order: the NBP rate—for accounting purposes—and the manually set rate—for price calculations.

    All exchange rate-related operations in one place

    NBP exchange rate, customer exchange rate, and the status of each currency in one place

    The module panel displays each store currency in a single row: the current NBP exchange rate (reference rate), the manually set exchange rate—visible to the customer—and a clear status.

    • Current exchange rate —an independent, constantly updated NBP exchange rate, visible even for currencies with a manually set exchange rate.
    • Rate visible to the customer —this is what is actually passed to PrestaShop’s `conversion_rate` and determines prices on the front end.
    • Status – Default, Updating, Manual Rate, Excluded, or Inactive.
    • The “Update Now” button always works, regardless of background automation.
    1693363538.1200w.png
    Exclusions from currency rate updates

    Background automation — one token, two options

    Works with any hosting provider

    • Option 1 — URL link — for control panels such as home.pl, OVH, nazwa.pl, or cron-job.org, which run cron jobs simply by calling the URL.
    • Option 2 — crontab — a ready-to-use command line for servers with SSH access.
    • You can revoke the token at any time and generate a new one with a single click.
    2650883544.1200w.png
    Automation section with a ready-to-use link and crontab line

    Security

    Secret token, a single secure entry point

    Random, regeneratable token

    The link for automatic updates contains a secret token—without it, the server returns a 403 Forbidden response. The token can be revoked at any time, and a new one can be generated with a single click in the dashboard.

    Random, regeneratable token

    The link for automatic updates contains a secret token—without it, the server returns a 403 Forbidden error. The token can be revoked at any time, and a new one can be generated with a single click in the dashboard.

    Zabezpieczenie tokenem endpointu aktualizacji kursów
    Jeden endpoint dla obu opcji crona

    One endpoint, no duplicates

    Both cron options (URL link and crontab) point to exactly the same, secure location—there is no separate script that could bypass token verification.

    Sklep wielowalutowy z rozliczeniem VAT w Polsce

    Who is PrestaShop NBP for?

    Not just for large multi-currency stores

    Multi-currency stores

    Sales in EUR, USD, and other currencies with VAT settlement in Poland—exchange rates always in line with the NBP table, with no manual conversion required.

    Biuro rachunkowe – dane pod fakturę w walucie obcej

    Accounting firms and store accounting

    Ready-to-use, documented data for invoices in foreign currencies, compliant with the requirement to use NBP exchange rates—no need to manually look up the exchange rate from the order date.

    Sklep testowy i deweloperski – kontrola nad kursem

    Test and development stores

    Full control over the exchange rate displayed to the customer, independent of the actual NBP exchange rate tracked in the background—convenient for testing prices and conversions.

    Developer-Friendly Features

    • All exchange rate logic is contained in independent services (NbpClient, CurrencyRateUpdater, OrderRealRateApplier)—easy to extend and reuse.
    • Dedicated ps_pshownbp_order_rate table (one row per order)—minimal database load, ready to be read by your own invoice generator.
    • Covered by PHPUnit unit tests—safe for implementing your own modifications.

    PrestaShop hooks

    • actionValidateOrder – saves the current NBP exchange rate and invoice data when an order is placed.

    Technical Requirements

    Compatible with current versions of PrestaShop and PHP.

    • PrestaShop: 1.7.x, 8.x, and 9.x
    • PHP: 7.1 or later
    • Outbound HTTPS access to api.nbp.pl — a public, free NBP API that requires no key or registration
    • No external dependencies —does not require any additional libraries

    PShow NBP PrestaShop module

    Changelog (0)
    ## 1.2.2 - 2026-09-04
    -----
    * Fix: `OrderRealRateApplier::apply()` now checks the excluded-currencies list — an excluded
    currency is left completely untouched, including a rate that was cached before it got excluded.
    * Fix: excluding a currency (or leaving its manual-rate field blank on submit) no longer silently
    discards a previously-saved manual rate for a *different*, still-excluded currency.
    * Fix: `saveManualRates()` now validates the cached reference rate (numeric, > 0) before writing
    it to `Currency::conversion_rate`, matching the same guard already used elsewhere.
    * Fix: `Db::insert()`/`Db::update()` now pass `$null_values = true` — an empty
    `nbp_effective_date` was being stored as `''` instead of `NULL`, which fails under strict SQL
    mode against the `DATE NULL` column and silently dropped the whole audit write.
    * A failed cron sync (NBP unreachable, or no default currency configured) is now logged via
    `PrestaShopLogger` and answers with a non-200 HTTP status, instead of a silent HTTP 200 —
    previously nothing told the seller the cron had stopped working while orders kept getting an
    increasingly stale cached rate.
    * Replaced `PSHOWNBP_LAST_SYNC_SUMMARY` (a pre-rendered, already-translated string) with
    `PSHOWNBP_LAST_SYNC_STATS` (raw numbers) — the "last sync" summary is now built in the current
    viewer's admin language every time the page renders, instead of being frozen in whichever
    language was active when the sync ran (an issue for cron-triggered syncs).
    * Source strings for `trans()`/`{l s=}` are now English (translated PL/EN via the usual
    `translations/*.php` files), matching the convention used by the module's other language files.
    * `composer.json`'s `test` script no longer depends on PHPUnit (not present in the CI's
    `--no-dev` build) — added `tests/run.php`, a dependency-free integration test that
    actually runs in CI, covering `CurrencyRateUpdater::run()` and `OrderRealRateApplier::apply()`.
    The PHPUnit suite stays available for local development via `composer run test:unit`
    (equivalent to the existing `composer run phpunit`).
    * Fixed a PHP 7.4-only typed property in a test file that failed to parse on the declared PHP 7.1
    minimum.
    * Fix: `Currency::resetStaticCache()`, used to make the new multistore sync loop below work
    correctly, doesn't exist before PrestaShop 1.7.4.0 — calling it directly would fatal on the
    1.7.0.0–1.7.3.x range this module declares support for. Now guarded with `method_exists()`.
    * Multistore: a single cron hit now syncs every active shop, not just whichever shop's domain
    received the request — `conversion_rate` and the reference-rate cache are per-shop, so one
    shop's sync could otherwise never refresh another's. Excluded currencies and manual rates are
    also independent per shop. The cron secret, the "auto update" switch and the NBP table choice
    remain a single, installation-wide setting. `Order`-side behaviour is unaffected —
    `OrderRealRateApplier::apply()` already runs in the placing order's own shop context, so it
    always reads that shop's own reference rate. The "Update now" button is unchanged — it still
    only syncs the shop currently selected in the admin, matching the rates table shown right below
    it on the same page.

    ## 1.2.1 - 2026-09-04
    -----
    * Fix: `pshownbp_order_rate.nbp_effective_date` now stores the actual NBP-published date of the
    applied rate table, instead of the date the sync happened to run on — the two could differ
    after a weekend/holiday or when cron fires before NBP's daily publication.
    * Checkout is now resilient to any unexpected error while recording the real-rate audit data
    (e.g. a database hiccup) — the order is always saved normally; the error is only logged.
    * The suggested crontab example moved from 8:30 to 13:00 — NBP typically publishes Table A by
    12:15, so an earlier cron run was silently fetching the previous business day's rate.

    ## 1.2.0 - 2026-09-02
    -----
    * New: when an order is placed in a currency other than the shop's default one, the module
    overwrites `Order::conversion_rate` with the real NBP reference rate (never the seller's manual
    display rate) and records a full audit trail in the new `pshownbp_order_rate` table — checkout
    vs. real rate, NBP table/date, and gross/net totals converted to the default currency, ready for
    invoicing. The amount the customer paid never changes.
    * Checkout never makes a live call to NBP — the real rate is read from the already-cached
    reference rate kept fresh by "Update now"/cron, so a slow or unavailable NBP cannot affect
    checkout time.
    * Both cron delivery options (URL link and real crontab) now hit the exact same token-protected
    front controller — no separate standalone script to keep in sync.
    * Extracted all remaining inline CSS/JS from admin templates into dedicated files.
    * In-admin manual (PL/EN) and README updated to document the new feature.

    ## 1.1.0 - 2026-08-19
    -----
    * New "Rate visible to customers" column on the main "Currency rates" table: type your own rate
    (e.g. "4.5" for EUR, meaning 1 EUR = 4.5 PLN) and it's converted live, in the browser, to the
    PrestaShop `conversion_rate` that actually applies on the storefront.
    * The "Current rate" column now also shows the reciprocal (1/rate) next to the raw PrestaShop
    value, so it reads in both directions at a glance.
    * The automatic NBP sync (button and cron) keeps tracking the real market rate as a reference
    even for currencies with a manual rate set — it just stops overwriting the applied rate for
    those, until the manual rate is cleared.
    * Extracted the last remaining inline `` blocks (main page, in-admin manual) into
    dedicated CSS files — no CSS/JS left inline in templates.
    * Added a module sanity test suite (`ModuleTest`) matching the other PrestaShow modules.

    ## 1.0.0 - 2026-08-18
    -----
    * init module
    * Fetch currency exchange rates directly from the official NBP (Narodowy Bank Polski) API,
    replacing PrestaShop's default EUR-anchored external feed.
    * Manual "Update now" button plus optional cron/HTTP automation with a secret-token link.
    * Per-currency exclusion list; default shop currency is never touched (its rate always stays 1).
    * Status table showing every shop currency's current rate and update state.
    * PL/EN in-admin manual and translations.
    Komentarze ()
    The reviews posted on our store are not sponsored in any way. We also verify that they were added by customers who have purchased from us or guests. If you want to learn more about this topic please read our Regulations.

    No customer reviews for the moment.

    Leave a comment

    Write a comment By adding an opinion you agree to the processing of your personal data. Read more about our Privacy Policy.

    • Rating:

    Technical requirements

    Technical Requirements

    • PHP 7.1 - 8.x
    • Server extension ionCube Loader
    • PrestaShop Importer only: PHP libxml version > 2.9.3
    • PrestaShop Facebook Integrator only: PHP 7.2 or higher
    • PrestaShop VAT Validator only: PHP SOAP

    More on technical requirements in the knowledge base

    Support & Updates

    Support = Updates + HelpDesk

    You get 90 days (3 months) access to the complete PrestaShow support package.

    Module updates
    Modules will inform you about available updates. Read the changelog and perform a 1-click module update directly from your store.

    HelpDesk panel
    This is the panel where we will provide you with help. On HelpDesk you can report problems, order free module installation and updates, and order modifications and custom programming work.

    Extend support
    After support expires, you can use the module without any restrictions. You can extend your support access at any time you need it.

    Knowledge Base & FAQ

    Free forever

    The knowledge base is available to everyone. You will find module documentation as well as instructions, videos and answers to frequently asked questions.

    License

    Lifetime license for the module

    Full content of the license

    Module management panel user manual

    Additional domains for Multistore

    • All our modules support PrestaShop Multistore.
    • Supporting unlimited domains for PrestaShop Multistore requires purchasing multistore support for the module.

    Modifying the code

    • The module code related to the integration with the store and the design (.tpl, .css, .js) has open source code and you can modify it freely.
    • The module's source code (.php) is encrypted with ionCube, and modifying it will void the warranty.

    Demo

    Demo - test the module

    • This module does not have a demo store

    No entries yet.