Can I validate my Product JSON-LD if my offers block is dynamic (price changes per customer group)?
Yes, but you need to validate the rendered JSON-LD as Googlebot sees it, not your template source.
The challenge with Magento + dynamic pricing:
- Customer-group pricing → different prices per group → Googlebot sees the “not-logged-in” price (NOT_LOGGED_IN customer group).
- B2B segment pricing → segment-aware prices → Googlebot sees the default segment’s price (or no price if segmented away from default).
- Tier prices / minimum order quantity → Googlebot sees the unit price for qty=1.
- Configurable products → if you don’t pre-select a default child, Googlebot sees the parent’s placeholder price (often empty, this is the #1 source of “missing price” Search Console errors on Magento configurable PDPs).
How to test:
- Open the PDP in an incognito browser (no auth, no segment cookies).
- View source, find
application/ld+json, copy the rendered JSON-LD (not your template source). - Paste into this validator. If
offers.priceis empty or"0.00"when stock exists, the price isn’t rendering for anonymous visitors, this is the bug.
Fix path: emit a price + priceSpecification structure that uses the default-segment price, or use priceRange on the parent Configurable with min/max from child SKUs. The validator’s fix-suggestions section gives you a copy-pastable Magento PHP block to do this.