Flxpoint Help Center
All DocsContact support

WooCommerce as a Channel

July 2, 2026

Summary

Connect your WooCommerce store to Flxpoint as a sales channel over the WooCommerce REST API using your store URL plus a Consumer Key and Consumer Secret. Once connected you can import, sync/link, and publish listings, pull orders in, and push tracking back to WooCommerce.

Import Listings
Pulls your existing WooCommerce products into Flxpoint and links them by SKU
Sync & Link Listings
Links Flxpoint listings to WooCommerce products and pushes price, stock and availability updates
Publish Listings
Creates new products in WooCommerce from Flxpoint listings, including images, SKUs and custom fields
Get Orders
Retrieves WooCommerce orders (billing/shipping, totals, items) filtered by order status
Sync Orders
Writes carrier, tracking number and shipping method back to WooCommerce for fulfillment

In Flxpoint go to Channels+ Add Channel, search for and select WooCommerce, then fill in the setup form below and click Test Connection & Continue.

Connection NameSetting
A descriptive label for this connection (e.g., My WooCommerce Store).
Any name you choose – it just helps you identify the store inside Flxpoint.
DomainRequired
Your WooCommerce store URL, e.g. https://yourstore.com.
Enter the full public store URL, including https://.
Consumer KeyRequired
Generate it in WordPress under WooCommerce › Settings › Advanced › REST API › Add Key. Give the key a description (e.g., "Flxpoint Integration"), assign a Store Manager or Administrator user, set permissions to Read/Write, then click Generate API Key and paste the key here.
WooCommerce must be installed and activated first.
Consumer SecretRequired
The secret paired with the Consumer Key, shown once when you generate the key.
Copy it immediately – WooCommerce will not display the secret again.
Can't connect? Confirm WordPress permalinks are set to a readable format (Settings › Permalinks, anything other than "Plain") and that the key has Read/Write permission. If Test Connection passes but jobs later fail with 401/403/524 errors, your host's firewall or Cloudflare is likely blocking Flxpoint's IPs – ask your hosting provider to whitelist 52.44.101.151 and 52.1.186.211 so you don't need to reach out for the IP addresses.

WordPress permalinks must be set to a readable format

Before connecting, go to Settings › Permalinks in WordPress admin and select Post name (or any non-"Plain" format). The WooCommerce REST API will not work with plain permalinks – the connection test may pass while individual jobs fail silently. Your options are: Plain (e.g. example.com/?p=123 – not recommended, bad for SEO), Post name (e.g. example.com/sample-post/ – highly recommended for clean, searchable links), or a Custom Structure combining tags like /%category%/%postname%/ to build a unique format.

Whitelist Flxpoint's IPs if Cloudflare or a firewall protects your site

403 Forbidden, 401 Unauthorized and 524 timeout errors during Sync or Publish jobs are almost always caused by Flxpoint's IPs being blocked. Contact your hosting provider (not WooCommerce) and ask them to whitelist Flxpoint's outbound IPs – 52.44.101.151 and 52.1.186.211 – so you don't have to request the current list from Flxpoint support.

Shipping mappings must use the WooCommerce method ID in lowercase with underscores

Flxpoint matches orders to shipping policies by the WooCommerce shipping method ID, not the display name. Take the Title shown in WooCommerce › Settings › Shipping › Shipping Zones and enter it in lowercase with underscores for spaces – for example flat_rate. An unmapped or mismatched method puts orders on hold.

Variable products need at least one variation – or must be changed to Simple

If a WooCommerce product is saved as variable but has zero variations, Flxpoint cannot sync it and reports a "Broken Link" or "404 use /products/<id>/variations/<id>" error. Either add the missing variations, or change the product type to Simple before re-linking and syncing.


