Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Sales
  3. BambooForge Nopcommerce Connector v 18.0
  4. Sales Conditions FAQ

BambooForge Nopcommerce Connector

by BambooForge Labs
Odoo

$ 193.07

v 18.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 17.0 18.0 19.0
You bought this module and need support? Click here!
Versions 17.0 18.0 19.0
  • Description
  • Manifest
  • Documentation
  • License
BambooForge Labs
BambooForge Labs Production-grade Odoo apps · source included · tested
Odoo 18.0 bambooforge.labs@gmail.com

BambooForge nopCommerce Connector

A real connector between Odoo 18 and nopCommerce — the free, open-source ASP.NET Core / C# commerce platform. nopCommerce has no built-in REST API, so this connector reads its MySQL database directly, read-only — no paid API plugin required. It imports products (with categories & image links), customers and orders into Odoo on a schedule, with dry-run safety and full source you can audit.

Odoo 18.0 nopCommerce 4.x Direct MySQL read (no API plugin) Live-tested on nopCommerce 4.80 Read-only import Scheduled sync Source included
Buy & deploy today →
24-hour supportWe answer every request within 24 hours — setup help included.
2-month money-backReport a bug within 2 months of purchase — if it isn't resolved within 15 days, you get a full refund.
Live-tested, not theoreticalVerified against a real nopCommerce 4.80 MySQL database — 12 products, 6 customers, 5 orders, 0 errors.
Full source includedComplete source in the package — audit every line, extend it freely, never get locked in.
importproducts · customers · orders
0errors on the live nopCommerce 4.80 import
no APIdirect MySQL read — no paid plugin needed
read-onlynever writes back to nopCommerce
Tested for real

Verified live against a running nopCommerce

We don't just claim a vague version range. The connector was installed on Odoo 18, pointed at a live, locally-run nopCommerce 4.80 (MySQL) with its sample data, and run through a full product / customer / order import — 0 errors.

nopCommerce versionConnectionLive result
4.80MySQL (direct DB read)✔ Live-tested — 12 products / 6 customers / 5 orders, 0 errors
4.6 – 4.7xMySQL✔ Compatible (same core schema) — validate on your build
4.x lineMySQL / SQL Server (SQL Server = roadmap)✔ Supported where the schema matches

The live test imported 12 products, 6 customers and 5 orders with no errors. Orders resolved to their customers by email and carried 2–3 line items each — for example "Apple MacBook Pro" at $1800, "Adobe Photoshop" at $75 and "Build your own computer" at $1200. nopCommerce stores prices as decimal major units (e.g. 1800.00), so they are taken verbatim with no minor-unit conversion.

Built to actually sync — not to look busy

nopCommerce ships no built-in REST API (the official Web API is a paid plugin), so this connector takes the pragmatic route: it reads your nopCommerce MySQL database directly and read-only, pulling products with their categories and image links, customers and orders straight from the source tables. Every model ships with verifiable sync logic — no fake dashboards, no “readiness score” with nothing behind it.

What you actually get

Everything below ships in the box — a read-only, import-first connector that reads your nopCommerce MySQL database directly, with no paid API plugin required.

P

Products & categories

Products import with name, SKU, price, stock quantity and published flag. Categories come in through the product-category mapping, and picture/image links are built from your storefront URL. Variant/attribute combinations are recorded as a count for now.

C

Customers & roles

Each nopCommerce customer becomes a res.partner — first / last name, email, company and phone — with the customer role / group captured as well.

O

Orders with status mapping

Orders import with their custom order number, line items, shipping and tax totals, and payment method. nopCommerce statuses (Pending / Processing / Complete / Cancelled) map to Odoo order states through an editable, configurable mapping. Each order resolves to its Odoo customer by email.

R

Refunds & credit notes

Refund / credit-note import is on the roadmap — this version focuses on a clean, verified product / customer / order import. We frame scope honestly rather than ship a half-working claim.

Scheduled sync

nopCommerce can't push to Odoo without a custom plugin, so the connector imports on a schedule (cron) — point it at the database and it keeps Odoo up to date. Webhook / live-push is on the roadmap.

{ }

Direct MySQL reader

One read-only database client: you supply host, port, database name, user and password plus your storefront URL. No API key, no token, no paid Web API plugin — and it never writes back to nopCommerce.

Sync Control Tower

