Skip to main content

WooCommerce Store Management

This is the installation and configuration guide for WooCommerce Store Management, the module you downloaded from your ECOSIRE dashboard. Everything on this page describes the woocommerce_store_management module exactly as it ships today — the facts below were read out of the released build, not from a roadmap.

Technical namewoocommerce_store_management
Odoo versions17.0, 18.0, 19.0 (Community or Enterprise)
Current shipped version17.0 → 17.0.2.3.1, 18.0 → 18.0.2.3.1, 19.0 → 19.0.2.3.1
Price$499 USD — one-time, per Odoo version
Odoo module licenceOPL-1 (Odoo Proprietary License v1.0)
CategoryConnector
What changed in 2.3.1

Dashboard and sync endpoints now respect company boundaries.

  • Company boundaries. In a database with more than one company, the dashboard and the status and sync endpoints could reach the WooCommerce connection, orders and sync activity of another company. They now work only with the connections of the companies you are currently working in (the company switcher), and a connection of another company is refused without returning anything about it. We recommend every multi-company installation upgrades.
  • Only WooCommerce Managers start a sync. Starting a sync from the dashboard, the Sync buttons or the sync endpoint now requires the WooCommerce Manager group. WooCommerce Users keep their read access. Scheduled syncs are unaffected. Processing, retrying or cancelling a synchronization queue is also a WooCommerce Manager task now.
  • Orders are never lost to an unknown product. A line whose product is not yet in Odoo now gets a product carrying the store's SKU and product id; before, the whole order failed to import.
  • Coupons export once, then update in place, with the store's own product ids, and coupon and product-tag changes on the store arrive through their webhooks. A failed queue line is now marked failed, never done.
  • Dashboard in your company currency, with real top products and totals read in one query; a custom date range includes the whole end day. Click a day on the sales chart or a slice of the order-status chart to open those orders; cancelled orders are no longer counted twice.
  • Compliance screens: an EU Product Safety (GPSR) page on products, an EU / US Tax Compliance page on customer invoices, and Configuration → HPOS Compatibility with a Detect HPOS button on each connection.
  • Options nothing could honour were removed: Include Product Images and Include Product Variants (export wizard), the import wizard's own Sync Frequency (the connection's setting drives the schedule) and the connection wizard's API Version. Create Missing Records and Update Existing Records on the export wizard now decide what is pushed.

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, product, stock, account, contacts, delivery, mail, web, portal, digest, knowledge — Odoo installs any that are missing
Python packagesrequests
Platform accountA WooCommerce account with API access

Install the Python packages into the same interpreter that runs Odoo:

sudo -u odoo pip install requests

Installation​

1. Download the ZIP for your Odoo version​

Sign in at ecosire.com and open your dashboard downloads, or use the ZIP you received from the Odoo App Store.

2. Extract into your addons path​

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

The module must end up as a single top-level woocommerce_store_management/ directory with __manifest__.py directly inside it. If your ls check fails, the folder landed one level too deep or too shallow — move it so the path above resolves.

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 WooCommerce Store Management and click Install.
  3. Odoo pulls in the Odoo apps listed above automatically.

When the install finishes, a WooCommerce menu appears in the main Odoo app switcher.

Licensing​

woocommerce_store_management installs and runs standalone on Odoo 17, 18 and 19 -- there is no separate ECOSIRE dependency to install first, no key to enter and nothing to switch on afterward. Your use of the module is governed by the OPL-1 licence.

Configuration​

Connect to WooCommerce​

Create a connection record on the woocommerce.configuration model. The fields the module defines for the connection are:

FieldTechnical nameTypeRequired
Configuration NamenameCharYes
WooCommerce URLwoocommerce_urlCharYes
Consumer Keyconsumer_keyCharYes
Consumer Secretconsumer_secretCharYes
API Versionapi_versionSelectionYes
Companycompany_idMany2oneYes
MarketplacemarketplaceCharNo

The fields marked Yes are enforced by the model — Odoo will not let you save the record without them. The technical name is the reliable identifier if your screen wording differs.