Pulls existing WooCommerce products into Flxpoint and links them by SKU. Import uses a pre-defined format, so there is no custom field mapping and it cannot be scheduled – run it manually from the Import Dashboard. If nothing imports, confirm the connection passes Test Connection; duplicate listings usually mean the SKU already exists in WooCommerce before import.
FieldNotes
Regular PriceWooCommerce: Regular Price (Required). Sets the standard price of the product.
Sale PriceWooCommerce: Sale Price (Optional). The discounted price when a sale is active.
Stock QuantityWooCommerce: Stock Quantity (Required). Available on-hand units.
Back Order EnabledWooCommerce: Back Order Enabled (Optional). Whether back orders are allowed.
Custom Fields (Color, Size, …)WooCommerce: Custom Field (Optional). Up to 30 custom fields; fields 1–15 accept text or numbers, fields 16–30 accept text only.
UPCWooCommerce: UPC (Optional). Can be used as the linking identifier for variants.
Linking is single-pass: Listing Variant SKU → WooCommerce Product/Variation SKU covers both simple and variation products in one run. After linking, run Sync Listings so price, stock and availability update on the correct SKUs. Optional image deletion on delist requires a WordPress API username and Application Password under the job's Advanced Settings.
FieldNotes
DescriptionWooCommerce: Description (Required). The product description.
ImagesWooCommerce: Images (Required). Populates the product gallery. WooCommerce supports only one image per variation.
SKUWooCommerce: SKU (Required). Uniquely identifies the product.
Stock QuantityWooCommerce: Stock Quantity (Required). Sets the available stock level.
WeightWooCommerce: Weight (Optional).
WidthWooCommerce: Width (Optional).
Custom FieldsWooCommerce: Custom Fields (Optional). Up to 30 custom fields; fields 16–30 accept text (string) values only.
If an image URL fails to upload, enable the Allow Product Creation Despite Image URL Failure setting so the product still publishes with all other mapped data (Description, SKU, Stock Quantity) but without the failed image – product creation will not fail just because the image URL is invalid or unreachable.
FieldNotes
First Name / Last NameBilling Address (Required). Customer name on the order.
Street Address 1 / 2Billing Address (1 Required, 2 Optional). Billing street address.
City / CountryBilling Address (Required).
Post Code / State CodeShipping Address (Required). Destination postal code and state.
TotalOrder: Total (Required). Order total amount.
Shipping TotalOrder: Shipping Total (Optional).
Payment MethodOrder: Payment Method (Optional).
StatusOrder: Status (Required). WooCommerce order status.
SKU / QuantityOrder Item (Required). Per-line item SKU and quantity.
Filter which orders import via Order Status: standard values are Processing, On Hold, Pending Payment, Refunded, Cancelled and Completed, plus an optional Custom Order Status. New setups default to processing. At least one status (or a custom status) must be set or the job fails.
FieldNotes
Carrier NameWooCommerce: Carrier Name (Required). Identifies the shipping carrier (e.g., UPS).
Shipping MethodWooCommerce: Shipping Method (Required). e.g., Ground.
Tracking NumberWooCommerce: Tracking Number (Required). The tracking identifier.
Tracking URLWooCommerce: Tracking URL (Optional). Link to the carrier tracking page.
Shipped AtWooCommerce: Shipped At (Optional). Records the shipment date.
Note FooterWooCommerce: Note Footer (Optional). Custom text shown after the tracking info.
For full tracking display, install the official WooCommerce Shipment Tracking plugin (recommended). Note that this is a paid plugin, and it must be installed and activated on WooCommerce – otherwise you will need to update tracking manually or may see a shipment error. Schedule Sync Orders every few hours or run it manually.

