Live on the Odoo App Store
The engine, not the car.

Features
This is the plumbing every store connector needs and nobody wants to write twice: identity mapping so a re-run never duplicates an order, a job queue that keeps its failures instead of losing them, and a log you can actually answer questions from.
On its own it does nothing visible, and that is deliberate. You install a platform connector alongside it and Odoo pulls this in automatically as a dependency. It is free precisely because it is a dependency rather than a product.
Every external record is mapped to its Odoo counterpart before anything is written, so a re-run converges on the same record instead of creating a second one.
Nothing is lost when a sync stops halfway. Every job keeps the exact payload that caused it, so a retry replays the failure without asking the store for the data again.
Descriptive store fields to the Odoo fields you choose, per store, each row switchable. Identity, order totals and tax lines are fixed, so duplicate prevention cannot be broken by a mapping.
So an unmapped rate can stop an order rather than silently under-billing it. Every tax the store sends is recorded, mapped or not.
With the payload attached to the job that failed. There is a Retry now button on every job, and Sync Jobs opens filtered to what failed.
Orders are not confirmed or invoiced automatically unless you switch it on, and an import-from date stops a first sync pulling years of history.
How it works
The engine sits underneath whichever connector you install. You work in the connector; the engine keeps the records straight.
Odoo pulls this in automatically as a dependency, and adds a Store Sync menu with Stores, Sync Jobs and Linked Records.
The connector adds its own tab with credentials and settings: sales team, warehouse, pricelist, invoice journal and what to do with an unmapped tax.
Nothing is confirmed, invoiced or written back until you say so. Sync Jobs shows what worked, what is retrying, and what needs you.
Technical Edge
Failed is transient: a dropped connection, a rate limit, a 502. It is retried automatically with exponential backoff.
Needs attention means something has to change before it can work: a tax with no mapping, a product not in Odoo, a revoked key. These are never retried on a timer, because a timer cannot fix them, and each one carries the sentence saying what to do.
Checked in the module source and the live Odoo App Store listing, September 2026
Pricing
Published by Tripster Developers on the Odoo App Store under LGPL-3. The platform connectors that build on it are sold separately.
Free
LGPL-3 · Odoo 16.0 to 19.0
On quote
Scoped with you before any work starts
Built For
Install whichever platform you sell on. Each one adds its own credentials tab and settings, and shares this engine's duplicate prevention and retry behavior.
FAQ
No. Install the platform connector you need and Odoo pulls this in automatically as a dependency. It is listed separately so the three connectors can share one engine rather than each shipping its own copy.
Failed is transient: a dropped connection, a rate limit, a 502. Those retry automatically with exponential backoff. Needs attention means something has to change before it can ever work, such as a tax with no mapping, a product not in Odoo, or a revoked key.
So every connector shares one implementation of duplicate prevention and retry, tested once, instead of each carrying a divergent copy. It is free precisely because it is a dependency rather than a product.
Nothing visible. It is the engine, not the car. Install a platform connector alongside it.
Every listed Odoo version is certified on each release by installing the module into a real Odoo image of that series and running the full test suite. A version is only listed once it passes.
Odoo Online cannot run third-party modules that contain Python, which is Odoo's rule rather than ours. Odoo.sh and self-hosted installs are both fine.
Email hello@tripsterdevelopers.com with your Odoo version, the module version and what you did. If a sync job failed, the job record holds the exact payload and the error, which answers most questions immediately.
Yes. Odoo 16, 17, 18 or 19, Community or Enterprise. The same build installs on either edition.
Download the module from its Odoo Apps Store page, place the folder in your addons path, restart Odoo, then update the apps list and install it from the Apps menu. Odoo.sh users add it to the repository branch instead.
Each listed Odoo version has its own build. When you move to a new major version, install the build for that version; the configuration you have already entered is read by the new build.
Inside your own Odoo instance. The module runs on your server and talks to your own systems. We do not host your records and we do not receive a copy of them.
Yes. Odoo modules are distributed as readable Python and XML, so your own developer can review exactly what runs and extend it under the license the module ships with.
Your Odoo version, the module version from the Apps screen, and the message from the job log. Those three together are usually enough to answer in one reply rather than four.
Yes, at the same support address. Say what you are trying to achieve rather than the field you want added; it is often already possible, and when it is not, the underlying goal is what shapes the change.
Each release note is published on the module's Odoo Apps Store page, against the version number shown on the Apps screen in your own database.
Tripster Developers, a Shopify Partner and Odoo module publisher based in Auckland, New Zealand. The same team writes the code and answers the support mail.
Miko Apps
E-Commerce Connector Engine is free and open source (LGPL-3), published by Tripster Developers.
Miko for Odoo
Published and maintained by Tripster Developers on the Odoo App Store. See all Odoo apps.
Not on Shopify yet?
Set up your store in minutes and try it with your own products. Loyalty, wholesale pricing, AI descriptions and the rest of the Miko apps install in one click once your store is live.