> ## Documentation Index
> Fetch the complete documentation index at: https://docs.helmkit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# WooCommerce Integration

> Sync orders and bookings from your WooCommerce store into Helm with a configurable workflow editor

Sync orders and bookings from your WooCommerce store into Helm automatically. The Helm WooCommerce plugin sends booking events and product updates in real time, while the workflow editor lets you control how incoming data is filtered, mapped, tested, and published.

## Requirements

* WordPress 6.0 or later
* WooCommerce 7.0 or later
* PHP 7.4 or later
* An active Helm account with admin access

The plugin works with both vanilla WooCommerce orders and YITH Booking & Appointment products.

## Installation

<Card title="Download Plugin" icon="download" href="https://downloads.helmcdn.com/helm-woocommerce-latest.zip">
  Download the latest version of the Helm WooCommerce plugin (.zip)
</Card>

<Steps>
  <Step title="Download the plugin">
    Click the download card above to get the latest `helm-woocommerce-latest.zip` file.
  </Step>

  <Step title="Upload to WordPress">
    In your WordPress admin, go to **Plugins → Add New → Upload Plugin**. Choose
    the downloaded `.zip` file and click **Install Now**.
  </Step>

  <Step title="Activate the plugin">
    After installation completes, click **Activate Plugin**.
  </Step>

  <Step title="Connect to Helm">
    Go to **WooCommerce → Settings → Helm** in the WordPress admin. Enter your
    Helm API key and organization ID, then click **Save changes**. You can find
    these values in the Helm dashboard under **Settings → Integrations →
    WooCommerce**.
  </Step>

  <Step title="Verify the connection">
    After saving, the settings page shows a connection status. If the status shows as connected, your WooCommerce store is linked to Helm and orders will start syncing.
  </Step>
</Steps>

## What syncs from WooCommerce

When you connect WooCommerce to Helm:

* **Orders and booking events** — New and updated WooCommerce bookings sync into Helm with customer details, line items, and booking status
* **YITH booking data** — YITH Booking & Appointment fields sync, including dates, times, and participant counts
* **Products and matching experiences** — Product names, images, and status sync to the corresponding Helm experience
* **Customer information** — Names, email addresses, phone numbers, and any custom fields included in the WooCommerce payload
* **Order status changes** — Processing, completed, cancelled, and refunded statuses update in Helm automatically
* **Order notes** — Customer-provided notes and special requests appear in Helm

## How sync works

The plugin sends signed webhooks to Helm whenever a booking or product changes in WooCommerce. Booking events run through the published workflow for that connection, and product updates keep the matching Helm experience aligned.

The sync is one-way from WooCommerce to Helm. WooCommerce is the source of truth for store data, so make edits to products, orders, and booking details in WooCommerce if you want those changes to stay synchronized.

## Workflow editor

Each WooCommerce connection has a visual workflow editor. Use it to decide which events Helm should process and how incoming data becomes a booking.

From the workflow editor, you can:

* **Filter events at the trigger** — Choose whether `Booking Created`, `Booking Updated`, and `Booking Cancelled` should run the workflow
* **Build branching logic** — Add **Condition** nodes that check payload fields, mapped values, or resolved Helm data such as experience title, tags, or whether the matched experience is active
* **Stop cleanly** — Add **End** nodes to acknowledge an event without creating or updating a booking
* **Work in drafts** — Changes auto-save to a draft while the last published version keeps running live
* **Simulate safely** — Test the current draft against a real booking payload before you publish

For the step-by-step guide, see [WooCommerce Workflow Editor](/features/integrations/woocommerce-workflows).

<Info>
  Need to skip inactive WooCommerce products before they create bookings? The
  workflow guide includes a setup that branches on whether the resolved Helm
  experience is active.
</Info>

## Product status and experience availability

When WooCommerce sends a product status, Helm uses it to update the matching experience's `enabled` state:

* **Published products** stay active in Helm
* **Draft, pending, or private products** are disabled in Helm

This helps keep inactive products from showing up as bookable inside Helm. If you also want incoming bookings for inactive products to stop before booking creation, add a workflow condition that checks whether the resolved experience is active.

## Notes templates

You can create templates that automatically generate run notes from your WooCommerce order data. Templates use a simple placeholder syntax — wrap any order field in double curly braces like `{{ field_name }}` and Helm fills in the value when the order syncs.

For example, a template like:

```
Dietary needs: {{ dietary_requirements }}
Hotel: {{ hotel_name | default: 'Not provided' }}
```

would produce notes with the actual values from each order. The `| default:` filter lets you set a fallback value when a field is empty.

You can build and preview templates in the workflow editor. The editor shows a live preview so you can see exactly how your notes will look before saving.

## Updating the plugin

<Steps>
  <Step title="Download the latest version">
    Download the newest version from the card at the top of this page.
  </Step>

  <Step title="Deactivate the current plugin">
    In WordPress admin, go to **Plugins**, find **Helm WooCommerce**, and click
    **Deactivate**.
  </Step>

  <Step title="Delete the old version">
    After deactivating, click **Delete** to remove the old plugin files.
  </Step>

  <Step title="Install the new version">
    Go to **Plugins → Add New → Upload Plugin**, upload the new `.zip` file, and activate it. Your settings are preserved — no need to reconfigure.
  </Step>
</Steps>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Orders aren't appearing in Helm">
    Check that the plugin is activated and the connection status shows as connected in **WooCommerce → Settings → Helm**. If the status shows an error, verify your API key and organization ID. For recent orders, allow a few seconds for the sync to complete.
  </Accordion>

  <Accordion title="Workflow changes aren't affecting incoming bookings">
    Workflow edits save to a draft first. Open the workflow editor and publish
    the draft to make it live. If you want future bookings reprocessed with the
    new logic, use **Publish & update future runs** when you publish.
  </Accordion>

  <Accordion title="Draft or private products are still active in Helm">
    Product status updates sync from WooCommerce to the matching Helm
    experience. Open the product in WooCommerce and save it to trigger a fresh
    update if needed. If you want bookings for inactive products to stop
    automatically, publish a workflow condition that checks **Experience is
    active** before booking creation.
  </Accordion>

  <Accordion title="Connection status shows an error">
    Double-check that your API key and organization ID are correct. These values
    are available in the Helm dashboard under **Settings → Integrations →
    WooCommerce**. If the error persists, ensure your server can make outbound
    HTTPS requests to `helmkit.com`.
  </Accordion>

  <Accordion title="YITH booking data isn't syncing">
    The plugin supports YITH Booking & Appointment for WooCommerce. Ensure the
    YITH plugin is installed and active. Booking data only syncs for orders that
    contain YITH booking products — standard WooCommerce products sync as regular
    order line items.
  </Accordion>

  <Accordion title="Order status changes aren't updating">
    Status changes sync when the order is saved in WooCommerce. If you change a
    status through a bulk action or external tool, the webhook may not fire. Open
    the order in WooCommerce and save it to trigger a sync.
  </Accordion>

  <Accordion title="Plugin update lost my settings">
    Settings are stored in the WordPress database, not in the plugin files. If you follow the update process (deactivate → delete → reinstall), your API key and configuration are preserved. If settings are missing, re-enter them from the Helm dashboard.
  </Accordion>
</AccordionGroup>
