On this page
This guide is for nopCommerce 4.80 and 4.90 stores that want their products in Google Shopping, free listings and Shopping ads. It explains how nopCommerce’s product fields map to what Google asks for, and how to fix the disapprovals Merchant Center reports most often, from inside the nopCommerce admin area.
How nopCommerce products get to Google Shopping
Google Shopping shows products from Google Merchant Center. You give Merchant Center your product data, it checks every product against its rules and against your product page, and approved products can appear in free listings and, if you run them, Shopping ads.
nopCommerce 4.80 and 4.90 don’t include a Google Shopping feed plugin. The Google plugins in the download are for Analytics and two-factor sign-in, not product data. So the first decision is how your product data reaches Merchant Center.
Three ways to send products to Merchant Center
| Option | How it works | Good for | Watch out for |
|---|---|---|---|
| Feed plugin | A plugin from the nopCommerce Marketplace builds a feed file or URL. Merchant Center fetches it on a schedule, or the plugin sends products through Google’s API. | Most control: category mapping, variants, custom labels, excluded products. | Pick one that supports your nopCommerce version and attribute combinations. |
| Add products from your website | Merchant Center crawls your product pages and reads the Product structured data nopCommerce adds when Microdata tags are on. | No plugin. Works for small, simple catalogs. | Only uses what is in the structured data. Slower to pick up changes, and less control. |
| File upload | Export products from Catalog → Products, rearrange the columns into Google’s format and upload the file. | Quick way to test a few products. | Goes out of date as soon as prices or stock change. |
For most stores with more than a few dozen products, a feed plugin is the right choice. Before choosing one, check that it supports your exact nopCommerce version, sends attribute combinations as separate variants, lets you map nopCommerce categories to Google’s product categories, and lets you leave products out.
Our free Merchant Center Feed for Google plugin does all of that for nopCommerce 4.80, 4.90 and 5.00. It checks every product before Google sees it, holds back the ones Google would reject with the reason, and can send changes through Google’s Merchant API within minutes instead of once a day.
Whichever option you use, keep Microdata tags on in Configuration → Settings → General settings → SEO. It is on by default. Merchant Center compares your feed with the price and stock in the page’s structured data, and can update small differences automatically.
nopCommerce fields and Google’s product attributes
Every feed, whatever builds it, is made from the same nopCommerce fields. This is where Google’s main attributes come from, based on Google’s product data specification (opens in a new tab):
| Google attribute | nopCommerce field | Rules to know |
|---|---|---|
id | SKU | Google recommends the SKU. Products without one need a SKU first, or the plugin falls back to the product ID. |
title | Product name | Up to 150 characters. Must match the product page; no promotional text. |
description | Full or short description | Up to 5,000 characters of plain text. Depends on the plugin which field it uses. |
link | Product URL | Must open a working page on your verified domain. |
image_link | First product picture | At least 500 × 500 pixels from 31 January 2027. No placeholder, watermark or added text. |
price | Price, with the store currency | Must match the product page and checkout, including tax rules for the country. |
availability | Stock quantity and inventory method | in_stock, out_of_stock, preorder or backorder. Must match the page. |
brand | Manufacturer | Required for new products, except books, films and music. |
gtin | GTIN | The barcode number. Required when the product has one. |
mpn | Manufacturer part number | Required only when the product has no GTIN. |
condition | Set by the plugin | Optional for new products; required for used or refurbished. |
item_group_id | Parent product | For variants built from attribute combinations. |
GTIN, brand and MPN
Missing product identifiers are the most common reason nopCommerce products are limited or disapproved. Google uses them to match your product to the same product sold elsewhere.
- GTIN is the barcode number: UPC (12 digits), EAN (13), JAN or ISBN, or ITF-14 for multipacks. Enter it in the GTIN field in the product’s Product info section. Google checks the check digit, so a mistyped or invented number is rejected.
- Brand comes from the product’s manufacturer. Create brands in Catalog → Manufacturers and assign one to each product. For your own products, use your store’s brand name.
- MPN is the Manufacturer part number field. Google needs it only when the product has no GTIN.
Products without a barcode, such as handmade or custom items, don’t need a GTIN. Send the brand and MPN, or have the feed send identifier_exists as no. Google’s GTIN rules (opens in a new tab) are clear on one point: never make one up.
Filling these in for a large catalog by hand is slow. Export the products from Catalog → Products, add the GTIN, manufacturer part number and manufacturer columns from your supplier’s data, and import the file back. Our product import and export guide covers the details, and on 4.80 or 4.90 our free plugin lets you bulk-edit product data before feeding Merchant Center with a preflight review before anything is imported.
Common Merchant Center disapprovals and how to fix them in nopCommerce
Merchant Center lists issues per product under Products. These are the ones nopCommerce stores see most, and where each comes from:
| Issue | Usual cause in nopCommerce | Fix |
|---|---|---|
| Missing value [gtin], [brand] or [mpn] | The product has no GTIN, no manufacturer part number, or no manufacturer in nopCommerce. | Add the GTIN or part number in the product’s Product info section, and assign a manufacturer. For products without a barcode, such as your own brand, send brand and MPN, or identifier_exists = no. |
| Mismatched value (page crawl) [price] | The feed price differs from the page. Common reasons: a discount or customer-role price, tier prices, a different currency, or tax shown differently. | Send the price an anonymous visitor sees. In the US and Canada send prices without tax; in most other countries send prices with VAT, matching how the store shows them. |
| Mismatched value (page crawl) [availability] | Stock changed since the last feed update, or the product allows backorders. nopCommerce marks backorderable products as in stock on the page. | Update the feed at least daily, and send backorder only if the plugin can match what the page shows. |
| Unavailable desktop landing page | The product is unpublished, past its available end date, or limited to stores or customer roles. nopCommerce returns “page not found”. | Leave these products out of the feed, or clear the end date and store and role limits. |
| Image too small, or generic image | The product has no picture, so nopCommerce shows its “no image” placeholder, or the picture is smaller than 500 × 500 pixels. | Upload a photo of the product of at least 500 × 500 pixels, ideally 1,500 or more, without watermarks or text. |
| Missing or short description | Both descriptions are empty. | Write a description that matches the product page. Google ignores promotional text. |
Sale prices need care too. nopCommerce shows the Old price crossed out next to the price whenever the two differ. An old price lower than the price looks like a price rise to customers, and a feed that sends it as the regular price shows a sale that isn’t one.
Most of these problems can be found before Merchant Center does. Our free StorePulse plugin counts products without pictures, descriptions, a manufacturer or a GTIN, products past their end date, products nobody can see and old prices below the price, and lists them with links to edit them. The catalog quality guide explains each check.
Products with variants
In nopCommerce, sizes and colours are usually product attributes. When each combination has its own stock or barcode, it is set up as an attribute combination, which has its own SKU, GTIN and manufacturer part number.
Google wants each variant as its own item, sharing an item_group_id. A feed that only sends the parent product shows one item with one barcode, which often fails GTIN checks for clothing and other variant products. Check that your feed plugin sends combinations, and fill in the GTIN on each combination, not just the product.
Checklist before you submit
- Every product you send has a picture of at least 500 × 500 pixels
- Every product has a SKU, a manufacturer, and a GTIN or manufacturer part number where one exists
- Every product has a description
- No published products are past their end date or hidden by store or customer role limits
- Prices in the feed match what an anonymous visitor sees, with tax handled for the target country
- Old prices are higher than the price, so sale prices make sense
- The feed updates at least once a day, more often if stock changes quickly
- Microdata tags is on, so Google can compare the feed with the page
- The store’s domain is verified and claimed in Merchant Center
- Shipping and returns are set up in Merchant Center for each country you sell to
Shopping listings send visitors to your product pages, so the page itself should be in good shape too. See our nopCommerce SEO checklist.
Frequently asked questions
Does nopCommerce have a built-in Google Shopping feed?
No. nopCommerce 4.80 and 4.90 don’t include a Google Shopping feed plugin; the Google plugins they include are for Analytics and two-factor sign-in. nopCommerce 5.00 adds a ChatGPT shopping feed plugin, not a Google one. Install a feed plugin, such as our free Merchant Center Feed for Google, use a feed service, or let Merchant Center read your product pages.
Can Google Merchant Center read products from nopCommerce without a plugin?
Yes. With Microdata tags on, nopCommerce adds Product structured data to every product page, and Merchant Center’s option to add products from your website reads it. It works for small, simple catalogs, but you get less control than with a feed: no category mapping, custom labels or variant details.
What if my products don’t have a GTIN?
Don’t make one up. For products without a barcode, such as handmade or own-brand goods, leave the GTIN empty and send the brand and manufacturer part number. If neither exists, the feed should send identifier_exists = no.
Why are my products approved but not showing?
Approval only means the product is eligible. Free listings and Shopping ads still rank products against other sellers using price, title, picture and data quality. Products with a GTIN can also be matched to the same product sold elsewhere.
How often should the feed update?
At least once a day. If prices or stock change during the day, update more often, or use a plugin that sends changes through Google’s API, to avoid price and availability mismatches.
Next steps
Fix the catalog first: pictures, manufacturers and identifiers. A feed only passes on what is in nopCommerce, so a clean catalog makes any feed option work better.
Need a feed that does something specific, such as sending prices for several countries or syncing with an ERP? We build custom nopCommerce plugins, and our integration work can sync feed data from your ERP into nopCommerce. Send what you sell and where to contact@cartenvo.com.