WooCommerce Sync
Push WooCommerce orders, refunds, customers, and product catalogue changes to Google Sheets in real time.
What this add-on does
WooCommerce Sync hooks into six WooCommerce events and pushes structured data to the Google Sheet (and Apps Script webhook) of your choice for each event. Each event type can target its own sheet and webhook, so Orders, Refunds, Products, and Customers can live on separate tabs or even different spreadsheets.
Requires the WooCommerce Sync add-on ($29/mo). Activate on the License page first. WooCommerce itself must be installed and active.
Supported events
Six events fire automatically based on WooCommerce hooks:
- Order created - hook:
woocommerce_new_order. Fires when any order is placed, even if unpaid. - Order completed - hook:
woocommerce_order_status_completed. Fires when an order transitions to the Complete status (usually after successful payment). - Order refunded - hook:
woocommerce_order_status_refunded. Fires on full or partial refund and includes the refund reason. - Customer created - hook:
woocommerce_created_customer. Fires when a new customer registers. - Product created - hook:
woocommerce_new_product. Fires when a new product is added to the catalogue. Captures ID, name, SKU, type, status, price, regular price, sale price, stock quantity, stock status, and date created. - Product updated - hook:
woocommerce_update_product. Fires on any product edit (price change, stock update, etc.). Enables inventory auditing and price-change tracking.
Configuring an event
- Open SheetLink -> WooCommerce Sync. Each event has its own card.
- Check Sync this event for events you want to enable.
- Paste a Google Apps Script web-app URL in the Receiver URL field for each enabled event. (You can reuse the same URL across events if you want everything on one sheet, or use different URLs for separate sheets.)
- Edit the Field -> column map to decide which columns go to which sheet letters. Left side is the WooCommerce field name (pre-filled with the default list), right side is the sheet column letter (A, B, C...). Leave the right side blank to skip a field.
- Click Save all events.
Delivery fires asynchronously so WooCommerce checkout is never slowed down. If the Google Apps Script is briefly unavailable, the retry queue catches the failure (same retry pathway as form submissions).
Recommended setup patterns
Accounting export: enable Order Completed and Order Refunded, both pointing at one sheet. Your bookkeeper gets a real-time ledger of paid-vs-refunded transactions.
Inventory dashboard: enable Product Updated pointing at a dedicated "Inventory" sheet. Map stock_quantity, stock_status, price, and date_modified. Add a Google Sheets chart over the date column to visualise stock levels.
CRM handoff: enable Customer Created pointing at your lead-capture sheet (same one that receives form submissions). Add a source column set to woocommerce via Apps Script so you can distinguish form leads from order leads.
Order fulfilment workflow: enable Order Created pointing at a dedicated "Open Orders" sheet. As your team ships orders manually they can add a shipped-at timestamp in a free-form column without affecting sync.
Troubleshooting
- Events configured but nothing arrives in the sheet: confirm WooCommerce is installed and active (SheetLink checks on every admin load; if WC is deactivated, the add-on disables itself). Also check the Receiver URL starts with
https://script.google.com/orhttps://script.googleusercontent.com/. - Some fields missing from the sheet: check the field map. Any line with an empty right side is skipped; the field is omitted entirely rather than sent with a blank column letter.
- Duplicate rows on the same order ID: multiple events may fire for one order (e.g. Order Created + Order Completed). That is expected. Filter in the sheet by
_sheetlink_wc_eventcolumn, which is auto-appended so you can distinguish them.
Ready to Get Started?
Install SheetLink Forms and connect your first form in under 10 minutes.