A live operations dashboard: a kanban of your instances surfacing per-instance health, circuit-breaker state, queue/backlog depth, dead-letter count, conflict count, 24-hour throughput and failure rate as clickable stat cards that drill straight into the queue, dead-letter and conflict views. At-risk instances are colour-flagged.

Bulk dead-letter console

A dedicated view of exhausted-retry jobs grouped by error type, with bulk requeue or discard actions — clear a whole class of failures in one move instead of one job at a time.

Conflict-resolution workbench

A triage list with a side-by-side Odoo-vs-remote snapshot diff, plus bulk resolution: Odoo-wins, remote-wins or mark-reviewed. See exactly what diverged before you decide.

Conditional branching

The multi-step flow engine walks true/false branches from a condition step's boolean result (true_step_id / false_step_id), with a loop guard against cyclic links. Flows with no branch links simply fall through to the next step in sequence — fully backward-compatible.

Field-Mapping Studio

A payload-test wizard: paste a sample JSON payload and see exactly how each field mapping transforms it, all in a consolidated mapping studio view — plus one-click mapping suggestions to get you started.

Guarded stock import

The two-way stock framework installs with a 3-layer oversell guard (instance clamp + safety buffer + adapter floor) and delta logic. Because nopCommerce is a read-only mirror with no write API, the outbound push is intentionally not supported — the export job records a clear read-only skip and never makes a partial write. What runs here is the inbound half: a guarded, opt-in import of platform stock into real Odoo inventory (an actual inventory adjustment, never in dry-run).

See it running

A live walkthrough inside Odoo 18

Recorded in a real Odoo 18 reading a live nopCommerce 4.80 MySQL database — the connection cockpit, a synced product and order, the status mapping and the flow engine, all on real data.

Your browser does not support embedded video — see the screenshots below.
Real screenshots

Every screen, from a live install

Captured from a running Odoo 18 reading a live nopCommerce 4.80 MySQL database — real data imported through the connector, not mockups.

Connection cockpit
Connection cockpitPer-instance health, trust score, onboarding and one-click safety controls — connected and green.
Synced product
Synced productAn imported product with its price, category and platform fields, live in Odoo.
Imported order
Imported orderCustomer, order lines and totals — brought in through the state mapping.
Order-state mapping
Order-state mappingEditable platform-state → Odoo-action table, seeded with sensible defaults per instance.
Flow engine templates
Flow engine templatesMulti-step import/export flows (fetch → map → upsert → log) ready to run.
Sync Control Tower — nopCommerce connector
Sync Control TowerEvery store on one board: health, circuit-breaker state, backlog, dead-letters, conflicts, 24h throughput and failure rate — drill into any number in a click.
Dead-letter console — nopCommerce connector
Dead-letter consoleExhausted-retry jobs grouped by error type with the exact API error kept — bulk requeue or discard once the remote system is fixed.
Conflict workbench — nopCommerce connector
Conflict workbenchRecords changed on both sides shown Odoo vs. remote with a field diff — resolve with “Odoo wins”, “Remote wins” or mark reviewed.
Premium operations, in motion

Run every nopCommerce store from one Control Tower

A short walkthrough of the operations tooling on real data: the Control Tower board, the side-by-side conflict workbench and the bulk dead-letter console.

Your browser does not support embedded video — see the screenshots above.

Production safety, by default

Resilient queue

Retry with exponential backoff, rate-limit awareness, dead-letter handling and conflict capture for every job.

Circuit breaker

Auto-pauses sync after N consecutive failures so a broken endpoint can never flood your data.

Dry-run mode

Default-ON for every new instance — preview the exact write before anything touches live records.

Pre-flight validation

Blocking and warning findings surfaced before go-live, with auto-fix suggestions.

Rollback snapshots

Capture record state before risky writes and roll back cleanly when needed.

Read-only by design

The connector only reads your nopCommerce database — it never writes, updates or deletes a row, so a sync can never alter your live store.

Honest feature matrix

No asterisks, no fake checkmarks. Here is exactly what this version does — and what is on the roadmap.

