{"id":368399,"date":"2026-09-20T23:15:48","date_gmt":"2026-09-20T23:15:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/monrespro-odoo-sync\/"},"modified":"2026-09-20T23:15:16","modified_gmt":"2026-09-20T23:15:16","slug":"monrespro-order-sync-for-odoo","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/monrespro-order-sync-for-odoo\/","author":14966776,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.5.1","stable_tag":"0.5.1","tested":"7.1.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"MonresPro Order Sync for Odoo","header_author":"MonresPro","header_description":"Synchronise vos commandes et clients WooCommerce vers Odoo (sale.order \/ res.partner) via l'API externe d'Odoo. Connexion s\u00e9curis\u00e9e par cl\u00e9 API, correspondance produits par SKU, journal et r\u00e9essais. Odoo est une marque de sa soci\u00e9t\u00e9 ; ce plugin n'est pas affili\u00e9 \u00e0 Odoo S.A.","assets_banners_color":"3d434d","last_updated":"2026-09-20 23:15:16","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/monrespro.be\/odoo-sync","header_author_uri":"https:\/\/www.monrespro.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":66,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.5.1":{"tag":"0.5.1","author":"monrespro","date":"2026-09-20 23:15:16","revision":3704706}},"upgrade_notice":{"0.5.0":"<p>You can now trigger the export on several order statuses at once.<\/p>","0.4.0":"<p>Plugin renamed to &quot;MonresPro Order Sync for Odoo&quot;, scripts properly enqueued, and readme updated for WordPress 7.1.<\/p>","0.3.0":"<p>Adds Freemius for licensing and updates, and documents the external services used.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3704706,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3704706,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3704706,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3704706,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.5.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3704706,"resolution":"1","location":"assets","locale":"","width":1280,"height":800}},"screenshots":{"1":"Orders flow from WooCommerce into Odoo as sale.order, mapped by SKU.","2":"Connection settings and one-click connection test.","3":"Per-order Odoo panel: link, status and manual actions."}},"plugin_section":[],"plugin_tags":[12827,19380,16281,332,1558],"plugin_category":[45],"plugin_contributors":[281765],"plugin_business_model":[],"class_list":["post-368399","plugin","type-plugin","status-publish","hentry","plugin_tags-erp","plugin_tags-odoo","plugin_tags-orders","plugin_tags-sales","plugin_tags-sync","plugin_category-ecommerce","plugin_contributors-monrespro","plugin_committers-monrespro"],"banners":{"banner":"https:\/\/ps.w.org\/monrespro-order-sync-for-odoo\/assets\/banner-772x250.png?rev=3704706","banner_2x":"https:\/\/ps.w.org\/monrespro-order-sync-for-odoo\/assets\/banner-1544x500.png?rev=3704706","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/monrespro-order-sync-for-odoo\/assets\/icon-128x128.png?rev=3704706","icon_2x":"https:\/\/ps.w.org\/monrespro-order-sync-for-odoo\/assets\/icon-256x256.png?rev=3704706","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/monrespro-order-sync-for-odoo\/assets\/screenshot-1.png?rev=3704706","caption":"Orders flow from WooCommerce into Odoo as sale.order, mapped by SKU."}],"raw_content":"<!--section=description-->\n<p>MonresPro Order Sync for Odoo connects your WooCommerce store to Odoo. As soon as an order\nreaches the status you choose, it is created in Odoo as a <strong>sale.order<\/strong>, with\nits customer (<strong>res.partner<\/strong>) and its lines matched to your Odoo products by\nSKU. No CSV exports, no copy-paste, no middleware subscription.<\/p>\n\n<p>Syncing runs in the background on WooCommerce's Action Scheduler, off the\ncustomer's checkout request, and retries on its own with an exponential backoff\nif Odoo is briefly unreachable \u2014 so a network blip never loses an order.<\/p>\n\n<h4>Free features<\/h4>\n\n<ul>\n<li>Orders \u2192 Odoo <code>sale.order<\/code> (line items, quantities, fees and shipping; unmatched lines kept as notes so nothing is lost).<\/li>\n<li>Customers \u2192 <code>res.partner<\/code>, de-duplicated by email, with billing address and phone.<\/li>\n<li>Product matching by SKU (<code>default_code<\/code>); prices come from the order so Odoo totals match WooCommerce.<\/li>\n<li>Create the Odoo order as a draft quotation or confirm it automatically.<\/li>\n<li>Order status back from Odoo \u2192 WooCommerce (sale \u2192 processing, done \u2192 completed, cancel \u2192 cancelled).<\/li>\n<li>One-click connection test, background queue with retries, and a sync log.<\/li>\n<li>Per-order Odoo panel: direct link to Odoo, current state, and manual Export \/ Re-export \/ Check status actions.<\/li>\n<li>Compatible with High-Performance Order Storage (HPOS).<\/li>\n<\/ul>\n\n<h4>Pro features<\/h4>\n\n<ul>\n<li>Product, price and stock sync between Odoo and WooCommerce (scheduled or real-time).<\/li>\n<li>Refunds and credit notes.<\/li>\n<li>Multi-warehouse, advanced tax and account mapping.<\/li>\n<li>Priority support.<\/li>\n<\/ul>\n\n<h4>Works with<\/h4>\n\n<p>Any Odoo that exposes the external API over XML-RPC \u2014 Odoo Online (SaaS),\nOdoo.sh and self-hosted, recent versions (14 and up).<\/p>\n\n<h4>Trademarks<\/h4>\n\n<p>Odoo is a trademark of Odoo S.A. WooCommerce is a trademark of Automattic Inc.\nThis plugin is an independent integration and is not affiliated with, endorsed\nby, or sponsored by Odoo S.A. or Automattic Inc. Those names are used only to\ndescribe what the plugin connects to.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin relies on two external services.<\/p>\n\n<p>1) Your Odoo instance (the integration itself).\nYou provide the URL, database, user and API key of your own Odoo server. When an\norder syncs, the plugin sends that order's data \u2014 customer name, email, phone and\nbilling address, product names and SKUs, quantities, prices, totals and order\nstatus \u2014 to your Odoo server over its external API (XML-RPC, endpoints\n\/xmlrpc\/2\/common and \/xmlrpc\/2\/object). It also reads the order state back from\nOdoo. Data is sent only to the instance you configure and only when an order is\nsynced or when you use the connection test. If your instance is hosted by Odoo\nS.A., their terms and privacy policy apply: https:\/\/www.odoo.com\/terms and\nhttps:\/\/www.odoo.com\/privacy<\/p>\n\n<p>2) Freemius (licensing, updates and optional analytics).\nSoftware licensing, the Pro upgrade\/checkout and update delivery are handled by\nFreemius. On activation you may opt in to share basic site and usage information\nwith Freemius to help improve the plugin; this opt-in is optional and can be\nskipped. Purchases are processed on Freemius' checkout. Freemius terms:\nhttps:\/\/freemius.com\/terms\/ and privacy policy: https:\/\/freemius.com\/privacy\/<\/p>\n\n<p>No order or customer data is sent to Freemius or to any party other than your\nown Odoo instance.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin (WooCommerce must be active).<\/li>\n<li>In Odoo: Preferences \u2192 Account Security \u2192 generate a new API key.<\/li>\n<li>In WordPress: WooCommerce \u2192 Odoo Sync. Enter your Odoo URL, database, user and API key.<\/li>\n<li>Click \"Test connection\", save, then enable syncing and pick the trigger status.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20odoo%20versions%20are%20supported%3F\"><h3>Which Odoo versions are supported?<\/h3><\/dt>\n<dd><p>Any Odoo that exposes the external API over XML-RPC \u2014 Odoo Online, Odoo.sh and\nself-hosted, recent versions (14 and up). You connect with a database name, a\nuser and an API key generated in Odoo under Preferences \u2192 Account Security.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20product%20isn%27t%20in%20odoo%20yet%3F\"><h3>What happens if a product isn't in Odoo yet?<\/h3><\/dt>\n<dd><p>The order still syncs. Matched lines become real order lines; an unmatched SKU\nis kept as a note line on the sale.order and flagged in the log, so your Odoo\norder is never missing an item. Automatic product creation is on the Pro roadmap.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20store%3F\"><h3>Will it slow down my store?<\/h3><\/dt>\n<dd><p>No. Syncing runs in the background on WooCommerce's Action Scheduler, off the\ncheckout request. If Odoo is briefly unreachable, the job retries with an\nexponential backoff instead of failing the order.<\/p><\/dd>\n<dt id=\"is%20my%20data%20sent%20anywhere%20else%3F\"><h3>Is my data sent anywhere else?<\/h3><\/dt>\n<dd><p>Order and customer data is sent only to the Odoo instance you configure. See the\n\"External services\" section above for the full details, including Freemius, which\nhandles licensing and updates.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Is it compatible with High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. It declares HPOS compatibility and reads orders through the WooCommerce\norder API, so it works whether you use legacy post storage or custom order tables.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.5.1<\/h4>\n\n<ul>\n<li>Author URI now points to https:\/\/www.monrespro.com (same organisation as the plugin author).<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Trigger on multiple order statuses: pick one or several statuses (checkboxes) that start the export, instead of a single one. An order is still exported only once. Existing single-status settings keep working.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Renamed to \"MonresPro Order Sync for Odoo\" (slug monrespro-order-sync-for-odoo) with a clear trademark\/unaffiliation notice.<\/li>\n<li>Admin scripts are now enqueued (wp_enqueue_script + wp_add_inline_script) instead of printed inline.<\/li>\n<li>Removed the unneeded load_plugin_textdomain() call (WordPress loads translations automatically since 4.6).<\/li>\n<li>readme: tested up to WordPress 7.1; stable tag aligned with the plugin version.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Freemius integration (licensing, Pro upgrade, updates). The Freemius SDK must be present in \/freemius; without it the plugin remains fully functional.<\/li>\n<li>readme: external services disclosure (Odoo, Freemius).<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Renamed to \"MonresPro Odoo Sync\" (slug monrespro-order-sync-for-odoo).<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Per-order Odoo panel: direct link, status, and manual actions (Export \/ Re-export \/ Check status).<\/li>\n<li>Order status Odoo \u2192 WooCommerce (optional): sale \u2192 processing, done \u2192 completed, cancel \u2192 cancelled. Hourly check plus on-demand.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: Odoo connection, connection test, order and customer export, SKU product matching, log and retries.<\/li>\n<\/ul>","raw_excerpt":"Automatically send WooCommerce orders and customers into Odoo as sale.order and res.partner, matched to your products by SKU.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/368399","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=368399"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/monrespro"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=368399"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=368399"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=368399"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=368399"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=368399"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=368399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}