Frequently Asked Questions
Does this work with full page caching?
Yes — that’s the entire point. Configure your caching layer to cache product and shop pages, and the plugin loads correct, per-visitor prices via AJAX after the cached page renders. See Caching Plugin Configuration.
Does it work with variable products?
Yes. Both simple and variable products are supported. Variable products get an extra ajax-price-variable class on their placeholder, and the price refreshes again when a variation is selected (the plugin listens to WooCommerce’s found_variation event).
How is this different from WooCommerce cart fragments?
Cart fragments refresh the mini-cart; they don’t make catalogue prices cacheable. This plugin specifically solves price (and optionally stock) personalisation on cached shop/product/category pages by batching one AJAX request for every product on the page.
Will it slow my pages down?
No meaningfully. The front-end script is tiny and no-ops when there are no placeholders on the page. It makes a single batched request for all products on the page rather than one request per product. In the default Dimmed mode the cached price stays on screen (dimmed) until the real price fades in, so there’s no blank flash and no layout shift. See Display While Prices Load for the Spinner and Loading-text alternatives.
The front-end script is tiny and makes one batched request for the whole page, not one per product – and it no-ops entirely when a page has no price placeholders. In the default Dimmed mode there is no blank flash and no layout shift.
Why do I briefly see one price and then it changes?
That’s by design. The cached page shows the price that was current when the page was cached; a fraction of a second later the AJAX response replaces it with the price calculated for the current visitor (their location, tax, dynamic pricing, etc.). By default the cached price is dimmed and then cross-fades to the real one, which avoids a blank flash or layout shift. You can change what shows during that moment (Dimmed, Spinner or Loading text) under While prices load — see Display While Prices Load.
Do prices update for products added by infinite scroll?
Yes. The plugin integrates with Auto Infinite Scroll — newly appended product cards are refreshed automatically, and only the new products are fetched (not the whole page again). See Compatibility & Integrations.
Does it support WooCommerce Product Bundles / Composite Products?
Yes, via optional adapters that activate automatically when those plugins are present. They add per-child/per-component stock data to the AJAX response. See Compatibility & Integrations.
My prices are wrong for tax-exempt countries — can it fix that?
Almost certainly, but the fix is in WooCommerce rather than here. If your store enters prices inclusive of tax and you sell into VAT-free regions, you need a wildcard 0.0000 row in WooCommerce → Settings → Tax → Standard rates — without one, a visitor whose country is simply absent from your tax table matches no rate at all, and WooCommerce has nothing to work from when it strips the embedded VAT. If only some products are wrong, check their Tax class is Standard rather than Zero rate – a product in the Zero rate class never has any tax removed, so it shows the price exactly as you typed it. See VAT-Exempt / Tax-Inclusive Pricing for both, and how to verify.
Is the AJAX endpoint a security risk?
No. It only ever returns data for published products (draft/private/scheduled products are never exposed), it returns only public price/stock information, it changes no data, and the number of products per request is capped. See the Architecture Overview article’s security section.
Can I use it with a headless / REST front end?
The plugin targets server-rendered WooCommerce themes (it filters WooCommerce’s price/stock HTML). For a fully headless build you’d query WooCommerce pricing directly rather than through this plugin. The underlying ssap_get_prices AJAX action is documented in the Developer Reference if you want to consume it yourself.
Does it work with multi-currency or dynamic-pricing plugins?
Generally yes — because the real price is computed by WooCommerce inside the live AJAX request, it picks up whatever currency/dynamic-pricing logic those plugins apply. See Compatibility & Integrations for specifics and caveats.

Comments