CapabilityStatus
Direct read-only MySQL connection (no paid API plugin)✔ Included
Product import (name, SKU, price, stock, published flag)✔ Included
Prices taken verbatim (decimal major units, no conversion)✔ Included
Picture / image links built from the storefront URL✔ Included
Categories → Odoo product category✔ Included
Variant / attribute combinations: count recorded✔ Included
Customers (name, email, company, phone, role / group)✔ Included
Orders + line items + shipping/tax totals + payment method✔ Included
Order status mapping (Pending / Processing / Complete / Cancelled)✔ Included
Orders resolve to Odoo customer by email✔ Included
Scheduled (cron) import✔ Included
Pre-flight validation · rollback snapshots · dry-run✔ Included
Sync Control Tower (live per-instance health dashboard)✔ Included
Bulk dead-letter console (requeue / discard by error type)✔ Included
Conflict-resolution workbench (side-by-side diff, bulk resolve)✔ Included
Conditional branching in the flow engine (true/false steps + loop guard)✔ Included
Field-Mapping Studio (payload-test wizard + mapping suggestions)✔ Included
Stock import → real Odoo inventory (guarded adjustment)✔ Included
Stock push Odoo → nopCommerceNot supported — nopCommerce is a read-only mirror (no write API)
SQL Server database supportRoadmap
Full variant-matrix expansion into Odoo attribute linesRoadmap
Refunds / credit notes importRoadmap
Webhook / live-push (instead of scheduled import)Roadmap
Write-back / export Odoo → nopCommerceRoadmap

Live in four steps

A guided quick-setup wizard and onboarding checklist walk you from a read-only database user to your first safe import.

Grant access

Create a read-only MySQL user on your nopCommerce database for the connector — no schema changes, no plugin to install.

Connect

In Odoo, enter the database connection (host, port, database, user, password) plus your storefront URL, then run the first scheduled import.

Dry-run

Preview exact writes with dry-run + validation on. Clear any blocking findings.

Go live

Let the scheduled (cron) import keep Odoo up to date from nopCommerce, read-only.

Buy with full clarity

In the box today

  • Read-only import: products (categories + image links), customers, orders
  • Direct MySQL database read — no paid nopCommerce Web API plugin required
  • Scheduled (cron) import — point it at the database and it stays current
  • Order status mapping, dry-run safety, rollback snapshots
  • Sync Control Tower — live per-instance health, queue, dead-letter and conflict stat cards
  • Bulk dead-letter console and conflict-resolution workbench (side-by-side diff, bulk resolve)
  • Conditional branching in the flow engine + Field-Mapping Studio payload-test wizard
  • Guarded stock import into real Odoo inventory (outbound push not supported — read-only mirror)
  • Full source included — audit and extend every line for your own use

Roadmap

  • SQL Server database support (MySQL is supported today)
  • Full variant-matrix expansion into Odoo attribute lines (count recorded today)
  • Refunds / credit notes import
  • Webhook / live-push instead of a scheduled import
  • Write-back / export Odoo → nopCommerce (import is the only direction today)

Frequently asked

Which versions are supported?

Odoo 18.0 on the Odoo side. On the store side, the connector was live-tested on nopCommerce 4.80 (MySQL) and is compatible with the nopCommerce 4.x line that shares the same database schema — validate it on your specific build.

Do I need the paid nopCommerce Web API plugin?

No. nopCommerce has no built-in REST API and the official Web API is a paid plugin — this connector avoids it entirely by reading the nopCommerce MySQL database directly, read-only.

How does authentication work?

There is no API key or access token to manage. You create a read-only MySQL user on your nopCommerce database and give the connector its host, port, database name, user and password, plus your storefront URL (used to build product image links). The connector only ever reads — it never writes back to nopCommerce.

Does it push changes in real time?

Not yet. nopCommerce can't push to Odoo without a custom plugin, so sync runs on a schedule (cron). Webhook / live-push is on the roadmap.

Is it safe to run against production data?

Dry-run mode is ON by default for new instances, validation blocks risky writes, and rollback snapshots let you undo. You decide when to go live.

What support and refund policy do I get?

Every request is answered within 24 hours, setup help included. If you report a bug within 2 months of purchase and it isn't resolved within 15 days, you're entitled to a full money-back refund.

Connect Odoo and nopCommerce the honest way

24-hour support · Report a bug within 2 months — unresolved in 15 days = full refund · Full source included

bambooforge.labs@gmail.com

More from BambooForge Labs — one vendor, the same standard: tested, source included, supported.

