Skip to main content

Amazon Store Management

Amazon Store Management connects an Amazon selling-partner account to Odoo through the Selling Partner API (SP-API). This page is the installation and configuration guide for the module you downloaded from your ECOSIRE dashboard. Everything below describes the amazon_store_management module as it ships today.

Technical nameamazon_store_management
Odoo versions17.0, 18.0, 19.0 (Community or Enterprise)
Current shipped version17.017.0.2.1.0, 18.018.0.2.1.0, 19.019.0.2.1.0
Price$499 USD — one-time, per Odoo version
Odoo module licenceOPL-1
CategoryConnector
Nothing to activate

This module installs and runs standalone. Since version 19.0.2.1.0 (and its 17.0/18.0 counterparts) it has no licence client and no activation step — there is no licence key to paste and no ECOSIRE.COM menu in Odoo Settings. Your right to use the software is the purchase itself (the OPL-1 licence). If an older guide told you to install ecosire_license_client or visit Settings → ECOSIRE.COM, that no longer applies: nothing in this build asks for it.

What's new in the current build

  • Standalone install (2.1.0) — the separate licence-client module is gone from the requirements. One ZIP, one install, no activation. Order-import enrichment (buyer legal name, country, state) moved into the connector itself, so it works exactly as before.
  • Listing export that actually sends images and variants (2.0.10) — the Include Product Images and Include Product Variants toggles on the export wizard are now wired: images are pushed as SP-API listing image attributes built from your web.base.url (and omitted automatically while that URL is still a localhost default, because Amazon fetches image links server-side), and variants export one listing per sellable variant without touching the siblings' shared SKU fields.
  • Sync Frequency that reschedules the jobs (2.0.10) — choosing a frequency on the import wizard now really reschedules the product, order, customer and inventory scheduled actions (and Manual disables them). Previously the setting was stored and ignored.
  • Resilient syncs (2.0.9) — every record is processed in its own savepoint, so one bad Amazon record is skipped and logged instead of aborting the whole run and rolling back every good record with it.
  • Correct order-line prices (2.0.8) — imported order lines used to store an Amazon item price of 0.00; the line price now carries the real SP-API ItemPrice.Amount, and the Odoo unit price is derived from it.

Requirements

RequirementDetail
Odoo17.0, 18.0 or 19.0, Community or Enterprise. Self-hosted or Odoo.sh — Odoo Online (SaaS) cannot install third-party modules
Odoo appsbase, sale_management, stock, account, delivery, mail, web, product, contacts — Odoo installs any that are missing automatically
Python packagepython-amazon-sp-api (import name sp_api) in the interpreter that runs Odoo: pip install python-amazon-sp-api
Platform accountAn Amazon seller/partner account with SP-API access

Installation

1. Download the ZIP for your Odoo version

Sign in at ecosire.com and open your dashboard downloads. Take the file matching your Odoo version — each major version is a separate build.

2. Extract into your addons path

unzip amazon_store_management_v19_*.zip -d /opt/odoo/addons/
ls /opt/odoo/addons/amazon_store_management/__manifest__.py # sanity check

The archive contains a single top-level amazon_store_management/ directory. If your ls check fails, the module folder ended up one level too deep — move it up so __manifest__.py sits directly inside amazon_store_management/.

3. Restart Odoo and install

sudo systemctl restart odoo
  1. Go to Apps and click Update Apps List (developer mode must be on).
  2. Search for Amazon Store Management and click Install.
  3. Odoo pulls in the Odoo apps listed above automatically.

When the install finishes, an Amazon menu appears in the main Odoo app switcher.

Configuration

Connect to Amazon

Open Amazon → Configuration → Settings and create a record (model amazon.configuration). The connection fields are:

LabelTechnical nameRequiredValues
Seller IDseller_idYesText
LWA Client IDclient_idYesText
LWA Client Secretclient_secretYesText
LWA Refresh Tokenrefresh_tokenYesText
AWS Access Key ID (legacy)aws_access_keyNoText
AWS Secret Access Key (legacy)aws_secret_keyNoText
API RegionregionYesSelection: na, eu, fe
MarketplacemarketplaceYesSelection: US, CA, MX, BR, UK, DE, FR, IT, ES, NL, SE, PL, TR, AE, IN, JP, AU, SG

