Short answer. Merchant Center disapproves a product with “Missing value [price]” when the price attribute is empty, and with “Invalid value for category [price]” when the price is 0, for anything except a physical-goods subscription. Price is required, as a number plus an ISO 4217 currency; fix the product’s price in your store or the export that leaves it blank for variants.
| Shown in Merchant Center as | Missing value [price] |
|---|---|
| Attribute | price |
| Effect | Product disapproved |
| Where to find it | Products → Needs attention, then filter by this issue |
| Free check | Reported by the free feed check |
What Merchant Center means by “Missing value [price]”
price is required for every product, as a number followed by an ISO 4217 currency code (15.00 EUR), and Google’s price specification says it must match the price on your landing page and checkout. A row with an empty price is disapproved with “Missing value [price]”, following Google’s general pattern for a required attribute that is absent, listed in the Content API’s product issues reference. A price of zero is rejected separately, as invalid_price_for_category, “Invalid value for category [price]”, whose listed fix is “increase the price to a number higher than 0”; the specification allows 0 only for physical-goods subscriptions, where the cost is declared elsewhere.
Merchant Center also cares which price it is. In the United States and Canada the price excludes tax; in most other countries it includes VAT or GST. A feed that sends net prices to a VAT country is not “missing” a price, but it will fail the landing page comparison instead.
Why it happens
- Variable products exported at the parent level. The price lives on the variant; the parent has none, and the export writes the parent’s empty field.
- Products with a price of 0 used as placeholders, “call for price” items, or free samples.
- Number formatting.
1.299,00with a European thousands separator, a currency symbol instead of a code (€15), or the currency in a separate column the export does not merge. - Sale price in the wrong field. The discounted price written to
sale_priceandpriceleft empty.
How to fix it
In Shopify
Every variant in Shopify has a price, so an empty value means the feed was built from the product rather than its variants or a metafield was mapped by mistake. Use a feed that writes one row per variant with the variant’s Price as price and the variant’s Compare-at price, when set, as the regular price with the current price as sale_price. Products priced at 0 should be unpublished from the channel.
In WooCommerce
Variable products in WooCommerce have no price of their own; each variation does. A feed that exports the parent product sends nothing. Our free connector writes one row per variation with the variation’s price including tax, and puts an active sale price in sale_price with the regular price in price. Check WooCommerce → Settings → Tax so that “display prices” and the feed agree on tax-inclusive amounts for your country.
In a CSV or XML feed
Fill every empty price with a number, a space and a three-letter currency code, using a dot as the decimal separator and no thousands separator: 1299.00 EUR. Remove rows priced at 0 unless they are subscriptions. Keep the whole file in one currency, the one of the country the feed targets; a second currency means a second feed.
How long until Merchant Center clears it
A valid price on the next fetch lifts the disapproval within 24–72 hours. Google then compares the new price against the landing page during its regular crawls, so a price that is present but wrong surfaces later as a mismatch rather than as a missing value.
What FeedRobin does about it
The free check reports products with no usable price (empty or zero) as critical, and separately counts rows whose currency differs from the rest of the file, since a channel reading mixed prices disapproves the odd ones. Neither is something we rewrite: a price the feed does not contain has to come from your shop, and converting currencies would invent numbers your product pages do not show. In the feeds we serve, a row without a valid price is left out rather than sent, and currencies are normalised to the feed’s market.
Questions merchants ask
The product has a price in my store. Why is the feed’s price empty?
On variable products the price lives on the variant, not the parent. An export that writes one row per parent product, or reads the parent’s price field, sends an empty value. Check the rows the feed actually contains.
Should the price include VAT?
In most countries yes, the price must include VAT or GST. In the United States and Canada it must not include any tax. Google’s price page lists the rule per country.
Can one feed carry prices in two currencies?
No. A feed targets one country and one currency, and every price in it must use that currency. Selling in several currencies means one feed per market.
Sources
- Price [price] — Google Merchant Center Help
- Product issues (Content API for Shopping): the issue codes and the titles Merchant Center shows — Google Merchant Center Help
- Product data specification — Google Merchant Center Help