nopCommerce Connector PrestaShop Connector Audit Pro — audit, alerts & compliance
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Contacts (contacts)
• Discuss (mail)
• Inventory (stock)
• Invoicing (account)
• Sales (sale_management)
Lines of code 7629
Technical Name bambooforge_nopcommerce_connector
LicenseOPL-1

BambooForge nopCommerce Connector

A read-only bridge from your nopCommerce store into Odoo 18: import products, customers and orders on a schedule by reading the nopCommerce MySQL database directly — with a resilient job queue, dry-run safety, validation and rollback so you stay in control. nopCommerce ships no REST API by default, so the connector never depends on one: it connects to the database with read-only credentials and never writes back.

This page is the complete manual. If you follow it top to bottom you can install, connect, run your first sync, automate it, and fix the common issues without contacting support.

  • Overview
  • Requirements
  • Installation
  • Step 1 — Grant read-only access to the nopCommerce MySQL database
  • Step 2 — Create the connection in Odoo
  • Step 3 — First sync (dry-run, then live)
  • Order status mapping
  • Field mapping & customization
  • Automation (scheduled actions)
  • Safety features
  • Troubleshooting
  • Frequently asked questions
  • Data, privacy & limits
  • Support & updates
  • Upgrading & version compatibility
  • Uninstallation
  • Changelog

Overview

The connector imports data from nopCommerce into Odoo by reading the nopCommerce MySQL database directly (via the pymysql library) with the credentials you supply. nopCommerce has no built-in REST API, so there is no API key to generate and no plugin to install on the store side — only read access to the database. It covers:

  • Products — import nopCommerce products into Odoo product templates (name, SKU, price, categories; optionally stock and image URLs).
  • Customers — import nopCommerce customers (name, email, company, phone, role) into Odoo contacts.
  • Orders — import nopCommerce orders into Odoo sale orders (line items, totals, payment method), mapping each order's nopCommerce status to a sale-order action (keep draft, confirm, cancel, or ignore).

Direction of sync: Odoo ← nopCommerce (import only). The connector is read-only: it never writes to, updates, or deletes anything in nopCommerce, and nopCommerce never pushes to Odoo. Synchronisation runs on a schedule, like a database mirror. Money is read verbatim — nopCommerce stores decimal major units.

Every database read goes through a queue: nothing is written to Odoo until a job runs, jobs retry with back-off on transient failures, and a circuit breaker pauses an instance that keeps failing.

Requirements

  • Odoo: 18.0, Community or Enterprise.
  • nopCommerce: live-tested against nopCommerce 4.80 on MySQL/MariaDB. The connector reads the standard nopCommerce schema (PascalCase tables/columns), so the 4.x line on MySQL is supported. The MySQL server must be reachable from the Odoo server.
  • Python: the Odoo server needs the pymysql library (pip install pymysql). It is the only extra dependency; without it the connector cannot open a database connection and Test Connection fails with a clear message.
  • Odoo access: any internal user can use the connector screens. The MySQL User and Password are stored in system-only fields, so only the Settings / Administration user can read or change them.
  • Network: direct TCP connectivity from the Odoo server to the nopCommerce MySQL port (default 3306). By default the connector refuses internal/loopback/private storefront hosts as an SSRF safeguard (see Safety features).

Installation

  1. Install the pymysql Python library on the Odoo server (pip install pymysql) and restart Odoo so it is importable.
  2. Copy bambooforge_nopcommerce_connector into your Odoo addons path.
  3. Restart the Odoo service.
  4. Open Apps, click Update Apps List, search for nopCommerce, and press Activate / Install. Dependencies (Sales, Contacts, Invoicing) install automatically.

No live nopCommerce store is required to evaluate the mapping: a bundled set of nopCommerce-row-shaped mock fixtures lets you install the module, run schema introspection and explore the field mappings against sample data. Running a real import, however, needs a reachable MySQL database (see Step 1).

Step 1 — Grant read-only access to the nopCommerce MySQL database