The LWA Client ID, LWA Client Secret and LWA Refresh Token come from the Login-with-Amazon application attached to your SP-API app; Seller ID is your merchant token. The two AWS ... fields are marked legacy in the module and are not required by current SP-API auth — leave them empty unless an older credential set specifically needs them.

The same record carries 7 behaviour checkboxes — sync_products, sync_orders, sync_customers, sync_inventory, auto_sync_products, auto_sync_orders, auto_sync_customers. They gate what the connector is allowed to do automatically once it is connected. Leave anything you are not ready for switched off, and turn them on one at a time.

Credentials are issued from the Amazon Seller Central / Solution Provider Portal — see developer-docs.amazon.com/sp-api. The connector talks to sellingpartnerapi-na.amazon.com, sellingpartnerapi-eu.amazon.com, sellingpartnerapi-fe.amazon.com (chosen by API Region), with LWA tokens from api.amazon.com/auth/o2/token.

When the fields are filled in, click Test Connection. The record's status moves to connected only when the platform answers successfully — do not run a first import until it does.

Scheduled actions

The module installs 6 scheduled actions (Settings → Technical → Scheduled Actions):

Scheduled actionRuns everyEnabled on install
amazon: Sync Products1 hoursYes
amazon: Sync Orders30 minutesYes
amazon: Sync Customers6 hoursYes
amazon: Sync Inventory15 minutesYes
amazon: Test Connection1 daysYes
amazon: Cleanup Old Logs1 daysYes

Intervals above are the shipped defaults. You can adjust them directly, or set Sync Frequency on the import wizard (Manual, Every Hour, Every 6 Hours, Daily) and let it reschedule the product, order, customer and inventory jobs for you — Manual switches them off. Be aware that Amazon, not Odoo, sets the API rate limits, and shortening a sync interval is the usual cause of throttling errors in the logs.

Endpoints this module exposes

Public endpoint

The connector serves one externally reachable endpoint. The path is relative to your Odoo base URL (web.base.url), so the address would look like https://erp.example.com/amazon/webhook.

EndpointMethodAuthPurpose
/amazon/webhookPOSTPublic (unauthenticated)Receives Amazon event deliveries for webhook records (model amazon.webhook)

/amazon/webhook fails closed. A delivery is acknowledged only after an active webhook record whose status is active verifies the delivery's signature against the raw request body and headers; anything else is answered HTTP 403 and nothing is processed from it. Rejected deliveries are written to the Odoo log with the calling IP address.

Webhook deliveries are currently all rejected

Amazon's delivery-signature scheme is not pinned for this connector yet, so signature verification deliberately rejects every inbound delivery rather than accept an unauthenticated payload. Do not rely on webhooks for your data today — the scheduled actions and the import/export wizards are the data path. The endpoint and the webhook records (topic per configuration, delivery URL, secret key, pause/resume, webhook log) exist so the surface is stable and observable while order-event processing waits on signature verification.

Internal endpoints

Three JSON-RPC endpoints (login required — auth='user') serve the dashboard and quick actions; they need no external wiring:

EndpointPurpose
/amazon/dashboard/dataAggregated KPIs, chart series, status and recent activity for the dashboard
/amazon/api/syncTriggers a products / orders / customers sync from the dashboard's Sync Now
/amazon/api/statusReports connection state and per-type last-sync times

Using the module

The Amazon menu is laid out as:

  • Amazon → Dashboard
  • Amazon → Products
  • Amazon → Orders
  • Amazon → Customers
  • Amazon → Operations — Import Wizard, Export Wizard, Mapping Wizard, Test Connection, Logs, Reports
  • Amazon → Configuration — Settings

A normal first run is:

  1. Test Connection until the instance reads connected.
  2. Review the mapping records (product categories, order statuses, payment methods, shipping methods, customer groups, product attributes) so imported data lands on the right Odoo records.
  3. Run a small import first — restrict it with the wizard's Import Limit and by a handful of products — and check the results before letting the scheduled actions take over.
  4. Watch the Logs view during the first full sync. Every sync writes a log line; failures are recorded there rather than raised at the user.

