ml-connector
Epicor KineticWalmart Marketplace

Epicor Kinetic and Walmart Marketplace integration

Epicor Kinetic runs your supply chain, inventory, and financials. Walmart Marketplace is where you sell to millions of Walmart customers. Connecting the two keeps your inventory and pricing live on Walmart, and pulls every order back into Epicor so fulfillment and accounting see the same data. ml-connector handles the very different APIs on each side and moves the data on a schedule you control.

How Epicor Kinetic works

Epicor Kinetic exposes suppliers, purchase orders, items, pricing, GL accounts, customers, and sales orders through REST + OData v4 endpoints, with URLs shaped by tenant and company segment and authentication handled by Basic Auth, API Key, or OAuth2 bearer token. Epicor has no native outbound webhooks, so all data retrieval is by polling with OData $filter queries on date fields to fetch changed records since the last sync. Pagination uses $top and $skip parameters. Write operations for complex objects follow a two-step pattern: GetNewXxx to create the structure, then UpdateMaster to commit. Bearer tokens expire within one hour.

How Walmart Marketplace works

Walmart Marketplace exposes items, inventory, orders, returns, pricing, and reconciliation reports through REST endpoints using OAuth2 client credentials exchanged for a 15-minute access token, passed in a non-standard WM_SEC.ACCESS_TOKEN header rather than the Authorization header. The API supports both synchronous item updates and asynchronous bulk feeds for inventory and pricing. Webhook push notifications are available for order, inventory, return, and report events, with retries at 5, 15, and 45 minutes before dropping. Single-item price updates are throttled to 100 per hour, requiring bulk feeds for high-volume pricing changes.

What moves between them

The main flow runs from Epicor into Walmart Marketplace. Item master records and current pricing from Epicor are synced to Walmart as product listings and bulk price feeds on a daily or weekly schedule. Walmart orders flow back into Epicor as new sales orders with order date, customer, line items, and shipping address, so fulfillment and revenue accounting see every Walmart sale. Return and refund records from Walmart are captured and posted to Epicor sales order history for reconciliation.

How ml-connector handles it

ml-connector polls Epicor using OData $filter on the UpdatedOn field to fetch items and pricing changed since the last sync, mapping Epicor part numbers to Walmart SKUs via a configuration table. It refreshes Walmart's access token every 12 minutes to stay ahead of the 15-minute expiry. For item and pricing updates, it uses bulk feed endpoints when batch size exceeds 100 records, avoiding Walmart's single-item price throttle. It listens for Walmart webhook events on orders and returns, validates the webhook signature, and enqueues them for polling confirmation to prevent message loss. Orders arriving from Walmart are checked against Epicor customers by email or shipping address, created as sales orders if new, and tracked by a Walmart purchaseOrderId in an audit table. If a Walmart order fails to create in Epicor due to a missing customer or validation error, ml-connector holds it in a failed-records table for manual review and replay. Reconciliation reports from Walmart are fetched daily and cross-checked against Epicor shipments.

A real-world example

A retail goods manufacturer sells through Walmart Marketplace in addition to direct wholesale channels. Before the integration, the operations team manually exported Epicor inventory every morning, uploaded it to Walmart, and copied Walmart orders into Epicor each afternoon, creating lag between Walmart inventory and what the warehouse saw in Epicor. Returns from Walmart customers were email-forwarded to accounting, who re-entered them into the sales system by hand. With Epicor and Walmart Marketplace connected, inventory flows automatically to Walmart as it is received into the Epicor warehouse, pricing changes sync overnight, and every Walmart order lands in Epicor within minutes so the fulfillment team picks and ships from the correct location. Returns flow back to Epicor for immediate reconciliation against the original sale, and accounting closes the month with no manual re-keying.

What you can do

  • Sync Epicor item master and current pricing to Walmart Marketplace inventory and bulk price feeds on a daily or weekly schedule.
  • Fetch Walmart orders as new sales orders in Epicor with customer, line items, and shipping address, matched by email or shipping details.
  • Map Epicor part numbers to Walmart SKUs with a configuration table and audit trail on every sync.
  • Handle Epicor's polling-only API design with OData date-filtering and Walmart's 15-minute token expiry and webhook retry windows.
  • Capture Walmart returns and refunds as line-item history in Epicor sales orders and reconciliation reports for month-end close.

Questions

Which direction does data move between Epicor Kinetic and Walmart Marketplace?
The main flow is Epicor into Walmart Marketplace. Items, pricing, and inventory flow from Epicor to Walmart on a schedule you set. Orders and returns flow from Walmart back into Epicor as sales orders and shipment history so fulfillment and accounting see every sale. Customer master and pricing tiers stay aligned in both directions.
How does the integration handle Epicor's polling-only API and Walmart's webhook events?
ml-connector polls Epicor using OData $filter on the UpdatedOn field to fetch changed items and pricing since the last sync, and can also listen for Walmart webhook notifications on orders and returns. For critical data like orders, it polls Walmart for confirmation even when a webhook arrives, to ensure no order is missed. Failed orders are held in an audit table for manual review and replay.
What happens when an Epicor item or Walmart order doesn't match an existing record in the other system?
Items without an existing Walmart SKU are created as new product listings using Epicor part number and product description. Orders without an Epicor customer are held in a failed-records table for manual review - the operations team can assign them to a customer and replay the order into Epicor, or ml-connector can create a catch-all customer if configured. Pricing mismatches are logged in the audit trail for investigation.

Related integrations

Connect Epicor Kinetic and Walmart Marketplace

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

Get started