How to connect WooCommerce to AskVault
What this integration unlocks
One main skill: wc_order_status. Customer asks "where is my order?", the bot looks up live status from WooCommerce, replies with tracking link, shipping carrier, and estimated delivery.
Same flow as the Shopify integration but for WooCommerce stores running on WordPress. Available on Growth and above. Growth+
Setup
Five minutes end-to-end.
- Generate WooCommerce API credentials. In your WordPress admin, navigate to WooCommerce > Settings > Advanced > REST API. Click Add Key.
- Configure the API key.
- Description: "AskVault Order Lookup" (or similar).
- User: A WordPress user with shop_manager or administrator role.
- Permissions: Read only.
- Click Generate API Key. WordPress shows you a Consumer Key and Consumer Secret. Copy both. You only see them once.
- In AskVault, open AI Agents > Skills > wc_order_status > Connect WooCommerce.
- Paste the store URL, Consumer Key, and Consumer Secret. Click Test Connection. AskVault makes a sample API call to verify.
- Save.
Test by asking the bot "where's my order?" with a known test order ID. Bot should return live status.
Permissions and scopes
The WooCommerce REST API uses key-based auth, not OAuth. Three permission levels:
- Read. Default. Bot can look up orders, customers, products, shipping zones. Cannot modify anything.
- Write. Bot can update orders. Not needed for
wc_order_statusand we recommend against granting it. - Read/Write. Both. Skip unless you have a specific write use case.
Always use read-only unless absolutely needed.
Store URL formatting
The store URL must include the protocol and domain. Examples:
https://shop.acme.co(correct)https://acme.co/shop/(correct, if WooCommerce runs at a subpath)acme.co(wrong, missing protocol)https://acme.co/shop(wrong, missing trailing slash for subpath stores)
If you're not sure, paste your store's homepage URL and AskVault auto-corrects.
What the customer sees
When a customer asks "where is my order?":
Sure! Could you share your order number, or the email you used at checkout?
Customer responds. Bot looks up via WooCommerce API. About 2 to 4 seconds later:
Here's the status of your order #4521:
Status: Shipped Carrier: DHL Express Tracking: [tracking-link] Estimated delivery: May 20, 2026
Anything else I can help with?
If the order can't be found (wrong number or different email), the bot offers to escalate to a human.
Verification mode
Two verification modes for matching the customer to the order:
- Loose (default). Customer provides either the order number OR the email. First match wins.
- Strict. Customer must provide both, and they must match the same order. Useful for sensitive stores where order numbers might be guessable.
Configure under Skills > wc_order_status > Verification Mode.
Multi-store setup
Each WooCommerce store needs its own AskVault workspace and own API key. Cross-store lookups aren't supported. For a 3-store retailer, you'd have 3 separate AskVault workspaces.
Shipping zones and carriers
The bot returns whatever carrier and tracking info WooCommerce has stored. For stores using shipping plugins (WooCommerce Shipment Tracking, AfterShip), the integration picks up tracking data from the plugin's custom fields automatically.
If your store uses a tracking plugin AskVault doesn't auto-detect, configure the custom field mapping under Skills > wc_order_status > Custom Fields.
Limits
- WooCommerce REST API rate limits. No hard limit, but most WordPress hosts throttle at about 10 to 60 requests per minute. AskVault stays well under this for normal traffic.
- Order history depth. No hard cap on the WooCommerce side, but very old orders (3+ years) might be archived in some setups.
- API timeout. AskVault times out the lookup at 10 seconds. Slow WordPress hosts may fail the lookup; cache or optimize your host.
Common pitfalls
Test connection fails with 401. Wrong Consumer Key or Consumer Secret. Re-generate in WooCommerce and re-paste.
Test connection fails with 404. Store URL is wrong. WooCommerce's REST API lives at {store_url}/wp-json/wc/v3/. Confirm by visiting that URL in a browser; you should see a JSON error about missing auth (not a 404 page).
Slow lookups (>5 seconds). WordPress host is slow. AskVault can't speed this up. Cache product and shipping zone data, or move to a faster WooCommerce host.
Tracking link missing. Your shipping plugin uses a custom field AskVault doesn't auto-detect. Configure the mapping or contact support.
FAQ
Does this work with WooCommerce subscriptions?
Yes for read-only lookup of subscription state. For subscription modifications (pause, cancel), the bot escalates to a human.
Can the bot apply a discount code?
With the optional discount_negotiator skill, yes. Codes you've already created in WooCommerce can be offered within configurable bounds. Business+
What about WooCommerce extensions like WooSubscriptions or WooMemberships?
Custom field mapping covers most. For complex setups (membership levels affecting product visibility), use the custom_webhook skill to call your custom logic.
Does the bot work with WooCommerce Multistore?
Each store needs its own API key and workspace. Cross-store lookups aren't supported.
Is there a webhook for real-time order updates?
WooCommerce has built-in webhooks. Configure them under WooCommerce > Settings > Advanced > Webhooks pointing at AskVault's URL (visible under Integrations > WooCommerce > Webhooks). The bot then proactively notifies the customer about state changes.
Related guides
- Order Status (WooCommerce) skill
- Order Status (WISMO) skill for Shopify
- Cart recovery skill
- How to add an AI chatbot to your WordPress site
- Shopify integration setup