BigCommerce Store Management
This is the installation and configuration guide for BigCommerce Store Management, the module you downloaded from your ECOSIRE dashboard or your Odoo App Store purchase. Everything on this page describes the bigcommerce_store_management module exactly as it ships today — the facts below were read out of the released build, not from a roadmap.
| Technical name | bigcommerce_store_management |
| Odoo versions | 17.0, 18.0, 19.0 (Community or Enterprise) |
| Current shipped version | 17.0 → 17.0.2.1.0, 18.0 → 18.0.2.1.0, 19.0 → 19.0.2.2.0 |
| Price | $499 USD — one-time, per Odoo version |
| Odoo module licence | OPL-1 (Odoo Proprietary License) |
| Category | Sales |
The module installs and runs standalone. There is no ECOSIRE licence client to install, no activation key to paste, and no call-home verification. Your right to use the module is the OPL-1 licence you bought it under — nothing to configure, nothing that can expire and lock you out.
What the connector does
- Orders — automatic import. A scheduled action pulls BigCommerce orders into Odoo every hour, and a Sync Orders button runs the same import on demand. Each import creates an Odoo quotation (or updates the existing one — a re-run refreshes the order's status instead of duplicating it), and fetches the order's line items from BigCommerce. Runs are capped at 1,000 orders per pass and write a sync-log entry you can review afterwards. Buyers are resolved onto an Odoo customer by email, then by billing company or name; a guest checkout falls back to a shared guest contact, so it never blocks the import.
- Products — import and export. The Import Wizard pages through your BigCommerce catalog
and creates or updates
product.templaterecords (matched on the BigCommerce product id, falling back to SKU). The Export Wizard pushes Odoo products to the BigCommerce catalog — creating a listing when the product has no BigCommerce id yet and updating it when it does — and can optionally push new variants and the product image along with it. - Customers — import and export. The Import Wizard pages through your BigCommerce customers and creates or updates Odoo contacts (matched on the stored BigCommerce id, then on email). The Export Wizard pushes Odoo contacts to BigCommerce in batches.
- Inventory — both directions, on demand. The Import Wizard reads the store's stock levels and applies Odoo inventory adjustments on the warehouse mapped to your BigCommerce location; the Export Wizard pushes Odoo's on-hand back to the store as an absolute set — the store's level becomes Odoo's number, not a delta added on top of it.
- Fault-tolerant runs. Every import loop wraps each record in its own savepoint: one rejected record is logged and skipped — it cannot abort the rest of the run or roll back the records that already succeeded.
- Dashboard. An OWL dashboard reads KPIs, a sales trend chart, an order-status breakdown, top products and recent sync activity straight from your synced records.
Capabilities the connector deliberately does not have (buttons for them raise a clear "not available" message rather than pretending): single-record import/update/delete of BigCommerce categories, coupons, tags, product attributes, shipping methods and payment gateways, order export/deletion from Odoo, and creating or modifying webhooks on BigCommerce from Odoo. Product and order sync (above) is the supported surface.
Requirements
| Requirement | Detail |
|---|---|
| Odoo | 17.0, 18.0 or 19.0, Community or Enterprise. Self-hosted or Odoo.sh — Odoo Online (SaaS) cannot install third-party modules |
| Odoo apps | base, sale_management, stock, account, delivery, mail, web, product, contacts — Odoo installs any that are missing |
| Python packages | requests |
| Platform account | A BigCommerce store with API access (Store Hash + API Token) |
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 download the build matching your Odoo version from your dashboard, or use the ZIP attached to your Odoo App Store purchase.
2. Extract into your addons path
unzip bigcommerce_store_management_v19_*.zip -d /opt/odoo/addons/
ls /opt/odoo/addons/bigcommerce_store_management/__manifest__.py # sanity check
The module must end up as a single top-level bigcommerce_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
- Go to Apps and click Update Apps List (developer mode must be on).
- Search for BigCommerce Store Management and click Install.
- Odoo pulls in the Odoo apps listed above automatically. There are no other ECOSIRE modules to install.
When the install finishes, a BigCommerce menu appears in the main Odoo app switcher.
Configuration
Connect to BigCommerce
Create a connection record on the bigcommerce.configuration model. The fields the module defines for the connection are:
| Field | Technical name | Type | Required |
|---|---|---|---|
| Configuration Name | name | Char | Yes |
| Store Hash | store_hash | Char | Yes |
| API Token | api_token | Char | Yes |
| Company | company_id | Many2one | Yes |
| BigCommerce URL | bigcommerce_url | Char | No |
| Client ID | client_id | Char | No |
| Marketplace | marketplace | Char | No |
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.
Authentication uses the API token in the X-Auth-Token header on every call; when you also
fill Client ID it is sent as X-Auth-Client. The module's own source contacts
api.bigcommerce.com (and api.bigcommerce-staging.com when you point a configuration at
the sandbox), plus your storefront host store-<hash>.mybigcommerce.com for storefront
reads. Your firewall must allow outbound HTTPS to them.
Use BigCommerce → Operations → Test Connection (or the Test Connection button on the configuration) before your first import — it reports success or the platform's own error text, which is the fastest way to catch a mistyped token.
Sync settings on the connection
The connection record carries 7 behaviour checkboxes — sync_products, sync_orders,
sync_customers, sync_inventory, auto_sync_products, auto_sync_orders,
auto_sync_customers. Of these, Sync Orders is the one with teeth: the hourly scheduled
action and the Sync Orders button only run for connections where it is enabled. The
product, customer and inventory switches are stored on the configuration and reflected on
the dashboard; the manual Import Wizard always imports exactly the data types you tick in
the wizard itself, regardless of these switches.
Import and export wizards
BigCommerce → Operations → Import Wizard — choose any combination of Products, Customers, Orders and Inventory; set an import limit per type (default 100); decide whether missing records may be created and whether existing ones may be updated; pick a sync frequency for the connection. The wizard reports honest counters when it finishes — processed, created, updated, skipped and failed — and one rejected record never aborts the rest of the run.
BigCommerce → Operations → Export Wizard — push Odoo products to the BigCommerce catalog (optionally including new variants and the product image), push Odoo contacts to BigCommerce in batches, and set the store's stock levels to Odoo's on-hand. Exports stamp the BigCommerce id back onto the Odoo record, so re-exporting updates the listing instead of creating a duplicate. Odoo-born orders are never pushed back: BigCommerce orders originate on the storefront and only travel into Odoo.
Public endpoints this module exposes
The connector serves one externally reachable endpoint. The path is relative to your Odoo base URL
(web.base.url), so the address looks like https://erp.example.com/bigcommerce/webhook.
| Endpoint | Method | Auth | Purpose |
|---|---|---|---|
/bigcommerce/webhook | POST | Public (unauthenticated) | Receives BigCommerce webhook deliveries |
/bigcommerce/webhook fails closed. A delivery is acknowledged only after an active
webhook record (model bigcommerce.webhook, status active) verifies the delivery's
signature against the raw request body and headers. No verified delivery-signature scheme
is implemented for BigCommerce yet, so until that lands every delivery is refused with
HTTP 403 and nothing is processed from it. Do not build your integration on webhook
events — use the scheduled and manual syncs described above; they are the supported path.
Rejected deliveries are written to the Odoo log with the calling IP address, so the endpoint
being publicly reachable never makes it publicly usable.
Internal endpoints
Two JSON-RPC endpoints serve the dashboard and require an authenticated Odoo user session — there is nothing to configure and they are not reachable anonymously:
/bigcommerce/dashboard/data— the KPI, chart and activity payload the dashboard renders/bigcommerce/api/status— connection state and the last product/order/customer sync times
Scheduled actions
The module installs 3 scheduled actions (Settings → Technical → Scheduled Actions):
| Scheduled action | Runs every | Enabled on install |
|---|---|---|
| bigcommerce: Sync Orders | 1 hour | Yes |
| bigcommerce: Test Connection | 1 day | Yes |
| bigcommerce: Cleanup Old Logs | 1 day | Yes |
Intervals above are the shipped defaults. Sync Orders only processes connections with the Sync Orders checkbox enabled, and the platform — not Odoo — sets the API rate limits, so shortening an interval is the usual cause of throttling errors in the logs.
Using the module
The module's menu is laid out as:
- BigCommerce → Dashboard
- BigCommerce → Orders
- BigCommerce → Products
- BigCommerce → Customers
- BigCommerce → Operations — Import Wizard, Export Wizard, Mapping Wizard, Test Connection, Logs, Reports
- BigCommerce → Configuration — Settings
A normal first run is:
- Save the connection record and run Test Connection — confirm it reports success before importing anything.
- Enable Sync Orders on the connection if you want the hourly order import.
- Run a small import first — set a low import limit — and check the results (and the Logs under Operations) before raising the limit.
- Imported orders arrive as Odoo quotations with their lines and customer already resolved; confirm them through your normal Odoo flow.
- Watch the log records during the first full sync. Failures are recorded there rather than raised at the user.
Troubleshooting
Syncing
| Symptom | Cause and fix |
|---|---|
| The connection will not validate | Re-check every required field in the table above. Most failures are a mistyped token, or a sandbox token against the live API host (or vice-versa). |
| Orders are not importing automatically | The hourly Sync Orders cron only runs for connections with Sync Orders enabled, and Odoo's cron worker must be running (--max-cron-threads greater than zero). Check Settings → Technical → Scheduled Actions. |
| Some records fail while the rest import | One bad record is logged and skipped by design — the run continues. Read the Logs under Operations for that record's platform error text. |
| Nothing is returned by the inventory import | No BigCommerce location is mapped to an Odoo warehouse for the connection's company. Map the location first, then re-run. |
| Records import but map to the wrong Odoo values | Fix the mapping records with the Mapping Wizard under Operations, then re-run the import. |
| Duplicated products or customers | Should not happen — imports match on the stored BigCommerce id (then SKU / email) and update instead of duplicating. If you imported on top of pre-existing records created by hand, link them via the mapping before the next run. |
Version history
| Odoo version | Version you download today |
|---|---|
| 17.0 | 17.0.2.1.0 |
| 18.0 | 18.0.2.1.0 |
| 19.0 | 19.0.2.2.0 |
ECOSIRE module versions are <odoo major>.<module major>.<minor>.<patch>, so 19.0.2.2.0 is the Odoo 19 build of module version 2.2.0. Your installed version is shown in Apps.