{"id":346776,"date":"2026-07-30T23:41:47","date_gmt":"2026-07-30T23:41:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/koalab-sync-bulk-price-stock-updates-for-woocommerce\/"},"modified":"2026-10-24T04:45:30","modified_gmt":"2026-10-24T04:45:30","slug":"koalab-sync","status":"publish","type":"plugin","link":"https:\/\/da.wordpress.org\/plugins\/koalab-sync\/","author":23539464,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.0","stable_tag":"1.3.0","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Koalab Sync for WooCommerce","header_author":"Koalab","header_description":"Update prices and stock of your entire WooCommerce catalog from your supplier's Excel\/CSV price list \u2014 with markup rules, preview and one-click revert.","assets_banners_color":"","last_updated":"2026-10-24 04:45:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/koalab.tech","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":274,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"koalabtech","date":"2026-07-30 23:41:21","revision":3629220},"1.3.0":{"tag":"1.3.0","author":"koalabtech","date":"2026-10-24 04:45:30","revision":3762745}},"upgrade_notice":{"1.3.0":"<p>Koalab now notices when the plugin is deactivated or stops reporting. Also captures stock changes from bulk edits and other plugins, reports &quot;no inventory control&quot;, and no longer loses retries of large batches.<\/p>","1.2.0":"<p>Captures more product changes, and fixes the two connection links that led to a missing page.<\/p>","1.1.0":"<p>Adds optional movement sync (sales, returns and manual edits) plus low-stock alerts.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3629253,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3629253,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0","1.3.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Connect your store in one click from the WooCommerce menu.","2":"Upload your supplier's price list and map the columns.","3":"Preview every price change before applying it.","4":"Revert any update with one click."}},"plugin_section":[],"plugin_tags":[152463,141866,233142,171167,286],"plugin_category":[45],"plugin_contributors":[273916],"plugin_business_model":[],"class_list":["post-346776","plugin","type-plugin","status-publish","hentry","plugin_tags-inventory-sync","plugin_tags-multichannel","plugin_tags-price-sync","plugin_tags-stock-sync","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-koalabtech","plugin_committers-koalabtech"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/koalab-sync\/assets\/icon-128x128.png?rev=3629253","icon_2x":"https:\/\/ps.w.org\/koalab-sync\/assets\/icon-256x256.png?rev=3629253","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/koalab.tech\">Koalab Sync<\/a> is a cloud service that keeps your product catalog in one place and syncs prices, stock and sale prices to your sales channels \u2014 your WooCommerce store, and also Mercado Libre, Shopify or Tiendanube if you sell there. It can also update the whole catalog from a supplier's Excel\/CSV price list, with markup rules, a preview and one-click revert.<\/p>\n\n<p><strong>You do not need this plugin to use Koalab Sync.<\/strong> You connect your store from Koalab with WooCommerce's own authorization screen, and Koalab subscribes to WooCommerce's webhooks: your sales and your price and stock edits reach Koalab within a few minutes, with nothing installed in WordPress.<\/p>\n\n<p>This plugin is an optional companion for two cases:<\/p>\n\n<ul>\n<li><strong>You want the detail.<\/strong> With movement sync connected, each change made in your store reaches Koalab within seconds of the request that made it, labeled with its exact time and its cause \u2014 sale, return, refund, hand edit, REST API, import or scheduled sale. Changes to SKU, name, status, stock management and weight are recorded too, not only price and stock.<\/li>\n<li><strong>WooCommerce's notices are not reaching Koalab.<\/strong> WooCommerce sends its webhooks from its task queue, which depends on WP-Cron. If WP-Cron is disabled on your site, or a security plugin blocks outgoing requests, Koalab only learns about your store with its periodic import. The plugin delivers changes itself at the end of each request, without waiting for WP-Cron (on PHP-FPM hosts), and retries when Koalab cannot be reached.<\/li>\n<\/ul>\n\n<p>While movement sync is connected, Koalab stops using WooCommerce's webhooks for that store, so no change is counted twice. If you deactivate, delete or disconnect the plugin, it tells Koalab, and Koalab goes back to WooCommerce's webhooks on its own. The plugin also checks in once a day, so Koalab notices when it has stopped reporting for any other reason.<\/p>\n\n<h4>What the plugin adds to your WordPress<\/h4>\n\n<ul>\n<li>A page under <strong>WooCommerce \u2192 Koalab Sync<\/strong> with links to create your Koalab account or connect your store (through WooCommerce's official <code>wc-auth<\/code> authorization flow: you approve access with one click, and Koalab never sees your WordPress password).<\/li>\n<li>The optional movement sync described above, off until you pair the plugin with your store in Koalab.<\/li>\n<\/ul>\n\n<p>The plugin adds no database tables and does not write to your products: everything Koalab writes to your store goes through the WooCommerce REST API keys you authorized.<\/p>\n\n<h4>Disponible en espa\u00f1ol<\/h4>\n\n<p>Koalab Sync est\u00e1 disponible en espa\u00f1ol y portugu\u00e9s. Este plugin es opcional: sin \u00e9l, los avisos de la propia WooCommerce ya traen a Koalab tus ventas y tus cambios de precio y stock en unos minutos. Con \u00e9l llegan en segundos, con su hora exacta y su causa, y funciona tambi\u00e9n en tiendas donde esos avisos no salen.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects your site to <strong>Koalab<\/strong>, a third-party cloud service (https:\/\/koalab.tech), to synchronize your WooCommerce catalog. The plugin itself does not sync your products; it links your store to Koalab, where the synchronization runs.<\/p>\n\n<p>What is sent, and when:<\/p>\n\n<ul>\n<li><strong>When you connect your store<\/strong> (clicking the connect button): you are redirected to Koalab and your store's site URL (domain) is sent so Koalab can pair with your store. Access to your products is then granted through WooCommerce's official authorization flow (<code>wc-auth<\/code>), which issues REST API keys you explicitly approve.<\/li>\n<li><strong>During synchronization<\/strong> (performed by Koalab, not by this plugin): Koalab reads and writes your WooCommerce <strong>products<\/strong> (names, SKUs, prices, stock) through those authorized REST API keys, and reads your store's status report to know your currency, your WooCommerce version and whether this plugin is active.<\/li>\n<li><strong>Store notifications<\/strong> (performed by Koalab, not by this plugin): unless movement sync is connected and reporting, Koalab subscribes your store to WooCommerce's own webhooks for product updates, product deletions and orders, so it learns about sales and edits without waiting for its periodic import. From an order Koalab keeps only its number, status, dates and the products and quantities sold \u2014 never the buyer's name, address or contact details. Koalab does not access your WordPress admin.<\/li>\n<li><strong>Optional movement sync<\/strong> (off unless you pair the plugin with your store in Koalab): when a product's price, stock, SKU, name, status, stock management or weight changes in your store, the plugin sends the change event (product ID, SKU, product name, changed field, old and new value, cause, order number when there is one, and timestamp) to Koalab's API so it appears on Koalab's Movements screen.<\/li>\n<li><strong>Connection check<\/strong> (only while movement sync is connected): once a day, and when the plugin is deactivated, deleted or disconnected from its page, the plugin sends your Koalab store ID, your site URL, the plugin version and a timestamp, so Koalab knows whether the plugin is still reporting and can go back to WooCommerce's webhooks when it is not. No product, order or customer data is included.<\/li>\n<\/ul>\n\n<p>Every request the plugin makes to Koalab is signed with a secret shared only when you pair the plugin.<\/p>\n\n<p>This service is provided by Koalab. By connecting your store you agree to Koalab's Terms of Service (https:\/\/koalab.tech\/terms) and Privacy Policy (https:\/\/koalab.tech\/privacy).<\/p>\n\n<!--section=installation-->\n<p>You do not need the plugin to connect your store: in Koalab, go to <strong>Channels<\/strong>, connect a channel and choose WooCommerce. Install the plugin only if you want movement sync:<\/p>\n\n<ol>\n<li>Install and activate the plugin from the WordPress plugin directory.<\/li>\n<li>In Koalab, go to <strong>Channels \u2192 Configure<\/strong> on your WooCommerce store, open the <strong>Plugin<\/strong> tab and generate a connection code.<\/li>\n<li>In WordPress, go to <strong>WooCommerce \u2192 Koalab Sync<\/strong>, paste the code under <strong>Movement sync (optional)<\/strong> and click <strong>Connect<\/strong> \u2014 or click <strong>Open Koalab<\/strong> and confirm the store there.<\/li>\n<\/ol>\n\n<p>Requirements: WooCommerce 7.0+, your store must be served over HTTPS, and pretty permalinks must be enabled (Settings \u2192 Permalinks).<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20this%20plugin%20to%20use%20koalab%20sync%3F\"><h3>Do I need this plugin to use Koalab Sync?<\/h3><\/dt>\n<dd><p>No. Without it, WooCommerce's own webhooks already bring your sales and price and stock edits to Koalab within minutes. The plugin makes them arrive in seconds, labels each change with its exact time and cause, records SKU, name, status and weight changes too, and keeps working where WooCommerce's webhooks do not go out.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20deactivate%20or%20delete%20the%20plugin%3F\"><h3>What happens if I deactivate or delete the plugin?<\/h3><\/dt>\n<dd><p>The plugin tells Koalab, and Koalab subscribes your store to WooCommerce's own webhooks again: your sales keep arriving, within minutes instead of seconds. If you activate it again, Koalab uses it again on its own. If the plugin stops reporting without saying so (for example, it was removed over FTP), Koalab notices when its daily check-in stops arriving and does the same.<\/p><\/dd>\n<dt id=\"is%20koalab%20sync%20free%3F\"><h3>Is Koalab Sync free?<\/h3><\/dt>\n<dd><p>There is a free plan, with no credit card. Paid plans add more updates, more channels, scheduled syncs and price rules. See https:\/\/koalab.tech for the current plans.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20slow%20down%20my%20store%3F\"><h3>Does this plugin slow down my store?<\/h3><\/dt>\n<dd><p>No. Without movement sync the plugin only adds an admin page. With it, the plugin notes which fields changed when a product is saved and sends them once, after the page has been served, plus one small check-in a day. Synchronization runs in Koalab's cloud and talks to your store through the standard WooCommerce REST API.<\/p><\/dd>\n<dt id=\"what%20data%20does%20koalab%20access%3F\"><h3>What data does Koalab access?<\/h3><\/dt>\n<dd><p>Your WooCommerce products (names, SKUs, prices, stock) and your store's status report, through the API keys you explicitly authorize, and \u2014 through WooCommerce's webhooks \u2014 the status and the lines (products and quantities) of your orders, so a sale reaches your other channels. Nothing about the buyer is kept. Credentials are stored encrypted (AES-256). Koalab never accesses your WordPress admin.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20product%20variations%3F\"><h3>Does it work with product variations?<\/h3><\/dt>\n<dd><p>Yes \u2014 variations are captured and synced just like simple products.<\/p><\/dd>\n<dt id=\"can%20i%20update%20my%20catalog%20from%20a%20supplier%27s%20price%20list%3F\"><h3>Can I update my catalog from a supplier's price list?<\/h3><\/dt>\n<dd><p>Yes, in Koalab: upload the Excel or CSV your supplier sends you, map its columns, apply your markup rules, preview every change and revert it with one click. That runs in Koalab, with or without this plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>New: while movement sync is connected, the plugin checks in with Koalab once a day and tells it when it is deactivated, deleted or disconnected from its page. Koalab then goes back to WooCommerce's own webhooks instead of waiting for movements that will not come. Up to 1.2.0, a plugin switched off without disconnecting it left Koalab unaware of the store's changes until its next catalog import.<\/li>\n<li>The description now says what the plugin is today: an optional companion of Koalab Sync. Koalab works without it.<\/li>\n<li>New: movement sync reports when a product stops (or starts again) tracking inventory, so Koalab marks it as \"no inventory control\" instead of reading it as sold out.<\/li>\n<li>Fixed: stock changes made with WooCommerce's bulk edit, when editing an order's items in the admin, or by ERPs and stock plugins that use <code>wc_update_product_stock()<\/code> were not captured.<\/li>\n<li>Fixed: a refund that restocks items now carries its order number, and a refund with several items is no longer reported twice.<\/li>\n<li>Fixed: an order moved back to pending, or a held order whose payment fails (WooCommerce 11.0+), is reported as a return.<\/li>\n<li>Fixed: the retry of a large batch was never scheduled, so those changes were lost if Koalab could not be reached.<\/li>\n<li>The setup text points at Koalab's current screens (Channels \u2192 Configure \u2192 Plugin tab).<\/li>\n<li>Tested with WordPress 7.1 and WooCommerce 11.2.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Movement sync now also captures SKU, name, status, stock management and weight changes \u2014 not just prices and stock.<\/li>\n<li>Fixed: \"Open Koalab\" and the connect link pointed at a page that no longer exists, so they landed on a 404. Both now open the Channels screen.<\/li>\n<li>Fixed: the setup text sent you to Movements to generate the connection code. It is generated in Channels \u2192 your store \u2192 Plugin.<\/li>\n<li>Tested with WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New (optional): movement sync \u2014 capture price and stock changes made directly in your store (sales, returns, manual edits, third-party plugins) so they show up in Koalab's Movements screen.<\/li>\n<li>Pair a store from Koalab with a one-time code or a deep link.<\/li>\n<li>Low stock \/ out of stock email alerts and restock suggestions (configured in Koalab).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: one-click store connection to Koalab Sync.<\/li>\n<\/ul>","raw_excerpt":"Optional companion for Koalab Sync: sends your store's price and stock changes to Koalab in seconds, each with its cause.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/346776","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=346776"}],"author":[{"embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/koalabtech"}],"wp:attachment":[{"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=346776"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=346776"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=346776"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=346776"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=346776"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=346776"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}