401, 403 or 524 errors on Sync Listings or Publish
These almost always mean Flxpoint's IPs are blocked by Cloudflare or your hosting provider's firewall – not by WooCommerce. Contact your hosting provider (not WooCommerce support) and ask them to whitelist Flxpoint's outbound IPs; the ones seen most often in tickets are 52.44.101.151, 52.1.186.211 and 45.22.90.239. A passing connection test does not guarantee jobs will work, since tests and sync jobs can hit different server paths.
"400 Bad Request: woocommerce_product_image_upload_error" on Publish
WooCommerce cannot fetch or process an image URL. Common causes: the URL is not publicly accessible (auth/CDN restricted), it contains NA# or is malformed, or the format is unsupported (e.g., WebP where JPEG/PNG is expected). Open the URL from the error in a browser to confirm it loads without authentication and check the format. To keep valid products publishing, enable the Allow Product Creation Despite Image URL Failure setting so they publish without images instead of failing. The WooCommerce community forums are also a useful resource if you need more detail on this specific error message.
"Shipment tracking endpoint not found" on Sync Orders
This means the official WooCommerce Shipment Tracking plugin (paid) is not installed or not activated. Install and activate it, or use the free Advanced Shipment Tracking (AST) for WooCommerce plugin by Zorem from the official WordPress plugin directory instead. If you'd rather not install either plugin, add tracking to the order as an Order Note in this exact format so Flxpoint can extract it: TRACKING: [Carrier] - [Tracking Number] (e.g., TRACKING: FedEx - 123456789012).
"This product has variants, but there are no available options" on Publish or Sync
The WooCommerce product is set as Variable but has zero actual variations. Either add the missing variations, or change the product type to Simple. After fixing it in WooCommerce, re-run Link Listings then Sync Listings. This is one of the highest-volume WooCommerce errors in tickets.
Stock is correct in Flxpoint but WooCommerce still shows 0 or the wrong quantity
First confirm the listing is actually linked – an unlinked listing has nothing for Sync Listings to push to; run Link Listings then Sync Listings. If it is linked and Sync completes cleanly but the site is still stale, check for Cloudflare caching serving an old page, confirm the SKU in the mapping exactly matches the WooCommerce SKU, and verify Sync Listings is still scheduled (check the last-run timestamp).
Orders stopped importing / Get Orders returns no results
Check in order: run Test Connection – a WooCommerce admin can regenerate Consumer Keys, which invalidates your existing key. Confirm at least one Order Status is selected (a cleared filter makes the job fail with a prompt to pick one). Verify the job is still on schedule and that the "Get Orders Created within the last X Days" window covers the orders you expect.
Broken link errors that keep coming back after re-linking
Usually one of two causes: a WooCommerce product was deleted or changed after it was linked (Flxpoint keeps it "Linked" until the next sync detects the break), or a variable product has missing/mismatched variant IDs. Check the product directly in WooCommerce – if deleted, re-publish from Flxpoint then re-link. If it exists but keeps breaking, confirm the product type matches what Flxpoint expects (variable vs. simple) and that no WooCommerce plugin is overwriting the SKU on save.

How do I generate the Consumer Key and Consumer Secret to connect WooCommerce?
In WordPress admin, go to WooCommerce › Settings › Advanced › REST API and click Add Key. Enter a description (e.g., "Flxpoint Integration"), select a user with the Store Manager or Administrator role, set permissions to Read/Write, and click Generate API Key. Copy the Consumer Key and Consumer Secret immediately – the Secret is shown only once. Paste both into the Flxpoint WooCommerce channel setup along with your store domain (e.g., https://yourstore.com).
How does Sync & Link Listings work – do I need separate jobs for parents and variants?
As of July 2025, a single Link Listings pass using Listing Variant SKU → WooCommerce Product/Variation SKU covers both simple products and variations in one run – no separate parent and variant jobs needed. Once linking is complete, run Sync Listings to push inventory, price and availability to the linked SKUs. For older listings linked with the legacy two-pass workflow, run both passes back-to-back before triggering Sync Listings.
What order statuses does Get Orders import by default, and can I add custom statuses?
For new setups, Processing is selected by default so paid orders import immediately. The standard statuses are Processing, On Hold, Pending Payment, Refunded, Cancelled and Completed. You can also enter a Custom Order Status value for a non-standard WooCommerce status. At least one status must be configured – if none is selected and Custom Order Status is blank, the Get Orders job fails with a prompt to select one.
WooCommerce only shows one image per variation – is that expected?
Yes – this is a WooCommerce API limitation, not a Flxpoint bug. WooCommerce supports only one image per variation. Parent product images publish to the WooCommerce gallery, but each variation displays a single image even when multiple variant images exist in Flxpoint. Re-publishing or overwriting does not change this. Images beyond the first are not lost in Flxpoint – they simply cannot be passed to WooCommerce variations.
How do I enable image deletion when a product is delisted?
Go to your WooCommerce channel settings, select Sync Listings, and open Advanced Settings. Enter your WordPress API Username and a WordPress Application Password (not your regular login password – generate one under WordPress Users › Profile › Application Passwords). Once entered, Flxpoint deletes the associated images from your WordPress Media Library when a product is delisted. This action is permanent and cannot be undone.
Why aren't FFL details importing from WooCommerce into Flxpoint?
An automatic FFL app integration is not currently supported for WooCommerce. To import FFL details, map the FFL meta key from your WooCommerce order data to the Order FFL Field in the Get Orders mapping template – for example meta-_ffl_license_field, meta-ffl_license_number, meta-ffl_dealer_name, or meta-ffl_phone, depending on how your FFL plugin stores the data.
© 2026 Flxpoint. All rights reserved.