The connector authenticates by connecting to the nopCommerce database, so the first step is on your database server, not in the nopCommerce admin. Create a dedicated MySQL user that can only read the nopCommerce database, and make sure the Odoo server can reach it over the network.

  1. Open a MySQL/MariaDB client (e.g. mysql CLI, phpMyAdmin) as an administrator on the server that hosts the nopCommerce database.

  2. Create a read-only user and grant it SELECT on the nopCommerce database only. Replace the database name, username, password and host to match your setup:

    CREATE USER 'odoo_ro'@'%' IDENTIFIED BY 'a-strong-password';
    GRANT SELECT ON nopcommerce.* TO 'odoo_ro'@'%';
    FLUSH PRIVILEGES;
    

    Grant SELECT only — the connector never needs INSERT, UPDATE or DELETE. A read-only grant is the safest way to guarantee nopCommerce is never modified. If your Odoo server has a fixed IP, replace '%' with that IP for a tighter grant (e.g. 'odoo_ro'@'10.0.0.5').

  3. Allow the connection over the network:

    • Make sure MySQL listens on an address the Odoo server can reach (check bind-address in my.cnf; 127.0.0.1 only allows connections from the same host).
    • Open the MySQL TCP port (default 3306) in any firewall between the Odoo server and the database server.
    • If Odoo and nopCommerce share one host, the database is reachable at 127.0.0.1:3306 — but note that a loopback/private host triggers the SSRF guard on the storefront URL (see Step 2 and Safety features).
  4. From the Odoo server, confirm the user can connect and read, for example:

    mysql -h <db-host> -P 3306 -u odoo_ro -p nopcommerce -e "SELECT 1;"
    

    A clean 1 means the credentials, network path and port are correct.

Step 2 — Create the connection in Odoo

Open nopCommerce Connector ▸ Configuration ▸ Instances and create a record.

nopCommerce instance / connection cockpit

Key fields:

Field What to enter
Name A label for this store, e.g. My Live Store.
MySQL Host Hostname or IP of the nopCommerce MySQL server. Default 127.0.0.1.
MySQL Port TCP port of the MySQL server. Default 3306.
MySQL Database Name of the nopCommerce database/schema, e.g. nopcommerce.
MySQL User The read-only user from Step 1, e.g. odoo_ro (administrators only).
MySQL Password The password for that user (administrators only).
Base URL Your storefront root, e.g. https://store.example.com. Used only to build product image links (/images/thumbs/...); it is not used for data access.
Allow internal host Off by default. Turn on only to point the storefront Base URL at localhost or a private network (lowers the SSRF guard — see Safety features).

Then click Test Connection. The connector opens a database connection and runs SELECT 1. A green Connected state means the host, port, database name and credentials are correct. On the first successful connect, the default order-status mapping table is seeded automatically. If it fails, the exact error is shown on the form and recorded in Logs (see Troubleshooting).

Tip: use Quick Setup (button on the instance) to pick a use case (catalog only, B2C full sync, …), seed default field mappings and order-status rules, and apply a recommended schedule in one step.

Step 3 — First sync (dry-run, then live)

New instances start with Dry-run ON. In dry-run, import jobs simulate writes: instead of changing data they produce Validation Results you can review under nopCommerce Connector ▸ Operations ▸ Validation Results. This lets you confirm what would happen before anything is written.

To run a first import:

  1. On the instance, click Import Products (and/or Import Customers, Import Orders). This enqueues jobs; it does not block the UI.
  2. Jobs are processed by the Nopcommerce Queue Processor scheduled action (every minute), or immediately if you run it manually from Operations ▸ Queue Jobs.
  3. Review Validation Results while still in dry-run.
  4. When satisfied, open the instance, turn Dry-run OFF, and run the imports again to write the records for real.

Imported records land in the standard Odoo apps: Sales ▸ Products, Contacts, and Sales ▸ Orders. Each carries its nopCommerce reference so re-imports update the same record instead of duplicating it.

Order status mapping

nopCommerce stores each order's status as a numeric OrderStatusId, which the connector normalizes to a status slug (pending, processing, complete, cancelled). Under Configuration ▸ Order State Mappings each instance gets a default table that decides what happens to the Odoo sale order when an order arrives in a given status:

nopCommerce order state mapping table
nopCommerce status Default Odoo action
pending Keep draft
processing Confirm sale order
complete Confirm sale order
cancelled Cancel sale order

Change any row to Ignore (do nothing), Keep draft, Confirm sale order or Cancel sale order. Unknown/unmapped statuses default to Ignore, so a status you have not mapped never triggers a destructive transition.

