Bug Reports
Open

Currency amount renders reversed in RTL locales on hosted checkout

Summary

On the hosted checkout page, the amount in the Show order details bar renders reversed in right-to-left locales. A $59.00 product displays as 00.95$, and a $57.00 product displays as 00.75$.

The underlying DOM text is correct ($59.00). Only the visual order is wrong.

Screenshots

Hosted checkout in Hebrew showing 00.95$ instead of $59.00Order details bar showing 00.75$ instead of $57.00

Steps to reproduce

  1. Create a checkout session for any product, e.g. pdt_0NqUl9MraypWZDfcldkmu ($59.00 every 3 months)
  2. Open the checkout URL with browser language he-IL, or create the session with customization.force_language: "he"
  3. Look at the order details bar at the top of the page

Expected: $59.00 Actual: 00.95$

Cause

The amount is not LTR-isolated inside the RTL layout. $ and . are neutral characters, so the numeric runs reorder against the RTL base direction.

Suggested fix

Wrap money amounts in <bdi dir="ltr">, or apply unicode-bidi: isolate; direction: ltr to the amount element. This applies to every RTL locale, not only Hebrew.

Scope

The rest of the Hebrew page renders correctly, including the card number placeholder and the PCI DSS badge. The issue is isolated to the amount in the order details bar.

Impact

Reported by SecretJobs (bus_0NfojPM6FjM9SErFgo8j6), who sell mostly into Israel and create sessions with force_language: "he". Customers reach the hosted page when their embedded checkout fails to load, so they see an incorrect price at the moment of payment.

Seen 25 Oct 2026, test mode, Chrome at phone width. Chatwoot ticket 34860.

0 Comments

Sign in to comment

No comments yet. Be the first to share your thoughts!