CBS Website Currency Switcher - Debug Status

If you are seeing this page, that alone confirms the currently installed module is at least new enough to have this route - if it 404s instead, the server is still running an older version than you think.

Installed module version (from the manifest Odoo actually loaded)18.0.4.17.0
Cookie 'cbs_website_display_currency_id' as read by the SERVER (request.httprequest.cookies)None
Session key 'website_display_currency_id' as read by the SERVER (request.session)None
get_display_currency(env) result - this is exactly what every price-conversion check in this module usesFalse (no conversion - prices will show un-converted)
Full raw Cookie header the server received
Is this visitor logged in?No (public/anonymous)

Reload this page immediately after picking a different currency from the header dropdown (same tab, no other tabs open to this site) and compare the values above each time.

Live end-to-end grid-card simulation (product: [TO001] ALMOND TOFFEE CRUNCH)

website.currency_id (what the template hardcodes as source/display_currency)USD (id=1)
price_reduce value returned by _get_sales_prices (this is what the template's t-out actually receives)17.2
get_converted_value_currency(that exact value) - what value_to_html's marker check seesFalse (not marked as converted)
Actual HTML value_to_html produced for this value+options, RIGHT NOW, calling the real method17.2

If the currency shown inside that last HTML string does not match the currency you have selected, the bug is confirmed to be inside value_to_html/the marker check itself, not in how the grid calls it or in anything upstream (cookie/session) - all of which this page's own table above already shows are correct.

Caching

As of this version, /shop and product pages now get Cache-Control: no-store and Vary: Cookie response headers whenever a visitor has chosen a display currency, specifically to stop a CDN/reverse-proxy cache (confirmed as the actual cause on this site - the simulation above matched the chosen currency correctly while the real page did not, which only a cache sitting in front of this server can explain) from serving one visitor's cached page to a different visitor with a different currency choice.