What stays a plain value
Only prices you display become shells. A price used as data stays an ordinary Liquid value, so your logic keeps working:
This means sorting, comparisons, and structured data keep the guest price. Only what a member reads on the page changes.
Apply filters to a price
Filters on a visible price are replayed against the member’s price by Fluid, then the result is written back as text.plus, minus, times, divided_by, modulo), rounding and bounds, money, default, escaping, and scalar text operations such as append, prepend, replace, remove, case conversion, trimming, and truncation.
Filters preserve ordinary Liquid semantics. Arithmetic on an already formatted price string behaves exactly as it would on that string anywhere else, and a numeric price stays numeric.
Limits
A replayed filter chain accepts at most:- 12 filters
- 3 scalar arguments per filter
- 512 bytes per string argument
Place a price shell yourself
Use themember_price filter when you need a shell somewhere an ordinary price expression will not reach:
Country and variant
A price shell carries the product, the selected variant, and the storefront country. Change the variant or country on the element and the runtime fetches the matching price again. Omit the variant and Fluid prices the product’s default variant.When a price does not resolve
The shell keeps the guest price whenever Fluid cannot return a member price:- The member has no price for that product
- The response is missing, invalid, or times out
- The session expired — every shell on the page reverts to its guest content