Skip to main content

OpenCart Store Management

The ECOSIRE OpenCart Store Management module connects a self-hosted OpenCart store to Odoo ERP. It imports products, orders and customers on a schedule or on a signed webhook, pushes catalogue and stock changes back, and keeps every run visible through a queue, a log and an automation dashboard. Multiple stores can be connected to one Odoo database.

Compatibility: Odoo 17/18/19 Current shipped version: 17.017.0.2.2.5, 18.018.0.2.2.5, 19.019.0.2.2.5 Price: $499 (one-time) License: Up to 3 domain activations

For the full installation, licensing and configuration reference, see the OpenCart Store Management guide.

Key Features

  • Product import and export, including product images
  • Order import, with order-status write-back to OpenCart
  • Customer import and export
  • Stock updates, individually and in bulk
  • Returns and refunds import
  • Multi-store: several OpenCart storefronts against one Odoo database
  • HMAC-signed webhook intake with retained queue payloads
  • Executable product, order and customer import queues with visible status
  • Automation dashboard, per-run logs and scheduled actions you control
  • Carrier and delivery-location mapping, and configurable auto-workflows
  • Detection of the OCMod/extensions installed on the connected store
Requires the REST Admin extension on your store

Core OpenCart ships no data API for products, orders or customers — see OpenCart's API is not enough on its own for the exact routes this connector calls, before you buy any extension.

What's new in 2.2.5

  • Stores on the clean /api/... URL form no longer re-probe on every sync. The URL form discovered by Test Connection is now carried on Odoo 18 and 17 as well as 19, and is written back by the syncs themselves rather than only by the button.

2.2.4

  • Every API call went to a URL most OpenCart stores cannot serve. Requests were built as {store_url}/api/<resource> for OpenCart 4.x instances, so any store without a clean-path rewrite answered with its own 404 page and no sync could complete. Requests now use the universal index.php?route=api/<resource> form, with one-time auto-detection of the clean form.
  • A rendered HTML page is no longer handed back as data, and errors now name the real cause — URL form, missing API user, IP not allow-listed, or REST Admin not installed.
  • Your API credential no longer leaks into error text. OpenCart's 404 page echoes the request URL, which carries api_token. If you ran an earlier build and shared an error screenshot, regenerate the key in System → Users → API.

2.2.3

  • Pending queue jobs now execute. The five-minute processor dispatches product, order and customer import jobs, moves successful work through In Progress to Done, and marks unsupported work Failed with a reason instead of leaving it pending forever.
  • Webhook events are no longer discarded after a successful signature check. Product/catalog, order/sale and customer events are stored with their JSON payload as the matching import job; an unmapped event is retained as a visible failed job for inspection.
  • Each queued job runs in its own database savepoint, so one failed job does not abort the rest of the queue run.
Webhooks trigger a safe full import

A recognised webhook queues the matching full product, order or customer import for the next queue-processing run. It does not yet target only the single remote record, and scheduled polling remains the fallback.

Prerequisites

  • Odoo 17, 18, or 19 (Community or Enterprise edition)
  • An active ECOSIRE license for this module
  • A self-hosted OpenCart installation (version 3.x or 4.x), reachable over HTTPS from your Odoo server
  • An API user created in the OpenCart admin, with your Odoo server's IP on its allow-list
  • The REST Admin extension installed on that store — required for product, order and customer sync, because core OpenCart does not expose those records over its API

Installation

  1. Download the module ZIP from your ECOSIRE Dashboard
  2. Extract to your Odoo addons directory:
    unzip ecosire-opencart-*.zip -d /opt/odoo/addons/
  3. Restart the Odoo service:
    sudo systemctl restart odoo
  4. Navigate to Apps, click Update Apps List
  5. Search for "ECOSIRE OpenCart Store Management" and click Install
  6. Enter your ECOSIRE license key when prompted

Configuration

Step 1: Obtain OpenCart API Credentials

  1. Log in to your OpenCart Admin Panel
  2. Navigate to System then Users then API
  3. Click Add New to create a new API user
  4. Enter a username (e.g., "ecosire_odoo")
  5. Click Generate to create a secure API key
  6. Set Status to Enabled
  7. Under the IP Addresses tab, add the IP address of your Odoo server (or leave empty to allow all IPs during initial setup)
  8. Click Save
  9. Install the REST Admin extension on the store and generate its bearer token. This step is required, not optional: core OpenCart has no product, order or customer API in 3.x or 4.x, so an API user alone lets the connector authenticate and nothing else. Check any extension you are considering against the route list before buying it — several marketplace extensions expose products and categories only.
  10. Note your API Username, API Key, and your OpenCart store URL

Step 2: Connect in Odoo

  1. Go to OpenCart → Configuration → OpenCart Instances and create a record
  2. Enter your store URL, API credentials and the REST Admin bearer token, and set OpenCart Version to match your storefront
  3. Click Test Connection. The record reaches connected only when the store answers — do not import before it does
  4. Set the company and warehouse the instance should map to

The full field-by-field reference is in the configuration section of the module guide.

Step 3: Review the scheduled actions

The module installs four scheduled actions, all enabled on install: product sync (30 minutes), order sync (15 minutes), customer sync (60 minutes) and queue-job processing (5 minutes). Adjust the intervals to your volume under Settings → Technical → Scheduled Actions — the platform sets the rate limits, and shortening an interval is the usual cause of throttling errors in the logs. Stock is handled through the product sync; there is no separate inventory job.

Initial Sync

  1. Go to OpenCart → Tools → Manual Sync and run a small import first — a handful of products, or a restricted date range
  2. Check the imported records and the mapping records before letting the scheduled actions take over
  3. Watch OpenCart → Operations → Logs during the first full run. Every sync writes a log line, and failures are recorded there rather than raised at the user
  4. OpenCart → Operations → Queue Jobs shows webhook-triggered and queued work moving through In Progress to Done or Failed

Dashboard

OpenCart → Automation Dashboard is an OWL dashboard built from your actual product, order, customer and sales records, scoped to the instances visible in your allowed companies. It reports whether each sync completed, partially failed or failed outright, with Chart.js analytics over a date range you choose.

Troubleshooting

IssueSolution
Connection failedVerify API credentials and check network connectivity
Sync not runningCheck Odoo scheduled actions (cron jobs) are enabled
Duplicate productsReview product mapping settings and matching rules
Orders not importingVerify order status filters and date range settings

Support