Walmart Store Management
This guide describes walmart_store_management as it exists in the current ECOSIRE source and deployed sanitized demo.
| Technical name | walmart_store_management |
| Odoo versions | 17.0, 18.0, 19.0 (Community or Enterprise) |
| Current source/demo version | 17.0 → 17.0.2.4.0, 18.0 → 18.0.2.4.0, 19.0 → 19.0.2.4.5 |
| Odoo code licence | OPL-1 |
| Category | Connector |
| Runtime licence dependency | None |
Requirements
| Requirement | Detail |
|---|---|
| Odoo | 17.0, 18.0, or 19.0, Community or Enterprise. Odoo Online cannot install third-party modules. |
| Odoo apps | base, sale_management, stock, account, delivery, mail, web, product, contacts |
| Python package | requests |
| Platform account | Walmart Marketplace seller/partner account with API access for the selected market |
The connector is standalone. It has no ECOSIRE licence-client dependency and no runtime key check.
Install requests in the same Python environment that runs Odoo:
sudo -u odoo pip install requests
Installation
- Download the ZIP matching your Odoo major version.
- Extract it into an Odoo addons path.
unzip walmart_store_management_v19_*.zip -d /opt/odoo/addons/
ls /opt/odoo/addons/walmart_store_management/__manifest__.py
The archive contains one top-level walmart_store_management/ directory. The __manifest__.py file must sit directly inside it.
- Restart Odoo.
sudo systemctl restart odoo
- In Apps, update the Apps list, search for Walmart Store Management, and install it. A Walmart app menu then appears.
Authentication and connection
Walmart Marketplace uses OAuth 2.0 client credentials:
- The connector sends Basic client credentials to
POST /v3/token. - Walmart returns a short-lived access token.
- Marketplace calls carry that token in
WM_SEC.ACCESS_TOKEN, alongside the required Walmart service, correlation, market, and version headers.
Do not convert the resource-call header into Authorization: Bearer. The current official Walmart guidance requires WM_SEC.ACCESS_TOKEN, and the credentialed contract record confirms that plain Bearer authentication returned 401.
See Walmart's Token API guide and authentication troubleshooting.
Create a configuration
Open Walmart → Configuration → Settings and create a record.
| Label | Technical name | Required | Values |
|---|---|---|---|
| Client ID | client_id | Yes | Walmart-issued value |
| Client Secret | client_secret | Yes | Password-protected field |
| Market | market | Yes | us, ca, mx, cl |
| Sandbox Mode | sandbox | No | US sandbox only |
| Fulfillment Type | fulfillment_type | No | sf, wfs, both |
Use Test Connection after saving. The record reports connected only after Walmart accepts the real token and a one-row Global Orders probe. Leave automatic synchronization disabled until the connection and mappings are confirmed.
Executed and source-proven capability boundary
| Area | Evidence level | What can be claimed |
|---|---|---|
| OAuth token and headers | Credentialed contract evidence | Token grant and WM_SEC.ACCESS_TOKEN resource authentication |
| Items | Credentialed contract evidence | Items-family request completed successfully |
| Item taxonomy and Item Spec | Credentialed request/response evidence | Valid product-type discovery and current schema response handling |
| MP_ITEM feeds | Credentialed request plus per-item result evidence | Submit a feed, poll status, and read item-level success/error outcomes |
| Orders and buyers | Provider-shaped automated tests | Paginated order parsing and masked buyer derivation from documented order payload fields |
| Dashboard and access control | Fresh-database automated tests plus public desktop/mobile smoke | Company-scoped KPIs, currency-aware values, route authorization, multi-company isolation, and read-only navigation across six walkthrough pages |
The current contract does not yet contain recorded live calls for 11 endpoint families: claims, fulfillment, insights, inventories, inventory, price, promo, report, reports, returns, and webhooks. The module may contain local records or guarded methods for some of these areas; do not treat their presence as provider-side proof.
Using the public demo
The demo at walmart.demo.ecosire.com is a sanitized local walkthrough. Its configuration is deliberately not connected to a seller account. The read-only account can inspect the dashboard, products, orders, masked buyers, feed outcomes, and logs. Provider-facing schedules are disabled; imports, connection testing, and configuration remain manager-only.
Do not use Test Connection, Sync Now, export, feed-submission, fulfillment, return, webhook, or report actions in the public demo. A real integration walkthrough that uses a seller account requires credentials supplied through ECOSIRE's existing secure access channel and the seller's authorization.
Routes
| Route | Authentication | Purpose |
|---|---|---|
/walmart/webhook | Public HTTP | Fails closed unless a configured webhook record verifies the delivery signature; the public demo does not register provider subscriptions. |
/walmart/api/status | Logged-in Walmart user | Reads the current company configuration status. |
/walmart/api/sync | Logged-in Walmart manager | Triggers only enabled synchronization operations for the current company. |
/walmart/dashboard/data | Logged-in Walmart user | Returns company-scoped local dashboard data and currency metadata. |
Scheduled actions
The module ships scheduled actions for product, order, buyer, inventory, feed-status, price/inventory export, connection-test, stock-state, and log-cleanup workflows. Every provider-facing action is also gated by configuration fields. Review them under Settings → Technical → Scheduled Actions before connecting a production account; disable any workflow outside the scope you have validated.
The bulk catalog-publish action ships inactive and must remain inactive until product mappings, Item Spec fields, feed version, and a rollback plan have been checked.
Troubleshooting
| Symptom | Check |
|---|---|
Install fails on requests | Install the package in Odoo's Python environment, then restart Odoo. |
| Module folder is not found | Confirm walmart_store_management/__manifest__.py is directly under an addons path. |
| Test Connection fails | Confirm market, environment, credentials, scopes, and that sandbox credentials are not being used against production. |
| Walmart returns 401 | Obtain a fresh token and confirm it is sent in WM_SEC.ACCESS_TOKEN; do not substitute a plain Bearer header. |
| A feed is marked processed but products did not publish | Open the feed details and inspect every item ingestion outcome. A processed feed can still contain only item-level errors. |
| Nothing runs automatically | Check both the configuration toggles and Odoo scheduled-action state. |
| Dashboard shows the wrong currency | Confirm the current Odoo company has the intended currency, then refresh assets and the dashboard. Version 19.0.2.4.1 and later use company-currency metadata. |
Version history
| Odoo version | Current source/demo version |
|---|---|
| 17.0 | 17.0.2.4.0 |
| 18.0 | 18.0.2.4.0 |
| 19.0 | 19.0.2.4.5 |