ml-connector
Oracle JD EdwardsWalmart Marketplace

Oracle JD Edwards and Walmart Marketplace integration

Oracle JD Edwards EnterpriseOne manages procurement, inventory, and costing across your supply chain. Walmart Marketplace is where you sell to millions of customers online. Connecting the two keeps your Marketplace listings current with inventory balances and pricing from JD Edwards, so overstock and understock never happen, and pricing stays competitive without manual re-entry.

How Oracle JD Edwards works

Oracle JD Edwards EnterpriseOne is an on-premises ERP that exposes item master, inventory, and cost data through REST API via a customer-hosted Application Interface Services (AIS) Server. Authentication uses a session token obtained by POST to /jderest/v2/tokenrequest with username and password, passed in the jde-AIS-Auth header on all requests. The AIS Server URL is customer-specific with no shared hostname. JD Edwards has no native webhooks, so ml-connector polls key tables like F4101 (Item Master) and F4102 (Item Branch/Plant) using date filters on the UPMJ (date updated) field, tracking the last-polled timestamp to avoid re-reading unchanged data. Session tokens have a 30 to 60 minute default lifetime and are invalidated on AIS Server restart.

How Walmart Marketplace works

Walmart Marketplace exposes items, inventory levels across ship nodes, pricing, and orders through REST APIs at https://marketplace.walmartapis.com. Authentication uses OAuth2 Client Credentials, exchanging Client ID and Client Secret for a Bearer access token with a 15-minute expiry. API calls pass the token in a non-standard WM_SEC.ACCESS_TOKEN header rather than the Authorization header. Walmart supports both polling (GET operations on items, inventory, pricing) and push notifications via webhooks for order, inventory, and item events. Webhook retries follow a fixed schedule of 5 minutes, 15 minutes, and 45 minutes before the event is dropped. Single-item price updates are heavily throttled at 100 per hour, so bulk price feeds are required for efficient updates.

What moves between them

Inventory and cost data flow from JD Edwards to Walmart Marketplace. ml-connector polls JD Edwards item master (SKU, description, cost) and inventory balances (quantity by plant or ship node) on a schedule, then pushes those updates to Walmart as bulk inventory feeds and pricing updates. The direction is one-way because JD Edwards is the system of record for inventory and pricing; Walmart order data and returns may flow back to JD Edwards through a separate inbound mapping if needed, but the core sync moves product information outbound only.

How ml-connector handles it

ml-connector stores JD Edwards AIS Server URL and credentials locally, retrieving a session token on first use and re-authenticating when the 444 HTTP error signals token expiry. It tracks the last-polled timestamp against JD Edwards F4101 and F4102 tables, using the UPMJ field to fetch only changed records on subsequent polls, reducing load. For Walmart, ml-connector caches the OAuth2 token and detects 15-minute expiry by refreshing preemptively before calls, so token timeouts never interrupt a sync. JD Edwards data is mapped to Walmart's SKU and quantity.amount schema; if inventory is tracked by plant in JD Edwards, ml-connector sums across plants or selects the default plant to post a single quantity to Walmart. Pricing updates use Walmart's bulk feed endpoint because single-item price updates are limited to 100 per hour. Every sync records which records were sent, which succeeded, and which failed, so operators can see at a glance if a price or inventory update landed in Walmart or needs to be retried.

A real-world example

A mid-sized retailer sells on Walmart Marketplace alongside their own channels. They source from suppliers globally and manage all inventory and costing in Oracle JD Edwards. Before the integration, the merchandising team manually exported product lists and inventory from JD Edwards weekly, updated pricing in a spreadsheet to reflect cost changes and margin targets, then uploaded the updated feeds to Walmart by hand. Stock-outs and overpricing led to lost sales and customer complaints. With JD Edwards and Walmart Marketplace connected, inventory and pricing updates run automatically on a daily or twice-daily schedule. Merchandisers set pricing rules once in a configuration, ml-connector applies them to every sync, and inventory levels on Walmart stay in sync with what JD Edwards shows is available to ship.

What you can do

  • Poll inventory balances and item costs from JD Edwards item master and plant-level stock tables, then push updates to Walmart Marketplace as bulk inventory feeds.
  • Sync pricing from JD Edwards cost or selling-price fields to Walmart, using bulk price feeds to avoid single-item throttling limits.
  • Map JD Edwards multi-plant inventory to Walmart ship nodes so stock shows accurately across fulfillment locations.
  • Refresh Walmart OAuth2 tokens automatically before expiry and handle JD Edwards session token re-authentication when server restarts invalidate sessions.
  • Track every poll and feed submission so you can see which inventory and price changes landed in Walmart and which require manual review or replay.

Questions

How does ml-connector handle the difference between JD Edwards polling and Walmart webhooks?
JD Edwards has no native webhooks, so ml-connector polls the F4101 and F4102 tables using date filters on UPMJ to fetch only new or changed records since the last poll. Walmart supports webhooks for order and inventory events, but ml-connector uses polling for inventory reads to keep both sides synchronized on the same schedule, and can also receive Walmart webhooks for order updates if needed. The two polling schedules are independent and configurable.
What happens when JD Edwards inventory is split across multiple plants?
JD Edwards stores inventory in F4102 (Item Branch/Plant) with quantities per plant location. ml-connector can sum those quantities into a single inventory level for Walmart, or map specific plants to specific Walmart ship nodes if your fulfillment architecture requires that. The mapping is configured once during setup.
Why does ml-connector use bulk price feeds instead of single-item updates to Walmart?
Walmart throttles single-item price updates to 100 per hour, which is too slow for large catalogs or frequent price changes. Bulk price feeds allow updating hundreds of items in one request. ml-connector batches JD Edwards price changes into Walmart feed files and submits them asynchronously, checking feed status to confirm all items were accepted.

Related integrations

Connect Oracle JD Edwards and Walmart Marketplace

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

Get started