Walmart Adapter
NexusCommerce integration with the Walmart Marketplace API for selling on Walmart.com.
Overview
The Walmart adapter connects NexusCommerce to the Walmart Marketplace API, enabling sellers to manage product listings, sync orders, update inventory, and submit shipment confirmations on Walmart.com. Walmart Marketplace is the second-largest e-commerce platform in the United States.
The adapter targets Walmart Marketplace API v3 and uses HTTP Signature authentication for all requests.
Key Concepts
HTTP Signature Authentication — Unlike OAuth-based marketplaces, Walmart uses a proprietary request signing scheme. Each API request is signed with a Consumer ID and a private RSA key. NexusCommerce handles signing automatically once credentials are stored.
Item ID vs. SKU — Walmart assigns an itemId to each product listing. Your sku is the seller-assigned identifier. Both are tracked in NexusCommerce. The itemId is the canonical Walmart identifier used in order line items.
Publish Status — Walmart listings pass through a review/approval flow before going live. Possible statuses: PUBLISHED, UNPUBLISHED, IN_PROGRESS, SYSTEM_PROBLEM, STAGE. NexusCommerce reflects the current publish status on each product.
WFS — Walmart Fulfillment Services (equivalent to FBA). WFS inventory is read-only from the API.
Getting Started
Required Credentials
| Field | Description |
|---|---|
| Consumer ID | Your Walmart seller Consumer ID (UUID format) |
| Private Key | RSA private key in PEM format for request signing |
| Channel Type | SELLER for standard marketplace sellers |
Obtain these from the Walmart Seller Center: Partner Profile > Developer > API Management.
Credential Format
The private key must be in PKCS#8 PEM format. If you received it in PKCS#1 format, convert with:
openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt \
-in private_key_pkcs1.pem \
-out private_key_pkcs8.pemPaste the full PEM content (including -----BEGIN PRIVATE KEY----- headers) into the NexusCommerce credential field.
Request Signing
NexusCommerce generates the signature for each request:
Signature = Base64( RSA-SHA256( ConsumerID + "\n" + RequestTimestamp + "\n" + Method + "\n" + URL ) )The following headers are added to every Walmart API request:
WM_SEC.KEY_VERSION: 1
WM_CONSUMER.ID: <consumer_id>
WM_CONSUMER.INTIMESTAMP: <unix_ms_timestamp>
WM_SEC.AUTH_SIGNATURE: <computed_signature>
WM_SVC.NAME: NexusCommerce
WM_QOS.CORRELATION_ID: <request_uuid>Synced Data
| Data Type | Direction | Walmart API Endpoint | Notes |
|---|---|---|---|
| Products (Items) | Read / Write | /v3/items | Full catalog sync via feeds |
| Inventory | Read / Write | /v3/inventory | Seller-managed inventory levels |
| Pricing | Read / Write | /v3/price | Regular and sale prices |
| Orders | Read | /v3/orders | All statuses with pagination |
| Shipment Confirmation | Write | /v3/orders/{purchaseOrderId}/shipping | Required for order release |
| Returns | Read | /v3/returns | Return requests and status |
| Feed Status | Read | /v3/feeds/{feedId} | Async feed processing status |
Configuration Options
| Key | Type | Default | Description |
|---|---|---|---|
channel_type | string | SELLER | Walmart channel type |
sync_interval_minutes | integer | 60 | Polling frequency |
order_lookback_days | integer | 30 | Historical order window |
inventory_buffer_pct | integer | 0 | Safety stock reserve |
feed_poll_interval_seconds | integer | 30 | How often to check async feed status |
price_sync_enabled | boolean | true | Push price updates to Walmart |
wfs_inventory_sync | boolean | false | Read WFS inventory levels (read-only) |
Supported Features
| Feature | Supported | Notes |
|---|---|---|
| Product listing sync | Yes | Via Bulk Item Feed |
| Inventory updates | Yes | Per-SKU and bulk feed |
| Order sync | Yes | Polling only |
| Shipment confirmation | Yes | Required within Walmart SLA |
| Returns management | Yes | Read and acknowledge returns |
| Pricing updates | Yes | Regular and sale/promotional prices |
| Item status tracking | Yes | Reflects Walmart publish status |
| Webhooks | No | Polling only |
| WFS inventory | Partial | Read-only |
| Advertising data | No | Not available via Marketplace API |
| Multi-marketplace | No | Walmart.com US only |
Feed-Based Operations
Many Walmart operations (item creation, bulk inventory, bulk pricing) are asynchronous. NexusCommerce submits a feed and then polls /v3/feeds/{feedId} for completion.
Typical feed processing times:
| Feed Type | Expected Processing Time |
|---|---|
| Item setup | 5 – 60 minutes |
| Inventory update | 1 – 5 minutes |
| Price update | 1 – 5 minutes |
| Shipment | Near real-time |
The adapter stores the feedId in Redis and polls until the feed reaches a terminal status (PROCESSED or ERROR). Feed results are written to the sync log with per-item error details.
Rate Limits & Quotas
Walmart enforces rate limits per API endpoint. General limits:
| Endpoint Group | Rate Limit |
|---|---|
| Orders | 10 req/s |
| Items | 5 req/s |
| Inventory | 10 req/s |
| Pricing | 5 req/s |
| Feeds | 1 req/s |
When a 429 response is received, the adapter reads the Retry-After header and pauses before retrying. Rate limit state is tracked in Redis per connection.
Troubleshooting
Invalid Signature error on all requests
The private key does not match the Consumer ID, or the key is not in PKCS#8 format. Regenerate your API keys in Walmart Seller Center and re-enter the credentials. Ensure the PEM block uses BEGIN PRIVATE KEY (PKCS#8), not BEGIN RSA PRIVATE KEY (PKCS#1).
Items stuck in IN_PROGRESS status
Walmart is reviewing your listing. This typically resolves within 24–48 hours. If an item stays in IN_PROGRESS for more than 72 hours, check the Walmart Seller Help portal for listing violations (e.g., restricted categories, content policy violations).
Orders not appearing after shipment
Walmart requires shipment confirmation within the promised delivery window. Unconfirmed orders remain in Created status. Ensure the carrier code and tracking number are valid — Walmart validates these against a carrier allowlist.
SYSTEM_PROBLEM on item feed
The item data failed Walmart's validation. Check the feed result via /v3/feeds/{feedId}?includeDetails=true for per-item error codes. Common issues: missing required attributes, invalid product category, prohibited brand names.
403 Forbidden on inventory endpoints
Confirm the Consumer ID has the INVENTORY_MANAGEMENT role assigned in Walmart Seller Center > API Management.