Importing Product Fields from Google Sheets - eCommix
TutorialOne-Way Import

Importing Product Fields from Google Sheets

Learn which product-level Shopify fields you can import from your own Google Sheets spreadsheet, and the exact format each one expects.

Hernán Demczuk
Hernán Demczuk
Author
9 min read

This tutorial assumes you already know how One-Way Import works and how to configure it. If not, please review the How to Import Data from Google Sheets into Shopify tutorial first.

One-Way Import reads a spreadsheet you already have and writes it into Shopify. Your columns can be named anything - Product Name, SUPPLIER_TITLE, descripcion - because in the Format Data step you map each of your columns to the Shopify field it means. This guide is a reference for the product-level fields you can map to, and the format each one expects in the cell.

Product-level fields describe the product as a whole: its title, description, vendor, tags, status, and SEO. For fields that differ per variant - price, SKU, barcode, weight - see Importing Product Variant Fields from Google Sheets. For images, see Importing Product Images from Google Sheets.

Info. Only the columns you map are touched. Any column you leave unmapped or explicitly set to Ignore Column is neither read nor written, so notes, formulas, and internal working columns in your sheet stay exactly as they are. A mapped column that is blank on a given row is also skipped for that row - One-Way Import never clears a value in Shopify by leaving a cell empty.

1. How a row is matched to a product

Before any field is written, eCommix has to decide which product a row refers to - and whether that product already exists. It works through your mapped identifier columns in this order:

If one of those resolves to an existing product, the row updates it. If none of them do, and the row has a Handle (Product) or Title (Product), the row creates a new product. If a row has none of these identifiers at all, it is skipped with SKIPPED: Missing product or variant identifier in the STATUS column.

Warning. Matching on Title (Product) alone is risky in a store with near-identical titles. eCommix guards against the worst case: if a title matches a product whose options do not include the option names your row uses, the row fails with a message telling you to add a Handle (Product) or Id (Product) column rather than silently updating the wrong product. Map a handle or ID whenever you can.

2. Identifier fields

FieldFormatExample
Id (Product)Numeric ID or full gid:// global ID8471234567890
Handle (Product)URL-friendly slug: lowercase, words joined by hyphens. Must be unique in your store when creating.merino-wool-beanie
Title (Product)Plain textMerino Wool Beanie

When you are creating products, Handle (Product) is worth mapping even if your source sheet does not have one: it gives every row a stable, exact identifier, so re-running the same import updates the products it created the first time instead of creating duplicates.

3. Descriptive fields

FieldFormatExample
Body HTML (Product)The product description. HTML is accepted and rendered as-is; plain text also works.<p>Soft, itch-free merino.</p>
Vendor (Product)Plain textNorthwind Knitwear
Type (Product)Plain text - your own free-form product typeHat
Category (Product)A Shopify taxonomy category. Accepts the category name or a full gid://shopify/TaxonomyCategory/... ID.Hats
Tags (Product)Comma-separated list. Spaces around commas are trimmed.winter, wool, gift
Collections (Product)Comma-separated list of collection handles (not titles).winter-2026, gifts-under-50

Info. Category (Product) is resolved against Shopify's product taxonomy. If the name you provide does not match a taxonomy category, the category is simply left unset rather than failing the row - so check the result in Shopify if you are relying on it.

Collections (Product) adds the product to the collections you list. It does not remove the product from collections you leave out, and it only accepts handles - winter-2026, not Winter 2026.

4. Status, visibility, and SEO

FieldFormatExample
Status (Product)One of ACTIVE, DRAFT, or ARCHIVEDACTIVE
Gift Card (Product)Boolean - TRUE, YES, or 1 for true; anything else is false. Only applies when creating a product.FALSE
Template Suffix (Product)The theme template suffix, without the product. prefixwholesale
SEO Title (Product)Plain textMerino Wool Beanie | Northwind
SEO Description (Product)Plain textItch-free merino beanie, made in New Zealand.

Boolean columns are forgiving about case, so true, True, and TRUE all work. Because anything unrecognised counts as false, prefer writing TRUE/FALSE explicitly rather than leaving a cell blank when you mean false - a blank cell is skipped entirely, which is not the same as setting the value to false.

5. Option names

Option names are product-level even though option values are per-variant, so they live in the product columns:

To create a product, eCommix requires Option 1 Name (Product) together with Option 1 Value (Variant). A product with no real options should use Shopify's convention: option name Title with value Default Title.

You only need to fill the option name on the first row of each product. eCommix carries option names down to the rest of the rows in the same product group automatically, matching the Shopify CSV convention - so a supplier sheet that only names the option once still imports correctly. A name you do write on a later row is never overwritten.

6. Rows that share a product

Rows are grouped into products by Handle (Product), then Title (Product), then Id (Product) - so every row carrying the same handle is understood as one product with several variants.

Within a group, product-level fields are applied only from the first row. If you fill in Vendor (Product) or Tags (Product) on the second and third rows of the same product, those values are ignored - the product is written once, from the first row that resolves it. This is what you want in practice: it means a supplier sheet that repeats the vendor on every variant row does not fire three redundant updates at Shopify.

The practical rule for laying out your sheet:

7. Metafields and other dynamic columns

Beyond the built-in product fields, you can map columns to product metafields, sales channel publication, and region catalog visibility. These appear in the field picker alongside the standard fields, grouped by resource, and are written after the product itself is saved.

Like the other product-level fields, these are applied from the first row of each product group only.

8. Validate before importing

Always run Validate first. It reads your sheet and checks every row against Shopify without writing anything to your store, then reports the outcome per row in the STATUS column. After a real import, the same column shows what happened:

FAQ

Do my spreadsheet column names have to match Shopify's field names?

No. One-Way Import works from your own header row - you map each of your columns to a Shopify field in the Format Data step. The field names in this guide are the Shopify-side targets you map to, not names your sheet has to use. If your headers happen to be close, Map automatically will match most of them for you in one click.

What happens if I leave a mapped cell blank?

Nothing is written for that field on that row. One-Way Import treats a blank cell as "no value supplied", not as "clear this value" - so an empty cell can never wipe data in your store. To clear a field, edit it in the Shopify admin.

Can I create products and update products in the same sheet?

Yes. eCommix decides per row: if the row's identifiers match an existing product it updates it, and if they do not, it creates a new one. A mixed sheet of new and existing products imports in a single run, and the STATUS column tells you which rows did what.

Why were my Vendor and Tags ignored on some rows?

Because those rows are continuation rows of a product that was already written. Product-level fields are applied only from the first row of each product group, so fill them on the first row of the group and leave them blank - or leave them repeated but unused - on the rest.

How do I set product options for a product with no variants?

Use Shopify's default convention: Option 1 Name (Product) set to Title and Option 1 Value (Variant) set to Default Title. Both are required to create a product, even one that has only a single variant.

Related articles

More guides in this category if you want to keep going deeper on the same workflow.

Ready to manage your Shopify store with Google Sheets?

Install eCommix free and start syncing your products, orders, and inventory in minutes.

Install Free on Shopify →