Importing

Amazon → Operations → Import Wizard chooses what to pull from Amazon: products, orders, customers and/or inventory, with an Import Limit, and the options Create Missing Products, Create Missing Customers, Update Existing and Map Only (analyse the mapping without writing). Imported orders carry their Amazon fulfillment channel (FBA AFN / merchant FBM), shipping, tax and discount totals; imported products carry ASIN, SKU, brand, category, listing status, Buy Box price and winner flag; FBA stock levels land on the product's FBA Quantity.

Exporting to Amazon

Amazon → Operations → Export Wizard pushes data the other way: products (listings), orders, customers and/or inventory, with Update Existing / Create Missing and an Export Limit. The two listing toggles matter:

  • Include Product Images — sends the product's image URLs to Amazon as listing image attributes. The URLs are built from web.base.url, so set that system parameter to your real public HTTPS URL first; while it is still a localhost default, image attributes are omitted (Amazon fetches image locations server-side, and a localhost link would fail ingestion silently).
  • Include Product Variants — exports one listing per sellable variant, writing only variant-scoped fields so sibling variants are not overwritten.

Dashboard

Amazon → Dashboard shows revenue, order, customer and product KPIs with period-over-period deltas, a 30-day sales trend chart, an order-status breakdown, recent sync activity, quick-action buttons (Products, Orders, Customers, Queue, Logs, Settings), Sync Now / Refresh buttons and a status footer (queue jobs, errors, out-of-stock, sync success rate). Period filters run Today / 7D / 30D / 90D / Year / Custom, and the dashboard refreshes itself every 60 seconds.

Module-specific notes

  • Authentication is Login-with-Amazon (LWA), not the legacy AWS signature: LWA Client ID, LWA Client Secret and LWA Refresh Token are the required trio.
  • API Region (na, eu, fe) selects the SP-API host and must match the marketplace you sell in.
  • Marketplace is required and covers 18 Amazon marketplaces: US, CA, MX, BR, UK, DE, FR, IT, ES, NL, SE, PL, TR, AE, IN, JP, AU and SG. One configuration connects one marketplace — create one configuration record per marketplace you sell in.
  • A failed record never kills the run: each record syncs in its own savepoint and a failure is logged per record.

Troubleshooting

SymptomCause and fix
Install fails on No module named sp_apipip install python-amazon-sp-api into the Python environment that runs Odoo, then restart.
Test Connection failsRe-check every required field in the table above. Most failures are a mistyped secret, or credentials created for the sandbox while the connector points at production (or vice-versa).
Nothing syncs even though the connection is fineThe scheduled actions are disabled at the Odoo level (check the import wizard's Sync FrequencyManual disables them), or Odoo's cron worker is not running. Check Settings → Technical → Scheduled Actions and that --max-cron-threads is greater than zero.
Sync starts then stops part-wayRead the Logs view for that run. Rate limiting and rejected field values are the two common causes; both are logged with Amazon's own error text. A single bad record is skipped, not the cause of a stop — look for a repeated error instead.
Records import but map to the wrong Odoo valuesFix the mapping records under Amazon → Operations → Mapping Wizard, then re-run the import.
Duplicated products or customersRun the initial import once. If a first attempt half-finished, check the existing records before re-running rather than importing on top.
Exported listings carry no imagesweb.base.url is still a localhost default, so image attributes are deliberately omitted. Set it to your public HTTPS URL and export again.
Webhook deliveries all answered 403Expected today — see the warning above. Signature verification is not enabled for Amazon deliveries yet; use the scheduled actions.

Version history

Odoo versionVersion you download today
17.017.0.2.1.0
18.018.0.2.1.0
19.019.0.2.1.0

ECOSIRE module versions are <odoo major>.<module major>.<minor>.<patch>, so 19.0.2.1.0 is the Odoo 19 build of module version 2.1.0. Your installed version is shown in Apps.

Support