WooCommerce is supported as a Source in Flxpoint. This guide shows you how to create the WooCommerce Source, connect the REST API with your store’s Domain, Consumer Key, and Consumer Secret, and map required fields for inventory. By the end, you’ll be able to run or schedule Get Inventory [Primary] and verify that stock and pricing are flowing correctly.
How To Connect
📋 Phase 1: Create Your WooCommerce Source
+
Add Source in Flxpoint
Go to Sources → + Add Source.
Name it “WooCommerce”.
Choose Vendor Warehouse as the Source Type.
(Assign a vendor if you want reporting & portal features.)
Start Integration Setup
On the Source page, click Start Creating Integrations and select Get Inventory [Primary].
🔐 Phase 2: Connect WooCommerce
+
Open a New Connection
In Step 1, click + New Connection.
Use a clear name like WooCommerce API.
Enter Your Credentials
You’ll need 4 values from your WooCommerce store:
After entering the values in Flxpoint, click Test Connection → Save Connection.
- Domain → Your store URL (e.g. https://yourstore.com)
- Consumer Key
- Consumer Secret
- Connection Name → Any label you like
Quick path: WooCommerce Admin → Settings → Advanced → REST API.
Create a new key with Read/Write permissions, then copy the Consumer Key and Consumer Secret.
Locating Consumer Key & Secret (click to expand) 🎬
- Login to your WordPress admin panel.
- Go to Plugins → Add New.
- Install and activate WooCommerce.
- Go to WooCommerce → Settings.
- Open the Advanced tab.
- Click REST API.
- Click Add Key.
- Fill in Description and select the User.
- Set Permissions to Read/Write.
- Click Generate API Key and copy your Consumer Key & Consumer Secret.
- Paste them into Flxpoint and click Test Connection → Save Connection.

⚙️ Phase 3: Configure & Map
+
Configure Settings
In Step 2, set any special options you need (e.g., archiving behavior or price adjustments).
Define a Mapping Template
In Step 3, map fields like SKU, Quantity, and Price to Flxpoint.
Add workflows if you want to enrich or transform product data.
✅ Phase 4: Run & Verify
+
Save & Run
Save and complete your setup.
From the integration page, click Run Integration or set a schedule.
Pro tip: After the first run, spot-check a few SKUs to confirm stock and prices match WooCommerce.
Product Operations
Get Inventory (Primary)
Supported | WooCommerce
Introduction to WooCommerce — Get Inventory [Primary]
This integration retrieves your WooCommerce catalog (products, pricing, stock, images, and categories) via the WooCommerce REST API and maps it into your Source Inventory. Use it to keep product data and availability up to date.
The WooCommerce Get Inventory [Primary] integration lets you:
- Pull the full WooCommerce product catalog along with Stock Quantity and pricing.
- Import core identifiers (SKU, Name) plus descriptions, categories, and images.
- Bring in dimensions & weight for shipping logic.
-
1 Connect to WooCommerce: Click Create Connection and enter:
-
Domain: your store URL (e.g.,
https://example.com
). - Consumer Key & Consumer Secret (see “Where do I find my credentials?” below).
-
Domain: your store URL (e.g.,
- 2 Configure Settings: Choose Archive/Un-Archive Inventory behavior and scheduling.
- 3 Define a Mapping Template: Select or create Get Source Products; map WooCommerce fields (SKU, Name, Prices, Stock Quantity, etc.).
- 4 Run or Schedule: Enable Scheduled or click Run Integration to fetch the latest data.
Where do I find my WooCommerce credentials?
In WordPress go to WooCommerce → Settings → Advanced → REST API → Add key. Create a key with Read permissions for Products. Copy the Consumer Key and Consumer Secret. Your Domain is the store URL shown in your browser (include
In WordPress go to WooCommerce → Settings → Advanced → REST API → Add key. Create a key with Read permissions for Products. Copy the Consumer Key and Consumer Secret. Your Domain is the store URL shown in your browser (include
https://
).
- Archive/Un-Archive Inventory: If enabled, items missing in the latest pull are archived (qty = 0). When they re-appear, they’re automatically un-archived with mapped quantity. Tip: Don’t enable this here if you already enabled it on Get Inventory [Secondary] for the same Source.
- Scheduling: Run manually or schedule periodic syncs.
- Post Mapping Workflow: Optional rules after mapping (use Draft to test, then switch to Live).
Interface Overview
- Screen labeled Get Source Products; actions include Delete, Duplicate, and Save.
- Layout: From Value (WooCommerce Product/WooCommerce Variant fields) → To Inventory Parent Field.
Core Parent Mappings (Recommended)
WooCommerce Field | Maps To | Example | Notes |
---|---|---|---|
SKU | Parent SKU | WC-12345 | Primary identifier. |
Name | Title | Classic T-Shirt | Product title. |
Description / Short Description | Description | Full product details | Use both as needed. |
Regular Price / Sale Price | Cost | 19.99 | Sale overrides regular when present. |
Stock Quantity | Quantity | 45 | Current on-hand. |
Weight | Weight (lbs) | 1.2 | Convert to lbs if your store uses different units. |
Dimensions (Length, Width, Height) | Dimensions (in) | 10 × 8 × 2 | Convert to inches if needed. |
Category 1 / 2 / 3 | Categories | Apparel → Tops → Tees | Two-level tree is read; 3rd level optional. |
Images | Image URLs | https://store.com/wp-content/… | Multiple images supported for parent. |
Variant Mappings (Variable Products)
WooCommerce Variant Field | Maps To | Example | Notes |
---|---|---|---|
SKU | Variant SKU | WC-12345-BLK-M | Saved as external listing id when option present. |
Price / Regular Price / Sale Price | Cost | 21.99 | Sale price preferred when available. |
Stock Quantity | Quantity | 8 | Variant-level stock. |
Weight | Weight (lbs) | 1.0 | Units converted as above. |
Length / Width / Height | Dimensions (in) | 9 × 7 × 2 | Variant dimensions. |
Description | Attributes / Notes | Black / Medium | Use for merchandising. |
Images: Multiple images can be saved for the parent; by design only one image is saved for each variant.
-
Fetch Categories:
/wp-json/wc/v2/products/categories
(two levels are read). -
Fetch Products:
/wp-json/wc/v2/products
(paginationper_page=100
). -
Fetch Variants:
/wp-json/wc/v2/products/%d/variations
. - External Listing IDs: If option value is blank, the parent ID is stored as the external listing id; if not blank, the variant ID is used.
- Images: Multiple images can be stored for the parent; a single image is stored for each variant.
Capability | Status | Notes |
---|---|---|
Custom Fields | SUPPORTED | Available as attributes from platform. |
Variations / Options | SUPPORTED | Variants pulled via /variations. |
Generic Pricing (& Currency) | SUPPORTED | Regular/Sale price fields. |
Client Pricing (& Currency) | NOT SUPPORTED | Per-client pricing isn’t returned. |
Quantity | SUPPORTED | Stock Quantity field. |
Multiple Warehouses | NOT SUPPORTED | No warehouse breakdown in API. |
Weights & Dimensions (& Units) | SUPPORTED | Convert units if needed. |
Images | SUPPORTED | Parent gallery + featured image. |
Categories | SUPPORTED | Two-level taxonomy pulled. |
Delta Feed vs Full Feed | FULL FEED | All products pulled each run. |
Archive Support | SUPPORTED | Use the Archive/Un-Archive toggle. |
Limitations | — | Variant images limited to one per variant. |
- 1 Add the Integration: Source → WooCommerce → Get Inventory [Primary].
- 2 Create Connection: Enter Connection Name, Domain, Consumer Key, and Consumer Secret → Test Connection → Save Connection.
- 3 Configure: Choose Archive/Un-Archive Inventory and scheduling.
- 4 Mapping Template: Choose or create Get Source Products and map fields (see tables above).
- 5 Automate: Turn on Scheduled or run the job manually.
Friendly Tip: If Test Connection fails, verify REST API keys are Read, your site uses “pretty permalinks,” and the Domain is your live store URL (including
https://
).
- 401/403 errors: Regenerate keys with Read permission; ensure the user role hasn’t been limited by a security plugin.
- Empty results: Confirm products exist and that the key user can view products; check pagination limits.
- Variant data missing: Verify the product is of type variable and variations are published.
- Images missing: Confirm media URLs are publicly accessible and not blocked by hotlink protection.
- Unexpected archiving: Make sure only one of your Primary/Secondary jobs has Archive/Un-Archive enabled.
Diagnostic Tip: Use Post Mapping Workflow in Draft to test rules before switching to Live.
-
Endpoints used:
/wp-json/wc/v2/products
,/wp-json/wc/v2/products/categories
,/wp-json/wc/v2/products/%d/variations
. - Units: Weights & dimensions come from WooCommerce — convert to lbs/in as needed.
- Pricing: We use Sale Price when present; otherwise Regular Price.
- Scheduling: Set a cadence that matches your store’s update frequency.
Pro Tip: Include SKU, Name, Categories, and key attributes to improve downstream channel matching and search.
Conclusion
WooCommerce Get Inventory [Primary] keeps your catalog, stock, and pricing current through the WooCommerce REST API. Connect with your API keys, map the core fields, and schedule the job for continuous, reliable updates.
Order Operations
Send Fulfillment Requests
Supported | WooCommerce
Send Fulfillment Requests — WooCommerce
This process creates orders in WooCommerce from your Fulfillment Requests (FRs). We associate FR items by the External Listing ID saved during Get Inventory and use the returned Woo order ID for downstream tracking.
Use WooCommerce Send Fulfillment Requests to:
- Create WooCommerce orders from approved FRs.
- Map line items using the external listing id captured in Get Inventory.
- Leverage the Woo order ID (acknowledgement) to fetch tracking later in Get Shipments.
- 1 Connect an Integration: Pick your WooCommerce connection (Basic Auth with Consumer Key / Secret). Click Save and Proceed.
- 2 Configure Settings: Set Hold for X Hours and optionally enable Only Send During Business Hours.
- 3 Define a Mapping Template: Choose or create Send Fulfillment Requests and map Billing/Shipping Address, Order Items, Shipping Line, and Totals.
Tip: Keep holds short (e.g., 1–2 hours) if you review FRs before sending, so customers get tracking quickly.
- Hold for X Hours: Delay sending FRs by the number of hours you specify.
- Only Send During Business Hours: Queue FRs to send within business hours only.
Billing Address (WooCommerce)
From Value | To WooCommerce Field | Example |
---|---|---|
Billing Address → First Name | billing.first_name | Jane |
Billing Address → Last Name | billing.last_name | Doe |
Billing Address → Company Name | billing.company | Acme LLC |
Billing Address → Email | billing.email | jane@acme.com |
Billing Address → Phone | billing.phone | 555-1212 |
Billing Address → Address Line 1/2 | billing.address_1 / address_2 | 123 Main St / Ste 200 |
Billing Address → City | billing.city | Orlando |
Billing Address → State / Code | billing.state | FL |
Billing Address → Postal Code | billing.postcode | 32801 |
Billing Address → Country / Code | billing.country | US |
Shipping Address (WooCommerce)
From Value | To WooCommerce Field | Example |
---|---|---|
Shipping Address → First/Last Name | shipping.first_name / last_name | John / Smith |
Shipping Address → Company | shipping.company | Acme LLC |
Shipping Address → Address 1/2 | shipping.address_1 / address_2 | 456 Pine Rd / Apt 4 |
Shipping Address → City | shipping.city | Denver |
Shipping Address → State / Code | shipping.state | CO |
Shipping Address → Postal Code | shipping.postcode | 80203 |
Shipping Address → Country / Code | shipping.country | US |
Shipping Address → Email / Phone | shipping.email / phone | ship@acme.com / 555-3434 |
Order Line Items
From Value | To WooCommerce Field | Notes |
---|---|---|
FR Item → SKU (external listing id) | line_items[].sku / product lookup | We submit the external listing id saved during GIP. |
FR Item → Title | line_items[].name | Optional; Woo may overwrite name with product title. |
FR Item → Quantity | line_items[].quantity | Required. |
FR Item → Cost / Subtotal | line_items[].subtotal / price | Use if you push pricing. |
FR Item → UPC / MPN | meta_data[] | Optional metadata. |
FR Item → PO Line Item # | meta_data[] | Optional metadata. |
Shipping Line Item
From Value | To WooCommerce Field | Example |
---|---|---|
Source Shipping Method → Carrier | shipping_lines[].method_title | UPS |
Source Shipping Method → Method / Name / Code | shipping_lines[].method_id / method_title | ups_ground |
Channel Invoice → Shipping Cost | shipping_lines[].total | 12.95 |
Channel Invoice → Tax Cost | shipping_lines[].total_tax | 0.00 |
Purchase Order & Totals
From Value | To WooCommerce Field | Example |
---|---|---|
Channel Invoice → Subtotal | total (derived) / fee_lines[] | — |
Channel Invoice → Total | total | 129.90 |
Channel Invoice → Discount Total | discount_total / fee_lines[] | 5.00 |
Channel Invoice → Dropship Fee / Other Cost | fee_lines[] | 2.00 |
Note: Multiple shipping options are available as configured on the platform. If you pass nothing, Woo’s defaults may apply.
- We create order using endpoint
/wp-json/wc/v2/orders
. - We send item id (external listing id saved during GIP) during order submission.
- We receive the Woo order id as acknowledgement and use it later to fetch tracking in Get Shipments.
Capability | Status | Notes |
---|---|---|
Fulfillment Request Number | NOT SUPPORTED | |
Customer Association | NOT SUPPORTED | |
FR Item Association | SUPPORTED | We send item id (external listing id) during order submission. |
Auto Acknowledgements | SUPPORTED | Order id returned and stored. |
Shipping Selection | SUPPORTED | Multiple shipping options are available as configured on platform. |
Custom Fields | NOT SUPPORTED | |
Attachments | NOT SUPPORTED | |
Limitations | — |
- 1 Add Integration: Source → WooCommerce → Send Fulfillment Requests.
- 2 Create/Select Connection: Use the same Domain, Consumer Key, and Consumer Secret you used for Get Inventory. Test → Save.
- 3 Configure: Set hold window and business-hours sending (optional).
- 4 Mapping Template: Choose or create Send Fulfillment Requests and map all groups above.
- 5 Automate: On the Configure page, enable Scheduled or click Run Integration.
Where to get keys: WooCommerce → Settings → Advanced → REST API → Add key (Read). Copy your Consumer Key and Consumer Secret. Domain is your store URL (include
https://
).
- 401/403: Regenerate keys with Read permission; check security plugins and permalinks.
- Wrong items: Verify the external listing id in FR matches what was saved during Get Inventory.
- Shipping not applied: Ensure the Shipping Line mapping passes a valid method_id/method_title and total.
- Stuck in Hold: Reduce “Hold for X Hours” or disable business-hours only sending for testing.
Conclusion
With mapping in place and a valid Woo connection, FRs become WooCommerce orders via
/wp-json/wc/v2/orders
. Use holds and business-hours settings as needed, then schedule the job for hands-off order creation.
Get Shipments
Supported | WooCommerce
Get Shipments — WooCommerce
Import shipment tracking from WooCommerce into Flxpoint using your saved Woo order IDs (captured during Send Fulfillment Requests).
- 1 Connect an Integration: Select your WooCommerce connection (API – Basic Auth) and Save and Proceed.
- 2 Configure Settings: Choose FR Lookback Period for Get Shipments (e.g., 3 Months). Only FRs created within this window are considered.
- 3 Define a Mapping Template: Pick or create Get Shipments and map tracking fields (Carrier, Method, Tracking Number/URL, etc.).
- FR Lookback Period for Get Shipments: Maximum age of FRs eligible for shipment retrieval (default ~90 days). Use longer windows only when necessary.
Shipment Fields (WooCommerce)
From Value | To Shipment Field | Notes |
---|---|---|
WooCommerce Shipment → Tracking Provider | Carrier | Carrier name/provider from the plugin. |
— | Method | Optional method text (if available). |
WooCommerce Shipment → Tracking Number | Tracking Number | Main tracking code. |
WooCommerce Shipment → Tracking Link | Tracking URL | Direct carrier tracking link. |
WooCommerce Shipment → Shipping Cost | Shipping Cost | Optional if provided by plugin/meta. |
— | Shipped At | Date/time of shipment (if available). |
Item Association: When present, SKU in shipment is used for item association.
- We fetch shipment using endpoint
/wp-json/wc-shipment-tracking/v3/orders/{order_id}/shipment-trackings
- Order ID is used for identification (we save this during Send FR).
Capability | Status | Notes |
---|---|---|
Carrier & Methods | SUPPORTED | Carrier and method are available and mappable. |
Shipment Item Association | SUPPORTED | SKU in shipment is used for item association. |
Partial Shipments | SUPPORTED | Multiple shipments per order are handled. |
Invoice Information | NOT SUPPORTED | |
Custom Fields (CFs) | NOT SUPPORTED | |
Limitation | — |
-
0 Install the required plugin:
Download and activate the official WooCommerce Shipment Tracking plugin:
https://woocommerce.com/products/shipment-tracking/
Docs: Shipment Tracking documentation - 1 In Flxpoint, add Source → WooCommerce → Get Shipments.
- 2 Select your existing WooCommerce API connection → Save and Proceed.
- 3 Set the FR Lookback Period and select your Get Shipments mapping template.
- 4 On the Configure page, enable Scheduled or click Run Integration to pull tracking.
- No shipments returned: Ensure the Shipment Tracking plugin is active and the order has tracking entries.
- Orders not found: Confirm the Woo order id was stored during Send FR (re-run if needed).
- Older FRs skipped: Increase the FR Lookback Period temporarily and retry.
Conclusion
With the Shipment Tracking plugin installed and mapping set, Get Shipments pulls carrier, method, and tracking details from WooCommerce and attaches them to your FRs in Flxpoint.