4 min read

Import WooCommerce Products from Google Sheets

You can import WooCommerce products from Google Sheets with Shirely without downloading a CSV to your computer. Start a run on demand, or save a supported Google Sheets import as an Automation slot.

Editing a cell in the spreadsheet does not itself update WooCommerce. An Automation slot can run a supported import on its schedule; WP-Cron timing depends on site visits, so use system cron and WP-CLI when timing must be reliable. Check Run History to confirm completion.

Choose a public or private Google Sheet

Sheet type Authentication Use it when
Published sheet No Shirely credentials required The data can safely be accessible through a Google “Publish to web” URL.
Private sheet Google Service Account The catalog should remain private or the same sheet will also receive exports.

A public sheet is public to anyone who receives its published URL. Do not publish confidential prices, supplier data, personal information or internal notes just to avoid setting up credentials.

For a private sheet, upload your Google Service Account credentials in Shirely settings, copy the Service Account email and share the sheet with that address. Give it Editor access when Shirely also needs to export to the sheet.

Prepare recognizable product columns

Keep the first row for field names and one product record per row for simple products. Start with a small sample:

sku,title,regular_price,stock_status
DRILL-100,Power Drill,149.99,instock
DRILL-200,Cordless Drill,189.99,instock

Use a unique, stable SKU for repeat imports. Product names can change and should not be used as unique identifiers for catalog records. If you are updating existing products, test that the same SKU resolves to the intended product before importing the full sheet.

Keep values in a predictable format. Preserve leading zeros in identifiers, avoid merged cells and decorative header rows, and do not mix notes into data columns. Keep the spreadsheet structured as a data table.

How the import runs

  1. Prepare the Google Sheet and decide whether it will be public or private.
  2. Connect or provide the sheet URL through Shirely’s Google Sheets workflow.
  3. Confirm that the headers map to the product fields you intend to import.
  4. Run a small sample and verify the products in WooCommerce.
  5. Only then run the complete sheet.

The exact screen depends on the Google Sheets path you use. A published-sheet import can continue through the standard mapping workflow. A configured saved-sheet card in Shirely’s Google Sheets screen re-fetches the current sheet, auto-maps recognized headers and processes the import inline without the normal preview screen.

The saved-sheet path therefore does not show create, update or orphan counts before processing. After the run, verify the completed result and review its created, updated, skipped and error totals.

Update existing products without treating names as keys

Every product row is processed on each product import. Repeat imports rely on matching instead: use SKU or another supported stable identifier so the run targets the existing product.

If the sheet is only changing prices or stock, keep the test file focused. Do not add descriptions, images or category columns unless you intend to review and import those fields too.

Public import and private round trip are different

A published sheet is useful as an import source, but every Google Sheets export requires a Service Account. To run a controlled export-edit-reimport round trip, use a private sheet shared with your Service Account, export the current catalog, review the cells, and start a separate import when the changes are approved.

Shirely does not create a live feed between the two systems. The delay between editing and importing is deliberate: it gives you a review point before WooCommerce changes.

Schedule only after the manual workflow works

Shirely 1.3 can save a supported Google Sheets import as an Automation slot. Start with Run now and inspect Run History before assigning an hourly, twicedaily or daily WP-Cron schedule.

WP-Cron depends on site traffic and does not guarantee an exact start time. For large or time-sensitive jobs, system cron with WP-CLI is more predictable. Do not overlap runs that can write the same products, terms or WPML/WCML groups.

Troubleshooting Google Sheets product imports

  • The public URL fails: confirm that the sheet was published to the web, not merely shared with one Google account.
  • A private sheet cannot be read: share it with the exact Service Account email configured in Shirely.
  • No columns are recognized: remove decorative rows and use supported field headers in the first row.
  • Products duplicate: check for missing, changed or non-unique SKUs before another run.
  • Only some fields should change: test a focused sheet containing identifiers and the intended update columns.

When you also use WPML

For multilingual catalogs, Matrix Mode keeps languages in columns on the same row. That specialized workflow has its own identifiers and language checks. Continue with importing multilingual WooCommerce products from Google Sheets.

Teams that review translations in a shared sheet can also use Google Sheets as a WooCommerce product translation workspace before an authorized user starts the import.

For both directions, Service Account rules and the complete supported data scope, see the WooCommerce Google Sheets import and export hub. If you prefer a file workflow, use the WooCommerce CSV product import guide.