Google Merchant Center, price-comparison feeds, and structured data (schema.org Product/Offer markup) all read WooCommerce’s stored regular price directly from the product. They don’t run Product Add-Ons Ultimate calculation fields — these only execute in the browser and at checkout.
If a product’s displayed price is built entirely from calculation fields (for example, a ‘Final Price’ generated from selected options or from lookup tables with no base price set), the underlying WooCommerce price field is often left at 0. Feeds and crawlers then see a $0.00 product, which typically gets flagged or disapproved.
How to fix this
To fix it so that GMC and other applications see a “real” price:
Step #1: Set a real, non-zero regular price
Go to Product data > General and enter a sensible representative value, such as your typical or lowest configured price. This is the number Google Merchant Feed, schema.org markup, and other plugins will read. For variable products, set a non-zero regular price on each variation.
Step #2: Build your dynamic pricing as normal
Use calculation fields tied to the customer’s selected options, the same way you would for any dynamically priced product.
Step #3: Add a final calculation field to cancel out the base price
This is where the magic happens. Add a final calculation field at the end which takes your calculated price from Step 2 with a formula that subtracts {product_price}:
[your calculated total] - {product_price}
Note that [your calculated total] above is just a placeholder – you’ll most likely need to replace it with a reference to another field, e.g. {field_1234}.
Because ‘Set Price’ replaces the product’s price outright at checkout, subtracting {product_price} cancels out the base price you set in step 1. The customer is charged exactly your calculated total – not the base price plus the total.
Remember – don’t use ‘Set Product Price’ on more than one calculation field per product. If you want to display a value as a price but not actually set the product price, use ‘Display as Cost’.
Why this works
{product_price}is a built-in placeholder that always resolves to the product’s stored regular (or sale) price.- A calculation field with Formula Action ‘Set Price’ overrides the displayed and cart price entirely, rather than adding to it.
- The base price never reaches the customer as a charge. It exists solely so that:
- Google Merchant Feed and third-party plugins reading the product’s price see a valid, non-zero number.
- Structured data (schema.org
Offerprice) is valid for SEO and rich snippets. - WooCommerce reports, related products, and price-based sorting and filtering behave sensibly.
After saving, allow time for Google to re-crawl. Merchant Center can take a few days to clear a prior price disapproval.