The consumer secret is readable and writable by Odoo system administrators only; a WooCommerce Manager without system rights works with the connection but never sees the secret.

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 module 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.

The module's own source contacts this host: woocommerce.github.io. Your firewall must allow outbound HTTPS to them.

Public endpoint: the webhook receiver​

The module registers one publicly reachable HTTP route. It is the only endpoint on this module served without an Odoo login, so it is worth knowing exactly what it does before you expose your instance.

EndpointMethodAuthPurpose
/woocommerce/webhookPOSTpublic (no Odoo session)Receives inbound WooCommerce event deliveries

Register this URL as the Delivery URL of a webhook in WooCommerce (WooCommerce → Settings → Advanced → Webhooks), in the form https://erp.example.com/woocommerce/webhook — substituting the real host you set in web.base.url.

WooCommerce core signs every delivery as base64(HMAC-SHA256(webhook secret, raw request body)) and sends it in the X-WC-Webhook-Signature header. The receiver recomputes that from the raw bytes and compares it in constant time.

Put the same secret in both places: the Secret field of the WooCommerce webhook, and the Secret Key (secret) field of the matching woocommerce.webhook record in Odoo. If the Odoo record has no secret, the delivery is rejected — the receiver never falls back to trusting an unsigned body.

A delivery is acknowledged ({"status": "success"}) only after an active webhook record verifies it. Missing secret, missing X-WC-Webhook-Signature header, or a digest mismatch are all rejected with HTTP 403, logged with the caller's IP, and nothing is processed.

The module's remaining routes — /woocommerce/api/status, /woocommerce/api/sync and /woocommerce/dashboard/data — are internal JSON-RPC endpoints used by the module's own screens. They require a logged-in Odoo user and are not part of your external setup.

Scheduled actions​

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

Scheduled actionRuns everyEnabled on install
WooCommerce: Sync Products1 hourYes
WooCommerce: Sync Orders30 minutesYes
WooCommerce: Sync Customers6 hoursYes
WooCommerce: Sync Inventory15 minutesYes
WooCommerce: Test Connection1 dayYes
WooCommerce: Cleanup Old Logs1 dayYes

Intervals above are the shipped defaults. Adjust them to your volume — but be aware that the platform, not Odoo, sets the API rate limits, and shortening a sync interval is the usual cause of throttling errors in the logs.

Using the module​

The module's menu is laid out as:

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

A normal first run is:

  1. Save the connection record and confirm the module reports a successful connection before importing anything.
  2. Review the mapping records so imported data lands on the right Odoo records.
  3. Run a small import first — restrict it by date or by a handful of products — and check the results before letting the scheduled actions take over.
  4. Watch the log records during the first full sync. Failures are recorded there rather than raised at the user.

Compliance data​

  • HPOS: press Detect HPOS on a connection. The HPOS Compatibility record shows whether the store stores orders in HPOS, legacy posts or both (with compatibility sync), the WooCommerce version, and the active plugins to check for HPOS compatibility.
  • GPSR: each product has an EU Product Safety (GPSR) page for the manufacturer, EU importer, safety warnings and a GPSR Compliant tick. When the product is exported, these travel to WooCommerce as product metadata (_gpsr_* keys) for your theme or GPSR plugin to display.
  • EU OSS / US sales tax: customer invoices have an EU / US Tax Compliance page for the OSS / IOSS scheme, IOSS intermediary, US nexus state and tax category.

Troubleshooting​

Syncing​

SymptomCause and fix
The connection will not validateRe-check every required field in the table above. Most failures are a mistyped secret, or credentials created for a sandbox while the module points at production (or vice-versa).
Nothing syncs even though the connection is fineThe scheduled actions are disabled at the Odoo level, 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 module's log records for that run. Rate limiting and rejected field values are the two common causes; both are logged with the platform's own error text.
Records import but map to the wrong Odoo valuesFix the mapping records under the module's configuration, 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.

Version history​

Odoo versionVersion you download today
17.017.0.2.3.1
18.018.0.2.3.1
19.019.0.2.3.1

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

Support​