One step ahead with these plugins

Inventory Automation turns your WooCommerce orders into Perfex invoices and inventory movements — automatically. Every checkout creates a Perfex invoice with the matching line items, optionally creates an Inventory Pro delivery note that reduces stock on hand, expands bundle SKUs into their components, and logs every webhook for replay and debugging.

Required dependency: the Inventory Pro module must be installed and active. Requires: Perfex CRM 3.0+, PHP 8.1+.

Table of Contents


Installation

Requirements

Installation Steps

  1. Install Inventory Pro first (Setup → Modules → Inventory Pro → Activate) and configure at least one warehouse.
  2. In Perfex, go to Setup → Modules and click Upload Module.
  3. Select the inventory_automation ZIP file and click Install.
  4. Click Activate — the module creates all required database tables automatically.
  5. Go to Inventory Automation → License Settings and enter your license key (or skip — you have a 30-day free trial).

Tip: After activation you will find “Inventory Automation” in the left sidebar with sub-items for Webhook Inbox, Sales Reports, Health, Documentation, Settings and License Settings.

Quick Start (5 minutes)

  1. Activate the module (see Installation).
  2. In Inventory Automation → Settings, copy the HMAC Secret.
  3. In WooCommerce, go to WooCommerce → Settings → Advanced → Webhooks → Add webhook:
    • Status: Active
    • Topic: Order created
    • Delivery URL: https://your-perfex-domain.com/inventory_automation/webhook_order_created
    • Secret: paste the HMAC secret from step 2
  4. Create a test order in WooCommerce.
  5. Check Inventory Automation → Webhook Inbox — you should see the webhook with status processed.
  6. Check Sales → Invoices — the invoice is there.

That’s it. Every new order now creates an invoice automatically.

Webhook Setup

WooCommerce side

  1. Go to WooCommerce → Settings → Advanced → Webhooks and click Add webhook.
  2. Set Name = Perfex CRM - Inventory Automation, Status = Active, Topic = Order created (optionally also Order updated).
  3. Set Delivery URL = https://your-perfex-domain.com/inventory_automation/webhook_order_created.
  4. Save the webhook and copy the Secret WooCommerce shows.

Perfex side

  1. Go to Inventory Automation → Settings.
  2. Paste the WooCommerce secret into the HMAC Secret field and click Save Settings.

What is HMAC?

HMAC (Hash-based Message Authentication Code) proves that a webhook really comes from WooCommerce and was not modified in transit. The signature is computed as:

signature = base64(hmac_sha256(body, shared_secret))

WooCommerce sends it in the X-WC-Webhook-Signature header. Inventory Automation recomputes the signature and rejects the request if it does not match.

Settings

All configuration lives under Inventory Automation → Settings: the HMAC secret, an optional IP allowlist, the B2C customer group, auto-delivery via Inventory Pro, automatic payment records, and the auto-rerun cron for failed webhooks.

Inventory Automation settings in Perfex CRM — HMAC, bundles, auto-delivery and auto-rerun

Setting Default Description
hmac_secret random 64-char hex HMAC key for webhook signature verification
ip_allowlist empty CSV of allowed source IPs (empty = allow all)
b2c_group_id 0 Perfex customer group for newly created B2C clients
autodelivery_enabled 1 Auto-create an Inventory Pro delivery note for every new invoice
inventory_pro_default_warehouse_id 0 Warehouse for auto-delivery (0 = use Inventory Pro default)
auto_rerun_enabled 0 Cron re-processes failed webhook entries from the inbox
auto_rerun_interval_minutes 30 Cron check interval (5–1440)
auto_rerun_max_age_hours 24 Only retry failed entries younger than X hours
auto_rerun_max_per_run 10 Max retries per cron execution

IP allowlist (optional but recommended)

Find your WooCommerce server’s public IP (e.g. curl ifconfig.me) and enter it under Settings → IP Allowlist. Requests from non-allowlisted IPs are rejected with HTTP 403.

Webhook Inbox

Every incoming webhook is stored in the Webhook Inbox with its raw payload, headers, source host, and processing status. Filter by time range, search by order/host/URI, inspect the payload, and re-run any entry after fixing the underlying cause.

Inventory Automation Webhook Inbox in Perfex CRM — WooCommerce orders with status, caller and replay actions

Bundle Management & Health Check

A bundle is a single SKU that represents multiple physical items. Example: bundle SKU 00050 contains 1× 00040 + 1× 00020. When an order contains 00050, the system adds the bundle line at the original price, adds each component line at 0.00, and (if auto-delivery is enabled) reduces stock for all components.

Define bundles under Settings → Bundle Management — one row per component (Bundle SKU, Component SKU, Quantity).

SKU matching order (Inventory Pro)

The system tries these Perfex item columns, in order, to find the Inventory Pro item — first match wins:

commodity_code  →  sku_code  →  sku  →  item_code  →  code  →  description

Health Check

Before you rely on auto-delivery in production, run Inventory Automation → Health. It verifies that every SKU in your bundle configuration exists as an item in Perfex and flags anything missing — so you catch problems before a live webhook fails.

Inventory Automation bundle health check in Perfex CRM — verifies bundle SKUs exist before webhooks fail

Sales Reports

Three server-side DataTable reports with paging, sorting and free-text search, all exportable to CSV or Excel (full-year data, not just the current page):

Licensing & Activation

Inventory Automation runs in trial mode for 30 days after installation. Once the trial expires the module blocks its pages and the webhook endpoint returns HTTP 403 until a valid license key is activated.

Activating your license

  1. After purchase you receive a license key by email in the form ABO-XXXXX-XXXXX-XXXXX-XXXXX.
  2. In Perfex, go to Inventory Automation → License Settings, paste the key and click Submit.
  3. The License Settings page then shows a green Valid License status. Use Check License Now to force an immediate re-validation.
Concept Detail
Trial period 30 days from first installation, full feature set
License key format ABO-XXXXX-XXXXX-XXXXX-XXXXX
Domain binding 1 license key = 1 Perfex production domain
Validation interval Once per day (cached for 1 hour)
Server unreachable Falls back gracefully to the last valid cached result

Troubleshooting

Webhook returns 401 / signature mismatch

The HMAC secret in Perfex does not match the secret WooCommerce uses. Compare Settings → HMAC Secret with the secret shown in WooCommerce → Settings → Webhooks — they must be identical (case-sensitive).

Webhook returns 403 / IP rejected

The source IP is not in the allowlist. Add the WooCommerce server’s public IP under Settings → IP Allowlist.

“no inventory_pro items matched for invoice”

The invoice was created but the SKUs could not be matched to any Inventory Pro item. Open the Perfex item and add the WooCommerce SKU to one of the matching columns (commodity_code, sku_code, sku, item_code, code, description).

Bundle component appears but stock is not reduced

The SKU matched a Perfex item, but the Inventory Pro item lookup failed — the component is on the invoice but not on the delivery note. Verify the SKU is in one of the matching columns and that the item exists in Inventory Pro’s stock table.

Inbox shows status failed

Click the entry to see the reason (JSON parse error, database error, or HMAC mismatch). Fix the cause and press Re-Run. When contacting support, include a screenshot of the Health page and the full error message.

Integrations & Module Suite

Inventory Automation is part of the VOLLSTART module suite for Perfex CRM. It works standalone for invoicing, and unlocks stock automation together with Inventory Pro:

See the full Inventory Automation product page for pricing and the 30-day free trial.

Support

Login