{"id":335862,"date":"2026-07-19T08:19:43","date_gmt":"2026-07-19T08:19:43","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/raintech-integration-zoho-for-woocommerce\/"},"modified":"2026-08-07T16:34:43","modified_gmt":"2026-08-07T16:34:43","slug":"raintech-integration-zoho-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/ky.wordpress.org\/plugins\/raintech-integration-zoho-for-woocommerce\/","author":23301688,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.2.0","stable_tag":"2.2.0","tested":"7.0.3","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Raintech Order Sync with Zoho Books for WooCommerce","header_author":"raintech357","header_description":"Sync WooCommerce orders to Zoho Books (Invoices & Sales Orders) with OAuth2, retry queue, GST support, and admin dashboard.","assets_banners_color":"f7f9fc","last_updated":"2026-08-07 16:34:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":120,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.2.0":{"tag":"2.2.0","author":"raintech357","date":"2026-08-07 16:34:43"}},"upgrade_notice":{"2.2.0":"<p>No breaking changes \u2014 this release documents existing functionality and improves discoverability in search. Safe to update.<\/p>","2.1.0":"<p>Plugin renamed again (slug and text domain changed). Please deactivate and reactivate after updating.<\/p>","2.0.0":"<p>Plugin renamed and internal identifiers changed. Please deactivate and reactivate the plugin after updating to ensure settings are re-registered correctly.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3638099,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3638099,"resolution":"772x250","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3638099,"resolution":"1","location":"assets","locale":"","width":1485,"height":910}},"screenshots":{"1":"Settings screen for connecting your Zoho Books account.","2":"Tax mapping configuration for GST.","3":"Resync action on the order edit screen.","4":"WordPress dashboard widget showing this month's sync activity."}},"plugin_section":[262246],"plugin_tags":[15635,12480,286,14392,177058],"plugin_category":[45],"plugin_contributors":[254129],"plugin_business_model":[],"class_list":["post-335862","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-gst","plugin_tags-invoice","plugin_tags-woocommerce","plugin_tags-zoho","plugin_tags-zoho-books","plugin_category-ecommerce","plugin_contributors-raintech357","plugin_committers-raintech357"],"banners":{"banner":"https:\/\/ps.w.org\/raintech-integration-zoho-for-woocommerce\/assets\/banner-772x250.png?rev=3638099","banner_2x":"https:\/\/ps.w.org\/raintech-integration-zoho-for-woocommerce\/assets\/banner-1544x500.png?rev=3638099","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/raintech-integration-zoho-for-woocommerce_f7f9fc.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/raintech-integration-zoho-for-woocommerce\/assets\/screenshot-1.png?rev=3638099","caption":"Settings screen for connecting your Zoho Books account."}],"raw_content":"<!--section=description-->\n<p><strong>Raintech Order Sync with Zoho Books for WooCommerce<\/strong> connects your WooCommerce store to Zoho Books so every order becomes an Invoice or Sales Order in your Zoho Books organization automatically \u2014 no manual data entry, no CSV exports, no third-party middleware.<\/p>\n\n<p>Built specifically for the Zoho India (zoho.in) data center, it's a natural fit for Indian WooCommerce stores that need <strong>GST-compliant Zoho Books invoicing<\/strong> synced straight from checkout, but the underlying WooCommerce \u2194 Zoho Books sync works for any store using that data center.<\/p>\n\n<h4>Core sync<\/h4>\n\n<ul>\n<li><strong>Secure OAuth2 connection<\/strong> to Zoho Books \u2014 connect once from the settings screen; no manual API key copy-pasting or token management.<\/li>\n<li><strong>Choose your document type<\/strong>: sync orders as Zoho Books <strong>Invoices<\/strong> or <strong>Sales Orders<\/strong>.<\/li>\n<li><strong>Configurable trigger status<\/strong> \u2014 pick exactly which WooCommerce order status (Processing, Completed, or any custom status) fires the sync, or switch to fully <strong>Manual mode<\/strong> and only sync orders you choose.<\/li>\n<li><strong>Automatic customer\/contact matching<\/strong> in Zoho Books by phone number, creating a new contact only when no match exists.<\/li>\n<li><strong>Product matching by SKU<\/strong>, so line items map to the correct Zoho Books item automatically.<\/li>\n<li><strong>GST tax mapping<\/strong> \u2014 configure a default tax, an IGST tax, and a shipping tax to apply to every synced document.<\/li>\n<\/ul>\n\n<h4>Keeps going when things fail<\/h4>\n\n<ul>\n<li><strong>Automatic retry queue<\/strong> \u2014 orders that fail to sync (expired token, rate limit, temporary API error) are retried automatically on an hourly cron, with a duplicate-sync lock so the same order is never sent twice.<\/li>\n<li><strong>Manual \"Sync Now\" \/ Resync<\/strong> button on the order edit screen and directly from the sync log, any time you want to force a resync.<\/li>\n<li><strong>Bulk sync<\/strong> \u2014 select multiple orders from the WooCommerce Orders list and sync them to Zoho Books in one action (handy for backfilling historical orders after connecting your account for the first time).<\/li>\n<li><strong>Email alerts on failure<\/strong> \u2014 get notified at an address you configure whenever an order can't be synced, instead of finding out weeks later.<\/li>\n<li><strong>Full sync log<\/strong> with CSV export, viewable from its own admin screen and summarized in a <strong>WordPress dashboard widget<\/strong> showing this month's Synced \/ Failed \/ Pending counts at a glance.<\/li>\n<\/ul>\n\n<h4>Sales Order \u2192 Invoice conversion<\/h4>\n\n<p>If you sync as <strong>Sales Orders<\/strong>, you can configure a second WooCommerce order status (e.g. \"Completed\" or \"Shipped\") that automatically converts the Sales Order into an Invoice in Zoho Books \u2014 so the document type in Zoho Books can follow your actual fulfillment stage instead of only ever matching the initial sync.<\/p>\n\n<h4>Refunds \u2192 Credit Notes<\/h4>\n\n<p>Optionally sync WooCommerce refunds back to Zoho Books automatically as <strong>Credit Notes<\/strong>, applied against the original invoice \u2014 so your Zoho Books records stay accurate without a manual entry every time a refund happens.<\/p>\n\n<h4>Payment webhook (Zoho Books \u2192 WooCommerce)<\/h4>\n\n<p>Flip the sync direction for payments: enable the built-in <strong>payment webhook<\/strong> and configure it once inside Zoho Books (Settings \u2192 Automation \u2192 Webhooks, on the Invoice module's \"Payment Received\" event). When Zoho Books marks an invoice paid, WooCommerce automatically updates the matching order to your chosen status (e.g. \"Completed\") and adds an order note \u2014 closing the loop without you touching either system.<\/p>\n\n<h4>PDF invoices<\/h4>\n\n<p>After a document is created in Zoho Books, the plugin can fetch the <strong>invoice PDF<\/strong>, attach it to the WooCommerce order for easy download, and optionally <strong>email it straight to the customer<\/strong> as an attachment.<\/p>\n\n<h4>Settings screen<\/h4>\n\n<p>Everything above is configured from a single screen under <strong>WooCommerce \u2192 Zoho Books<\/strong>: connect\/disconnect your account, choose document type and sync mode, map GST taxes, set the payment webhook, and review the sync log \u2014 no code required.<\/p>\n\n<p>This plugin requires an active <a href=\"https:\/\/www.zoho.com\/books\/\">Zoho Books<\/a> account (India data center) and a <a href=\"https:\/\/woocommerce.com\/\">WooCommerce<\/a> store. It is an independent integration and is not developed, endorsed, or affiliated with Zoho Corporation.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to Zoho Books and Zoho Accounts (services provided by Zoho Corporation) so that WooCommerce orders can be created as Invoices or Sales Orders in your own Zoho Books organization. The plugin only communicates with Zoho once you enter your own Zoho API credentials and click \"Connect\"; no data is sent to Zoho before that.<\/p>\n\n<ul>\n<li><strong>Zoho Accounts (OAuth2 token service)<\/strong> \u2014 used to obtain and refresh the access token used to authenticate API calls. Your Zoho <code>client_id<\/code>, <code>client_secret<\/code>, and authorization\/refresh tokens are sent to <code>https:\/\/accounts.zoho.in\/oauth\/v2\/token<\/code> when you connect your account and periodically afterwards to refresh the token.<\/li>\n<li><strong>Zoho Books API<\/strong> \u2014 used to read your tax rates, look up\/create customer contacts, create Invoices or Sales Orders, create Credit Notes for refunds (if enabled), and fetch invoice PDFs (if PDF attach\/email is enabled). When a WooCommerce order reaches the status you configure, the order's customer name, phone number, billing details, line items (SKU, quantity, price), and applicable taxes are sent to <code>https:\/\/www.zohoapis.in\/books\/v3<\/code> so the corresponding document can be created in your Zoho Books organization. Tax rates are also fetched from this endpoint to populate the settings screen.<\/li>\n<\/ul>\n\n<p>Separately, if you enable the payment webhook, Zoho Books sends a payment-notification request from its own servers to a URL on your site (<code>\/wp-json\/izfw\/v1\/webhook<\/code>) that only your Zoho Books organization knows, authenticated by a secret token generated by the plugin.<\/p>\n\n<p>No data is sent to Zoho for site visitors who are not placing WooCommerce orders, and no data is shared with any party other than Zoho Corporation as part of fulfilling the sync described above.<\/p>\n\n<p>Zoho Corporation's terms of service: https:\/\/www.zoho.com\/terms.html\nZoho Corporation's privacy policy: https:\/\/www.zoho.com\/privacy.html<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>raintech-integration-zoho-for-woocommerce<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin directly through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Zoho Books<\/strong> in your WordPress admin.<\/li>\n<li>Click <strong>Connect<\/strong> and authorize the plugin to access your Zoho Books account.<\/li>\n<li>Choose your document type (Invoice or Sales Order), sync mode, trigger status, and GST tax mappings.<\/li>\n<li>Optionally enable refund \u2192 Credit Note sync, the payment webhook, and PDF invoice emailing.<\/li>\n<li>Save your settings. New WooCommerce orders will now sync to Zoho Books automatically.<\/li>\n<\/ol>\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, you need an active Zoho Books organization on Zoho's India (zoho.in) data center, with API access enabled.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20sync%20fails%3F\"><h3>What happens if a sync fails?<\/h3><\/dt>\n<dd><p>Failed orders are automatically added to a retry queue and retried hourly. You can also manually trigger a resync from the order edit screen, the sync log, or in bulk from the WooCommerce Orders list, and optionally get an email alert the moment a sync fails.<\/p><\/dd>\n<dt id=\"does%20this%20support%20gst%3F\"><h3>Does this support GST?<\/h3><\/dt>\n<dd><p>Yes. You can configure a default tax, an IGST tax, and a shipping tax to be applied to invoices and sales orders created in Zoho Books.<\/p><\/dd>\n<dt id=\"can%20zoho%20books%20update%20my%20woocommerce%20order%20when%20a%20customer%20pays%3F\"><h3>Can Zoho Books update my WooCommerce order when a customer pays?<\/h3><\/dt>\n<dd><p>Yes. Enable the built-in payment webhook and add it to your Zoho Books Invoice module's \"Payment Received\" event. When Zoho Books marks an invoice paid, the matching WooCommerce order automatically moves to your chosen status.<\/p><\/dd>\n<dt id=\"does%20it%20sync%20refunds%20back%20to%20zoho%20books%3F\"><h3>Does it sync refunds back to Zoho Books?<\/h3><\/dt>\n<dd><p>Yes, optionally. When enabled, a WooCommerce refund creates a Credit Note in Zoho Books and applies it to the original invoice automatically.<\/p><\/dd>\n<dt id=\"can%20i%20sync%20orders%20i%20placed%20before%20installing%20the%20plugin%3F\"><h3>Can I sync orders I placed before installing the plugin?<\/h3><\/dt>\n<dd><p>Yes. Use the bulk sync action from the WooCommerce Orders list to send existing orders to Zoho Books, or resync any individual order from its edit screen.<\/p><\/dd>\n<dt id=\"can%20customers%20get%20their%20invoice%20by%20email%20automatically%3F\"><h3>Can customers get their invoice by email automatically?<\/h3><\/dt>\n<dd><p>Yes, optionally. Once a document syncs, the plugin can fetch the invoice PDF from Zoho Books, attach it to the order, and email it to the customer.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20affiliated%20with%20zoho%3F\"><h3>Is this plugin affiliated with Zoho?<\/h3><\/dt>\n<dd><p>No. This is an independent, third-party integration and is not developed or endorsed by Zoho Corporation. \"Zoho\" and \"Zoho Books\" are trademarks of Zoho Corporation.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Documented the plugin's full feature set in this readme: configurable sync mode\/trigger status, bulk sync, CSV export, dashboard widget, failure email alerts, Sales Order \u2192 Invoice auto-conversion, refund \u2192 Credit Note sync, the Zoho Books payment webhook, and PDF invoice fetch\/email \u2014 all of which already shipped in code but weren't previously described here.<\/li>\n<li>SEO pass on the plugin title, short description, and FAQ.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Renamed plugin to Raintech Order Sync with Zoho Books for WooCommerce.<\/li>\n<li>Moved inline admin JavaScript to properly enqueued script files.<\/li>\n<li>Fixed an undefined settings variable in the tax-dropdown script and moved related hidden fields inside the settings form so tax labels save correctly.<\/li>\n<li>Documented external service usage (Zoho Accounts, Zoho Books API) in this readme.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Renamed plugin to Integration Zoho for WooCommerce.<\/li>\n<li>Internal refactor of class and option naming.<\/li>\n<li>Fixed file include paths for OAuth, API, Sync, and Admin classes.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Auto-sync WooCommerce orders to Zoho Books as GST Invoices or Sales Orders, with OAuth2, retries, refunds &amp; payment webhooks.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/335862","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=335862"}],"author":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/raintech357"}],"wp:attachment":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=335862"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=335862"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=335862"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=335862"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=335862"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=335862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}