ml-connector
Epicor KineticWooCommerce

Epicor Kinetic and WooCommerce integration

Epicor Kinetic runs your ERP - inventory, manufacturing, purchasing, and finance. WooCommerce runs your online storefront. Connecting the two keeps your product catalog and customer data consistent across both systems, and brings sales orders back into Epicor's order entry and accounting records. ml-connector bridges the OData v4 API on the Epicor side and the REST webhook interface on WooCommerce, so your e-commerce orders flow into ERP without manual data entry.

How Epicor Kinetic works

Epicor Kinetic exposes customers, parts, purchase orders, vendors, GL accounts, and APInvoices through REST endpoints at https://<tenant>.epicorsaas.com/<instance>/api/v2/odata/<Company>/ in the cloud, or via on-premises server URLs. Authentication uses Basic Auth (username and password base64-encoded) combined with an API Key in the x-api-key header, or OAuth2 client credentials for cloud SaaS deployments. The API supports OData v4 filtering and paging with $top and $skip parameters to query for records changed since the last sync. Epicor has no native outbound webhooks, so all reads are polling based on date fields like UpdatedOn. Write operations require a two-step pattern: a GetNewXxx call followed by an UpdateMaster call for complex objects.

How WooCommerce works

WooCommerce is a self-hosted WordPress e-commerce platform where each store runs on its own domain at https://<customer-domain>/wp-json/wc/v3/. It exposes orders, refunds, customers, products, coupons, and payment gateway data through REST APIs. Authentication uses an API Key pair (Consumer Key and Consumer Secret) presented as HTTP Basic Auth. WooCommerce supports outbound webhooks for order.created, order.updated, order.deleted, customer.created, customer.updated, product.created, and product.updated events. Webhook signatures are HMAC-SHA256 keyed with a webhook secret. Webhooks are disabled after 5 consecutive non-2xx responses and must be manually re-enabled. WooCommerce has no native ERP features like vendors, purchase orders, or GL accounts.

What moves between them

Products and customers flow from Epicor Kinetic into WooCommerce to keep the online store stocked with current catalog and customer data. Orders and refunds flow from WooCommerce back into Epicor as sales transactions, so the ERP sees e-commerce activity alongside traditional orders. The sync reads Epicor parts and customers on a schedule, posts updates to WooCommerce products and customers, listens for order.created and order.updated webhooks from WooCommerce, then writes those orders back into Epicor's order entry system.

How ml-connector handles it

ml-connector stores both the Epicor API Key and Bearer token and the WooCommerce Consumer Key and Secret encrypted, then presents them on every request. On the Epicor side it uses OData filters on the UpdatedOn date field to pull only changed records since the last sync and pages through results with $top and $skip. It handles Epicor's requirement for both Basic Auth and the x-api-key header, and it refreshes the Bearer token when it expires (approximately 1 hour). On the WooCommerce side it registers a webhook endpoint, verifies incoming webhook signatures using HMAC-SHA256, and writes orders to Epicor using the two-step GetNewOrder and UpdateMaster pattern. If a webhook fails 5 times, ml-connector surfaces an alert so the webhook can be re-enabled. Every record movement carries a full audit trail and can be replayed if a downstream write fails.

A real-world example

A mid-sized e-commerce retailer runs Epicor Kinetic for inventory management, order fulfillment, and accounting, and maintains a WooCommerce online store on a custom domain to sell products to customers. Before the integration, the retail operations team exported a product feed from Epicor each week and manually re-uploaded it to WooCommerce, then handed incoming e-commerce orders to the accounting team to re-enter into Epicor's order system, creating duplicate-entry risk and delays in fulfillment visibility. With Epicor Kinetic and WooCommerce connected, product updates flow automatically to the storefront, customer records stay consistent, and each online order appears in Epicor's order queue within seconds, so the fulfillment team ships sooner and the accounting team has a real-time audit trail of e-commerce revenue.

What you can do

  • Push product updates from Epicor Kinetic to WooCommerce so the online catalog stays current with inventory data.
  • Sync customer records from Epicor to WooCommerce to keep buyer information consistent across systems.
  • Capture WooCommerce orders and refunds in Epicor Kinetic for revenue accounting and fulfillment tracking.
  • Authenticate Epicor with API Key and Bearer token and WooCommerce with Consumer Key and Secret, and verify webhook signatures with HMAC-SHA256.
  • Poll Epicor on a schedule using OData queries and receive WooCommerce orders in real time via webhooks, with full audit trails and error replay.

Questions

Which direction does data move between Epicor Kinetic and WooCommerce?
Products and customers move from Epicor Kinetic into WooCommerce to keep the storefront catalog and customer data current. Orders and refunds move from WooCommerce into Epicor so the ERP sees e-commerce activity. The sync uses polling on the Epicor side (OData queries on UpdatedOn) and webhooks on the WooCommerce side (order.created, order.updated) to catch all changes.
Why does Epicor Kinetic require both Basic Auth and an API Key?
Epicor's API design requires both the username:password Base64 encoded in the Authorization header and an additional x-api-key header with the API Key. ml-connector handles both credentials automatically on every request, so the integration behaves as a single unified API from the user's perspective.
What happens if a WooCommerce webhook fails repeatedly?
WooCommerce automatically disables webhooks after 5 consecutive non-2xx responses. ml-connector detects this condition via audit logging and surfaces an alert so the store owner can investigate and manually re-enable the webhook. Once re-enabled, new orders resume flowing into Epicor automatically.

Related integrations

Connect Epicor Kinetic and WooCommerce

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started