A price is assembled in layers. Your cost sets the floor, markup or a custom per-TLD price sets the retail figure, a promotion or coupon discounts it, currency conversion restates it, rounding adjusts it, and tax is added at checkout.
A wrong price means one layer behaved differently from how you expected. Work down the layers in the order below rather than starting from the final number, because the layer that surprised you is rarely the last one applied.
Before you start
Have the customer's order or cart in front of you, along with the TLD in question and the currency the customer buys in. A price complaint is hard to settle without knowing which of the three changed recently.
Step 1: Check whether the TLD has a custom price
Default markup does not apply to any TLD with a custom per-TLD price set. Changing your default markup leaves those TLDs exactly as they were, which is the most common reason a price change appears not to have taken effect.
Open TLD Pricing, filter by custom pricing status, and update those TLDs individually.
If a TLD is missing from the pricing table entirely, search for it using the magnifying-glass icon. A TLD that still does not appear may not be available in Storefront yet. See Available TLDs.
Step 2: Check the currency
Customers buy in their saved currency preference, which you can see and edit on the Customer Details page. You can only select currencies your store currently offers, so a customer whose preferred currency was removed will see a different one.
If the currency is right but the amount is wrong, check the exchange rate for that currency in your pricing settings. Storefront never converts prices for you. The rate is the one you entered, so a stale rate quietly misprices every item in that currency. The market rate shown beside yours is a reference only, refreshed nightly, and Storefront does not apply it.
A rate change applies to future price calculations only. Orders already placed keep the rate that was active when they were placed.
Step 3: Check rounding
Rounding runs after markup, and for any currency other than your default it runs after the conversion as well. It rounds prices to end in .99 or .00.
This is why a converted price can sit a few cents away from your own arithmetic. That is rounding doing its job rather than an error.
Step 4: Check promotions and coupons
A promotion or coupon that looks set up correctly may still not reach the customer.
Confirm the status first. Only an Active promotion or coupon applies. Scheduled means the start date has not arrived, and Paused behaves to the customer exactly like an invalid code, with no indication that the code exists.
A promotion you finished configuring but navigated away from is saved as Draft, not discarded. Reopen it from the Promotions list and save it to activate.
If the status is right, check eligibility. The item must be within the eligible products, and for promotions it must also match the purchase type, which can be new registrations, renewals, or both.
A discount that applied to only part of an order is usually correct. When a cart holds both eligible and ineligible products, the discount covers the eligible items alone.
Step 5: Check tax
Tax appears only once the customer signs in. Logged-out visitors browsing your store see prices without tax, which is expected rather than a misconfiguration. Every purchase requires an account, so the case worth investigating is a signed-in customer whose tax still looks wrong.
Storefront matches your rules against the country and province held on the customer's account. If either is missing, no rule matches and no tax is charged. Ask the customer to complete their account details.
A customer seeing two tax lines has not been charged twice. When a country rule and a state or province rule both match, both rates apply and appear as separate lines at checkout, each labelled with the tax name you configured.
You can hold only one rule per country and state or province combination. If you tried to add a rule and got an error, a rule for that region already exists, so edit that one instead of creating another.
Tax changes take effect immediately for new checkouts. A customer part-way through checkout keeps seeing the old rate until they refresh.
What a completed order shows
Completed orders are historical records and do not change when you change your settings. The tax rate shown is the rate that was active at the time of purchase, and the exchange rate is the one that applied when the order was placed.
A customer disputing an old order against your current prices is usually comparing against settings that have since changed. The order is right.
When to contact OpenSRS Support
Contact OpenSRS Support when the TLD price, currency, rate, rounding, discounts and tax rules all match what the customer was charged and the figure still does not reconcile. Include the Order ID and the price you expected.
Related articles
- Setting up your domain pricing
- Selling in multiple currencies
- Collecting tax
- Managing promotional pricing
- Managing coupon codes
Full Storefront documentation
These troubleshooting articles cover what to do when something breaks. Setup guides, feature documentation and the Storefront API reference all live on the Storefront documentation portal.