Field mapping & customization

  • Field Mappings (Configuration) map nopCommerce columns to Odoo fields per model. Use Generate suggested mappings on the instance to seed the business-critical ones, then adjust. The mapping board flags fields that need attention.
  • Schema Fields lists the discovered nopCommerce columns per resource. Run Schema Introspection on the instance to refresh it (it samples live rows; if the database is unreachable it falls back to the bundled sample row so you can still review the mapping).
  • Stock / images / tax are opt-in toggles on the instance: Sync stock (reads StockQuantity), Sync images (and max images), Sync taxes / Auto-match taxes (best effort, name-based, never auto-creates taxes). They are off by default; turn on only what you need.

Automation (scheduled actions)

Sync is schedule-driven only. nopCommerce has no REST API and emits no events, so there are no real-time webhooks — the connector polls the database on a cron, like a database mirror. The module ships these scheduled actions (Settings ▸ Technical ▸ Scheduled Actions):

Scheduled action Default Purpose
Nopcommerce Queue Processor every 1 min Processes queued import jobs.
Nopcommerce Reconciliation every 15 min Re-reads recent rows for enabled models and re-queues anything missing.
Nopcommerce Maintenance every 1 hr Recovers stale/locked jobs and trims old logs.
Nopcommerce Flow Scheduler every 5 min Runs scheduled sync flows.
Nopcommerce Flow Metrics every 1 hr Aggregates flow-run metrics.
Nopcommerce Auto Recover every 15 min Reopens a tripped circuit breaker once the database is healthy.

Turn on Auto import / Auto reconcile per model on the instance to let the scheduled actions keep things in sync hands-free.

Safety features

  • Read-only by design — the connector only ever runs SELECT queries against nopCommerce; it never writes, updates or deletes there. Use a read-only MySQL grant (Step 1) to enforce this at the database level.
  • Dry-run mode — simulate writes and review Validation Results before going live.
  • Business validation profiles — Minimal / Standard / Strict gate risky writes into Odoo.
  • Resilient queue — every read/import action is a job with retry and exponential back-off.
  • Circuit breaker — after repeated failures an instance auto-pauses (Tripped); the Auto Recover action reopens it once the database responds again.
  • Rollback snapshots — when enabled, imports capture a snapshot so you can undo a batch from Operations ▸ Rollback Snapshots.
  • SSRF guard — the connector refuses an internal/loopback/private storefront Base URL unless Allow internal host is explicitly enabled.

Troubleshooting

Symptom Cause and fix
Test Connection fails: "pymysql ... is required" The pymysql library is not installed on the Odoo server. Run pip install pymysql and restart Odoo.
Test Connection fails: access denied / authentication error Wrong MySQL user or password, or the user lacks rights on this database. Re-check the MySQL User / Password and the GRANT SELECT from Step 1.
Test Connection fails: can't connect / host not reachable / timeout The Odoo server cannot reach the MySQL host:port. Check the MySQL Host and Port, that MySQL's bind-address allows remote connections, and that port 3306 is open in the firewall.
Test Connection fails: "MySQL database name is required" The MySQL Database field is empty. Enter the nopCommerce schema name.
"Base URL ... is not allowed" / refused internal host The storefront Base URL points at localhost or a private IP. Enable Allow internal host on the instance (test/self-hosted only).
Orders import but never confirm The order's nopCommerce status is mapped to Keep draft or Ignore. Adjust Order State Mappings.
Jobs stay in Pending The Queue Processor is off or the instance is paused. Check Scheduled Actions is active and the instance is not Paused.
Instance shows Tripped Circuit breaker tripped after repeated failures. Fix the database/credentials; Auto Recover reopens it, or click Resume.
Records imported twice Imports are keyed by the nopCommerce id, so this should not happen. If it does, check that two instances do not point at the same database.
Nothing happens after Import You are in Dry-run. Review Validation Results, then turn dry-run off and re-run.

For anything else, Operations ▸ Logs records every database read and error with a timestamp.

Frequently asked questions

Which versions are supported? Odoo 18.0 on the Odoo side. On the store side the connector was live-tested on nopCommerce 4.80 on MySQL/MariaDB and reads the standard 4.x schema. Validate your exact build with the bundled sample fixtures first.

Do I need nopCommerce installed to evaluate it? Not for the mapping. Bundled nopCommerce-row-shaped sample fixtures let you install the module, run schema introspection and explore the field mappings. A real import needs a reachable MySQL database.

