ml-connector
SAP Business OneWalmart Marketplace

SAP Business One and Walmart Marketplace integration

SAP Business One runs your financials and inventory for a small-to-midsize business. Walmart Marketplace connects you to millions of shoppers. Keeping the two in sync means orders from your Walmart store automatically create purchase or sales records in SAP, inventory levels stay current as you fulfill orders, and pricing changes in SAP push back to Walmart without manual re-entry. ml-connector handles the very different authentication schemes on each side - SAP session tokens and Walmart OAuth2 - and moves data on a schedule you control.

How SAP Business One works

SAP Business One exposes BusinessPartners, Invoices, PurchaseInvoices, PurchaseOrders, IncomingPayments, OutgoingPayments, JournalEntries, ChartOfAccounts, Dimensions, ProfitCenters, and Items through OData v4 REST at a customer-specific Service Layer URL (https://<customer-server>:<port>/b1s/v2/). Authentication uses a session token acquired via POST to /Login, which returns a B1SESSION cookie valid for 30 minutes of inactivity; OAuth2 is available in v10.0 FP 2305+ if the customer has IAM configured. SAP Business One supports webhooks for Create/Update/Delete events in v10.0 FP 2602+ if the Webhook Messenger Service is activated by an SAP admin, but polling is the default path. Each customer manages their own on-premise instance with self-signed certificates common, so network routing and firewall rules must be configured to allow the connector to reach the Service Layer port.

How Walmart Marketplace works

Walmart Marketplace exposes Items (SKU, product name, category, price, images), Inventory (quantity per ship node), Orders (purchaseOrderId, dates, line items with status, shipping), Returns and Refunds (for non-WFS items), Pricing, Reconciliation Reports, and Feeds for bulk operations through REST endpoints at https://marketplace.walmartapis.com or https://sandbox.walmartapis.com (base /v3/). Authentication is OAuth 2.0 with Client Credentials grant, exchanging Client ID and Client Secret for a Bearer token with a 15-minute expiry. Calls use a non-standard header WM_SEC.ACCESS_TOKEN rather than the Authorization header, and every request requires WM_SVC.NAME set to Walmart Marketplace, a unique WM_QOS.CORRELATION_ID UUID, and proper Accept and Content-Type headers. Walmart Marketplace supports webhooks for order, inventory, item, return, report, and performance events with retries at 5, 15, and 45 minutes before the event is dropped, and can also be polled directly for orders (180-day window, max 10,000 records per call), items, and returns.

What moves between them

Orders flow from Walmart Marketplace into SAP Business One as PurchaseOrders (if inbound) or SalesOrders (if outbound), mapped to matching BusinessPartners by Walmart seller account. Inventory quantities flow in both directions: SAP item stock levels push to Walmart via bulk inventory feeds on a schedule you control, and Walmart order fulfillment updates pull back into SAP to decrement on-hand. Pricing changes in SAP Items flow to Walmart via bulk price feeds. Reconciliation reports from Walmart (settlement amounts, payouts, fees) are available for pull but do not write back to SAP, since financial posting is SAP's responsibility. Syncs run on a daily or weekly cadence tied to your fulfillment and reconciliation cycles.

How ml-connector handles it

ml-connector stores the SAP customer Service Layer URL and Walmart OAuth credentials encrypted. On startup, it acquires a Walmart access token via Client Credentials and holds the SAP session token returned after B1SESSION login; both are refreshed before expiry (Walmart at 15 minutes, SAP before the 30-minute inactivity window). Walmart order webhook events trigger order creation in SAP; if webhooks are not enabled, ml-connector polls the Orders endpoint every 1-4 hours. Each Walmart order's seller is matched to a BusinessPartner in SAP by matching seller account identifiers, or manually mapped if no match exists; unmapped orders are held in a queue for manual review. Inventory feeds from Walmart push quantity into a staging table where ml-connector matches by SKU to SAP Items, accounting for multiple Walmart ship nodes and a single SAP warehouse. Price feeds from SAP Items use the bulk feed mechanism to avoid Walmart's single-item throttle (100 updates per hour). SAP session tokens can expire mid-request (-5002 error), so ml-connector re-authenticates and retries the request; Walmart 429 rate-limit responses trigger exponential backoff. Every record carries a full audit trail and can be replayed if a downstream write fails.

A real-world example

A small-to-midsize retailer runs SAP Business One on-premise for inventory, purchasing, and accounting, and sells through Walmart Marketplace to reach additional volume beyond their direct channels. Before the integration, the operations team manually pulled orders from Walmart and entered them into SAP as purchase records, then separately updated inventory and shipping status by hand after each fulfillment. With SAP Business One and Walmart Marketplace connected, each order from Walmart automatically becomes a record in SAP mapped to the correct supplier or sales order, inventory in SAP is the source of truth for what is available on Walmart, and when the operations team marks an order shipped in SAP, the shipment notification flows back to Walmart. Month-end reconciliation between Walmart payouts and the revenue booked in SAP now requires a simple variance check rather than reconstructing the flow by hand.

What you can do

  • Import Walmart orders into SAP Business One as PurchaseOrders or SalesOrders mapped to matching BusinessPartners.
  • Push inventory quantities from SAP Items to Walmart in bulk feeds, accounting for multiple ship nodes.
  • Sync pricing updates from SAP Items to Walmart via bulk price feeds to avoid single-item API throttles.
  • Refresh Walmart OAuth tokens every 15 minutes and SAP session tokens before the 30-minute inactivity timeout.
  • Maintain a full audit trail and replay failed writes when Walmart or SAP connectivity resumes.

Questions

How does ml-connector map Walmart seller accounts to SAP BusinessPartners?
ml-connector matches Walmart seller IDs to a SAP BusinessPartner custom field you designate during setup, or allows manual mapping if no match is found. Orders with unmapped sellers are held in a queue for manual review. Once mapped, all future orders from that seller automatically link to the correct BusinessPartner.
What happens when SAP session tokens expire or Walmart OAuth tokens time out?
SAP session tokens expire after 30 minutes of inactivity and Walmart OAuth tokens after 15 minutes. ml-connector refreshes Walmart tokens proactively every 15 minutes and re-authenticates to SAP before the inactivity window closes. If a request fails with a token error, ml-connector re-authenticates and automatically retries the operation.
Can ml-connector handle Walmart's 100-item-per-hour single-price-update limit?
Yes. ml-connector uses Walmart's bulk feed mechanism for price updates instead of single-item calls, avoiding the throttle entirely. Feeds are processed asynchronously and can update thousands of prices per day without hitting the per-item rate limit.

Related integrations

Connect SAP Business One and Walmart Marketplace

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

Get started