How to Display a Product Catalog from Google Sheets in WordPress

Updated July 2026 • 7 min read • By Fahad Murtaza

TableCrafter table builder, connect Gravity Forms, Google Sheets, Airtable, CSV, or JSON data sources
TableCrafter table builder, connect Gravity Forms, Google Sheets, Airtable, CSV, or JSON data sources

TableCrafter can render a full product catalog from a Google Sheet, complete with product images, category dropdown filters, and price-range filtering, without WooCommerce or any e-commerce plugin. This is ideal for wholesale catalogs, equipment lists, parts directories, or any product display where purchasing happens off-site or via inquiry. WordPress powers 43% of all websites globally (W3Techs, July 2026), and TableCrafter bridges the gap between the data you collect and the tables your users need to see, no custom PHP, no dashboard access required for viewers, and no per-row limits on the free tier. The free version on WordPress.org supports CSV, JSON, Google Sheets, and Excel. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST APIs, inline cell editing, export to CSV/PDF, role-based column visibility, and auto-refresh. Every table embeds on any page with a [tablecrafter] shortcode or the native Gutenberg block. WooCommerce processes over 7 billion dollars in orders monthly across all installations (WooCommerce, 2024).

When to Use This Instead of WooCommerce?

This approach is not a WooCommerce replacement for transactional stores. It fits situations like:

If you need a cart, checkout, inventory management, and shipping, use WooCommerce (which TC can also pull from as a data source).

Step 1: How Do I Structure the Google Sheet?

A product catalog sheet that maps cleanly to TC columns looks like this:

SKU | Product Name | Category | Subcategory | Price | Stock Status | Description | Image URL | Spec Sheet URL

Column-by-column guidance:

SKU

Plain text, uppercase, consistent format. Visitors may search or filter by SKU. Keep it in the first column so it acts as a natural row identifier.

Product Name

The display name. Keep it under 60 characters so it doesn't wrap badly in the table cell. If you have a long technical name, consider a separate Short Name column for display and the full name for search/filtering.

Category and Subcategory

Separate columns make two-level filtering possible. Category might be Pumps and Subcategory Centrifugal. Using separate columns lets TC build independent dropdown filters for each level. A single concatenated column like Pumps > Centrifugal only allows filtering on the full string.

Use exact, consistent spelling. Run a Sheets data validation rule on both columns using a defined list of valid values, this prevents organizers from accidentally creating a new category through a typo.

Price

Numeric values only, no dollar signs, no commas. Enter 1299.99 not $1,299.99. TC's Number column type and price-range filter require numeric values. TC's column formatter can prepend $ and add comma separators in the display layer.

Stock Status

Text values like In Stock, Low Stock, Out of Stock, Discontinued. TC renders these as color-coded badges. Define the allowed values in a Sheets dropdown (Data → Data validation) to keep values consistent.

Description

Keep this brief, one to two sentences. Long descriptions overflow table cells. TC can show the full description in an expandable row detail panel on click, so the cell itself just needs a teaser.

Image URL

Full HTTPS URL to the product image. The image must be publicly accessible, Sheets cannot host images for external rendering. Options:

Spec Sheet URL

Link to a PDF or product page. Set the TC column type to URL. TC renders this as a clickable link.

Step 2: How Do I Connect the Sheet?

Product catalogs typically contain pricing and inventory information you don't want scraped as raw CSV. Use the private API method with an API key restricted to the Sheets API and your domain.

Set cache duration to 300 seconds (5 minutes). Product catalogs change less frequently than event schedules or leaderboards, and a longer cache reduces API calls and speeds up page loads.

Step 3: How Do I Map Columns in TableCrafter?

In the data source column mapping interface:

Step 4: How Do I Configure Badge Colors for Stock Status?

In the Stock Status column editor, set badge rules:

Step 5: How Do I Create the Table?

  1. Go to TableCrafter → Tables → Add New.
  2. Assign the product catalog data source.
  3. Set Default sort column to Product Name ascending, or leave unsorted to preserve the sheet's order.
  4. Enable Category filter, Subcategory filter, Price range filter, and Stock Status filter.
  5. Enable Search (searches across SKU, Product Name, and Description).
  6. Enable Export if your sales team needs to download the filtered results as CSV.
  7. Set Rows per page to 25 or 50 for large catalogs.
  8. Enable Expandable row detail to show Description and full-size image on row click.
  9. Save the table. Note the ID (e.g., 8).

Step 6: How Do I Embed the Catalog?

Go to the WordPress page where you want the product catalog to appear, add a Custom HTML block or Shortcode block, and paste the shortcode TableCrafter generated after you configured the table:

[tablecrafter id="8" filter="true" search="true" export="true"]

The filter="true" attribute adds per-column dropdown filters so visitors can narrow the catalog by category, brand, or any other column with repeating values. The search="true" attribute adds a search box that runs across all visible columns simultaneously. The export="true" attribute adds a CSV download button, useful if buyers want to save a filtered product list. After publishing, view the page while logged out to confirm the table renders for public visitors. If the table appears empty or shows a connection error, return to the TableCrafter admin, verify the Google Sheet URL is published and accessible, and re-save the table configuration.

How Does Maintaining the Catalog Work?

The product team workflow is entirely in Google Sheets:

No one needs WordPress access for routine catalog maintenance. This separation of content management from site management is the key operational benefit of the Sheets-as-catalog approach.

Image URL gotcha: If you move or rename images in your media library or CDN, the Image URL column in Sheets will break and TC will render broken image icons. Use permanent CDN URLs or set up a redirect layer for image URLs rather than direct WordPress upload paths, which can change between environments.
Large catalogs: The Google Sheets CSV export handles up to roughly 10,000 rows reliably. If your product catalog exceeds that, consider splitting into multiple sheets by category and creating separate TC data sources per category, or switch to the API connection method with explicit range parameters to batch the data.

Frequently Asked Questions

How Does When to Use This Instead of WooCommerce Work?

This approach is not a WooCommerce replacement for transactional stores. It fits situations like:

What Is TableCrafter?

TableCrafter is a WordPress plugin that turns data from Gravity Forms, Google Sheets, Airtable, Notion, REST APIs, CSV files, and WooCommerce into interactive, sortable, filterable frontend tables. Embed any table on any WordPress page with the [tablecrafter] shortcode or the native Gutenberg block. No PHP or custom development required. The free version supports CSV, JSON, Google Sheets, and Excel. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST APIs, inline cell editing, export to CSV and PDF, role-based column visibility, and auto-refresh.

Does this require PHP or developer skills?

No. TableCrafter is configured entirely through the WordPress admin interface. You choose your data source, map fields to columns, and set display preferences using point-and-click controls. Embedding uses the [tablecrafter] shortcode or the native Gutenberg block.

Is the free version sufficient or do I need Pro?

The free plugin on WordPress.org supports CSV, JSON, Google Sheets, and Excel sources with unlimited tables, rows, and columns. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST API sources, inline cell editing, bulk row actions, export to CSV and PDF, role-based column visibility, and auto-refresh every N seconds.

Ready to try it?

TableCrafter is free on WordPress.org. Pro unlocks inline editing, role-based permissions, and advanced data sources.