{"id":348463,"date":"2026-08-19T13:41:47","date_gmt":"2026-08-19T13:41:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/zoho-books-sync-for-woocommerce\/"},"modified":"2026-08-19T13:50:03","modified_gmt":"2026-08-19T13:50:03","slug":"erp7-order-sync-for-zoho-books","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/erp7-order-sync-for-zoho-books\/","author":14895929,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.4","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"ERP7 Order Sync for Zoho Books","header_author":"Manish","header_description":"Send WooCommerce orders to Zoho Books as sales orders or invoices, with the matching contact and items created automatically. Includes an onboarding wizard, dashboard and sync log.","assets_banners_color":"161c38","last_updated":"2026-08-19 13:50:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/smgom\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":70,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"smgom","date":"2026-08-19 13:50:03"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3655810,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3655810,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3655810,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3655810,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3655810,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2526,2525,16236,16281,286],"plugin_category":[45],"plugin_contributors":[272789],"plugin_business_model":[],"class_list":["post-348463","plugin","type-plugin","status-publish","hentry","plugin_tags-accounting","plugin_tags-bookkeeping","plugin_tags-invoices","plugin_tags-orders","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-smgom","plugin_committers-smgom"],"banners":{"banner":"https:\/\/ps.w.org\/erp7-order-sync-for-zoho-books\/assets\/banner-772x250.png?rev=3655810","banner_2x":"https:\/\/ps.w.org\/erp7-order-sync-for-zoho-books\/assets\/banner-1544x500.png?rev=3655810","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/erp7-order-sync-for-zoho-books\/assets\/icon.svg?rev=3655810","icon":"https:\/\/ps.w.org\/erp7-order-sync-for-zoho-books\/assets\/icon.svg?rev=3655810","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>ERP7 Order Sync for Zoho Books connects your WooCommerce store to your own Zoho Books organization and keeps your books up to date without re-typing anything.<\/p>\n\n<p>When an order reaches the status you choose, the plugin creates it in Zoho Books as a sales order \u2014 optionally converting it to an invoice \u2014 and creates or matches the contact and line items it needs along the way. From there it can record the payment, raise a credit note for a refund, void a cancelled order, record fulfilment, and keep your customers, catalogue and stock levels in step in either direction.<\/p>\n\n<p>This plugin is developed independently and is not affiliated with, endorsed by, or sponsored by Zoho Corporation or Zoho Books. \"Zoho\" and \"Zoho Books\" are trademarks of Zoho Corporation.<\/p>\n\n<p><strong>What's included<\/strong><\/p>\n\n<ul>\n<li><strong>Orders<\/strong> \u2192 Zoho sales orders, optionally converted to invoices.<\/li>\n<li><strong>Contacts and items<\/strong> created or matched automatically as an order needs them, by SKU or name.<\/li>\n<li><strong>Payments<\/strong> recorded against the Zoho invoice when an order reaches the status you pick, using your gateway \u2192 payment mode and deposit account mapping.<\/li>\n<li><strong>Refunds<\/strong> as credit notes applied to the invoice, and <strong>cancellations<\/strong> that void the Zoho documents.<\/li>\n<li><strong>Fulfilment<\/strong> recorded as a sales-order note or a delivery challan, with tracking details.<\/li>\n<li><strong>Customer sync<\/strong> both ways, with create and conflict policies and a scheduled Zoho \u2192 WooCommerce pull.<\/li>\n<li><strong>Product sync<\/strong> both ways, choosing which fields to push, plus <strong>inventory<\/strong> with a single source of truth and a pull schedule.<\/li>\n<li><strong>Tax handling<\/strong> \u2014 send WooCommerce's own tax totals so the figures match, or let Zoho Books recompute them.<\/li>\n<li><strong>Shipping, discounts and multi-currency<\/strong> handled on the document.<\/li>\n<li><strong>India GST fields<\/strong> (GSTIN, place of supply, HSN) when the store is set to that region.<\/li>\n<li><strong>Custom document numbering<\/strong> for sales orders, invoices and credit notes.<\/li>\n<li>An <strong>onboarding wizard<\/strong>, a <strong>dashboard<\/strong>, settings tabs for orders, payments, customers and products, and a unified <strong>sync log<\/strong> with a dead-letter retry queue.<\/li>\n<li><strong>Backfill<\/strong> to queue your existing orders, products and customers.<\/li>\n<\/ul>\n\n<p><strong>Plans<\/strong><\/p>\n\n<p>The plugin is free to use, with a monthly allowance on what it sends to Zoho Books:<\/p>\n\n<ul>\n<li><strong>Free<\/strong> \u2014 10 orders, 10 products and 10 customers each month, plus two-way order, product and customer sync. The allowance resets on the 1st, and re-syncing something already sent never costs a slot.<\/li>\n<li><strong>Pro<\/strong> \u2014 unlimited syncing, plus payments, refunds, cancellations, fulfilment and inventory.<\/li>\n<\/ul>\n\n<p>Reaching a limit never loses data. Orders stop being sent and say so in the log; an eleventh product still goes through on the order, as a line with its name, rate and quantity but no linked Zoho item. Everything already in Zoho Books stays there.<\/p>\n\n<p>Built the modern way: a React admin app (<code>@wordpress\/components<\/code>), a namespaced REST API, HPOS-compatible order handling, and asynchronous processing via Action Scheduler.<\/p>\n\n<p>You connect the plugin to Zoho Books with your own API credentials. There is no account to create with us and no third-party service in between \u2014 see the External services section below.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to two external services. By installing and using it you consent to the data described below being sent to them.<\/p>\n\n<h4>Zoho Books (required)<\/h4>\n\n<p>Purpose: to create and update records in the Zoho Books organization you connect \u2014 sales orders, invoices, contacts and items \u2014 so your WooCommerce orders appear in your accounting.\nData sent: the order, customer, product and tax details needed to create the corresponding Zoho Books records, plus the OAuth or Self Client credentials you provide to authenticate.\nWhen: whenever an order reaches the status you configured, when you run a backfill, and while you use the Connection and onboarding screens.\nWhere: only the Zoho data centre you select. Authentication goes to accounts.zoho.com, accounts.zoho.eu, accounts.zoho.in, accounts.zoho.com.au, accounts.zoho.jp, accounts.zoho.sa, accounts.zoho.com.cn or accounts.zohocloud.ca, and API requests to the matching zohoapis host. No other host is ever contacted.\nProvider: Zoho Corporation.\nTerms of Service: https:\/\/www.zoho.com\/terms.html\nPrivacy Policy: https:\/\/www.zoho.com\/privacy.html<\/p>\n\n<h4>ERP7 subscription service (plans and billing)<\/h4>\n\n<p>Purpose: to decide which features this site may use and how much it may sync each month, and to handle upgrades. A site with no subscription is on the free plan.\nData sent: the site's own URL, and \u2014 once a subscription is linked \u2014 a tenant identifier and a request signature the site generates itself. Entitlement checks send no store, customer or order data at all. Starting a checkout sends the site URL and the chosen plan so the subscription can be tied to the right store.\nWhen: while you have the Plan tab open, when you start or manage a subscription, and at most once every 12 hours to re-check entitlement on a linked site. A site that has never linked a subscription makes no entitlement request.\nWhere: https:\/\/wpzohoapi.devwork.in\nProvider: TechMarbles.\nTerms of Service: https:\/\/techmarbles.com\/terms-conditions\nPrivacy Policy: https:\/\/techmarbles.com\/privacy-policy<\/p>\n\n<p>Payment card details are handled entirely by Stripe on Stripe's own checkout pages. They never pass through this plugin or the subscription service.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Ensure WooCommerce is installed and active.<\/li>\n<li>Upload the plugin to <code>wp-content\/plugins\/erp7-order-sync-for-zoho-books<\/code> and activate it. The release zip contains the compiled admin app; the JavaScript source lives in <code>src\/<\/code> and builds with <code>npm install &amp;&amp; npm run build<\/code>.<\/li>\n<li>Open <strong>ERP7 Order Sync<\/strong> in the admin menu and follow the onboarding wizard.<\/li>\n<\/ol>\n\n<h4>Connecting to Zoho<\/h4>\n\n<p>In the <a href=\"https:\/\/api-console.zoho.com\/\">Zoho API Console<\/a>, create a <strong>Server-based<\/strong> client (for the OAuth redirect flow) or a <strong>Self Client<\/strong> (to paste a grant token). For OAuth, add the redirect URI shown on the Connection tab. Enter your Client ID, Client Secret and data-centre region, connect, then choose your organization.<\/p>\n\n<h4>Recommended<\/h4>\n\n<p>Define an encryption key in <code>wp-config.php<\/code> so Zoho secrets are encrypted at rest:<\/p>\n\n<pre><code>define( 'ZBWC_ENCRYPTION_KEY', 'a-long-random-string' );\n<\/code><\/pre>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20zoho%20books%20account%3F\"><h3>Do I need a Zoho Books account?<\/h3><\/dt>\n<dd><p>Yes. The plugin syncs into your own Zoho Books organization using API credentials you create in the Zoho API Console.<\/p><\/dd>\n<dt id=\"does%20it%20support%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Does it support High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares HPOS compatibility and uses the WooCommerce order CRUD APIs.<\/p><\/dd>\n<dt id=\"how%20is%20background%20processing%20handled%3F\"><h3>How is background processing handled?<\/h3><\/dt>\n<dd><p>Through WooCommerce's Action Scheduler. Failed jobs are retried with backoff and, if they still fail, moved to a dead-letter list you can retry from the Logs tab.<\/p><\/dd>\n<dt id=\"will%20it%20sync%20my%20existing%20orders%3F\"><h3>Will it sync my existing orders?<\/h3><\/dt>\n<dd><p>Yes \u2014 use <strong>Sync all orders<\/strong> on the dashboard to queue them. Products and customers have their own backfill buttons on the Products and Customers tabs.<\/p><\/dd>\n<dt id=\"does%20it%20sync%20payments%2C%20refunds%2C%20customers%2C%20products%20or%20stock%3F\"><h3>Does it sync payments, refunds, customers, products or stock?<\/h3><\/dt>\n<dd><p>Yes, all of them. Orders, products and customers sync on the free plan within the monthly allowance; payments, refunds, cancellations, fulfilment and inventory are part of Pro. Each area has its own settings tab and can be turned off independently, and everything except order sync is off until you switch it on.<\/p><\/dd>\n<dt id=\"is%20it%20free%3F\"><h3>Is it free?<\/h3><\/dt>\n<dd><p>Yes, with a monthly allowance: 10 orders, 10 products and 10 customers. The allowance resets on the 1st. Re-syncing a record that already reached Zoho is always free, so a store under those numbers never runs out.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20reach%20a%20limit%3F\"><h3>What happens when I reach a limit?<\/h3><\/dt>\n<dd><p>Nothing is lost. Orders stop being sent and are logged with the reason, so you can send them next month or upgrade and send them straight away. Products degrade instead of blocking \u2014 the order still syncs, with the line carried by name, rate and quantity rather than a linked Zoho item. Customers do stop an order, because Zoho Books cannot accept a sales order without a contact.<\/p><\/dd>\n<dt id=\"how%20do%20i%20upgrade%2C%20and%20how%20do%20i%20cancel%3F\"><h3>How do I upgrade, and how do I cancel?<\/h3><\/dt>\n<dd><p>The Plan tab. Checkout is handled by Stripe. Cancelling schedules the subscription to end at the end of the period you have already paid for \u2014 the site keeps every feature until that date, then returns to the free plan with all its settings intact.<\/p><\/dd>\n<dt id=\"which%20system%20owns%20stock%20levels%3F\"><h3>Which system owns stock levels?<\/h3><\/dt>\n<dd><p>Whichever you choose on the Products &amp; Inventory tab. Inventory is off by default; set it to WooCommerce \u2192 Zoho to push stock changes as they happen, or Zoho \u2192 WooCommerce to pull on a schedule.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: WooCommerce orders to Zoho Books sales orders and invoices, with contacts and items created or matched as an order needs them.<\/li>\n<li>Payments, refunds as credit notes, cancellations that void the Zoho documents, and fulfilment with tracking.<\/li>\n<li>Two-way customer and product sync, and inventory with a single source of truth and a pull schedule.<\/li>\n<li>Tax, shipping, discount and multi-currency handling, India GST fields, and custom document numbering.<\/li>\n<li>Onboarding wizard, dashboard, sync log with a dead-letter retry queue, and backfill for existing records.<\/li>\n<li>Free plan with a monthly allowance of 10 orders, 10 products and 10 customers; Pro removes the limits and adds payments, refunds, fulfilment and inventory.<\/li>\n<\/ul>","raw_excerpt":"Sync WooCommerce with Zoho Books: orders, payments, refunds, fulfilment, customers, products and inventory.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/348463","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=348463"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/smgom"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=348463"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=348463"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=348463"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=348463"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=348463"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=348463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}