How does authentication work? There is no API key. nopCommerce has no REST API, so the connector connects to the nopCommerce MySQL database with read-only credentials (host, port, database, user, password). Generate those credentials on your database server (see Step 1).

Does this write anything back to nopCommerce? No. The connector is read-only: it only runs SELECT queries and never writes, updates or deletes in nopCommerce. Use a read-only MySQL grant to enforce this at the database level.

How does real-time sync work? There is no real-time/webhook path — nopCommerce has no REST API and emits no events. Sync is scheduled: the connector polls the database on a cron (every minute for the queue, every 15 minutes for reconciliation). Tighten the cron interval if you need fresher data.

Is it safe to run against production data? Yes. It only reads nopCommerce. On the Odoo side, dry-run is ON by default, validation blocks risky writes, and rollback snapshots let you undo. You decide when to go live.

What support and refund policy do I get? Every request is answered within 24 hours, setup help included. If you report a bug within 2 months of purchase and it is not resolved within 15 days, you are entitled to a full money-back refund.

Data, privacy & limits

  • The connector reads products, customers and orders from the nopCommerce MySQL database and writes the corresponding Odoo records. The MySQL credentials are stored in admin-only fields.
  • Read-only: the connector never writes to, updates or deletes anything in nopCommerce. It opens the database connection only to run SELECT queries.
  • In scope today: product/customer/order import, order-status mapping, scheduled sync, dry-run, validation and rollback.
  • Out of scope / roadmap: refund/credit-note import and inbound webhooks are not yet supported. Export back to nopCommerce is not supported (read-only by design). Tax auto-matching is best-effort, name-based and never auto-creates taxes; multi-warehouse stock routing is not handled.

Support & updates

  • Support: bambooforge.labs@gmail.com — answered within 24 hours, setup help included.
  • Refund: report a bug within 2 months of purchase; if unresolved within 15 days, full refund.
  • Full source is included. Updates track the supported Odoo 18 / nopCommerce 4.x line.

Upgrading & version compatibility

This build targets Odoo 18.0. Each Odoo major series (17.0, 18.0, 19.0) has its own dedicated build of this module — always install the build that matches your Odoo version. Mixing a build with a different Odoo series is not supported.

Patch upgrades (same series, e.g. 18.0.1.0.0 → later)

  1. Back up your database and filestore first.

  2. Replace the module folder with the newer build.

  3. Restart Odoo with the module updated:

    ./odoo-bin -c your.conf -u bambooforge_nopcommerce_connector -d your_db
    
  4. Odoo applies any schema/data changes automatically. Your existing records and configuration are preserved.

Cross-version migration (e.g. Odoo 17 → 18)

Upgrading Odoo itself is a database migration handled by Odoo's standard upgrade tooling. When you migrate the database to the next Odoo series, install the matching build of this module for that series. Data created by this module carries over with the database migration.

After any upgrade the module's scheduled actions resume on their normal cadence — no manual re-activation is required.

Uninstallation

You can remove this module at any time from Apps → (this module) → Uninstall, or from the command line. Uninstalling is clean and reversible by reinstalling — but note what is and is not deleted.

What is removed

  • The module's own tables and every record in them (20 models, prefixed nopcommerce.*) — this is the data this module created.
  • The menus, actions, views and reports this module installed.
  • Its scheduled actions (cron jobs) — they stop immediately on uninstall.
  • Connection records, credentials, field mappings, queue jobs and sync logs stored in Odoo.

What is preserved

  • Your remote platform is never touched. Uninstalling only removes the Odoo-side connector; products, customers and orders on the external store/service are untouched.
  • Records already imported into standard Odoo models (e.g. contacts, products, sales orders) remain — they are ordinary Odoo records once created.
  • Attachments and chatter messages on standard records are kept.

As always, take a database backup before uninstalling in production.

Changelog

18.0.1.0.0

Current release for Odoo 18.0. This build includes:

  • Read-only Odoo 18 <- nopCommerce connector: imports products, customers and orders by reading the nopCommerce MySQL database directly (no REST API needed) on a schedule.
  • With a live Sync Control Tower, resilient queue, dead-letter console, conflict workbench and dry-run safety.

Feature additions and fixes ship as new builds on the Odoo Apps store; this page and the module's version reflect the current published release. Always keep the build matched to your Odoo series (see Upgrading & version compatibility).

Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with