{"id":214788,"date":"2025-01-01T19:47:56","date_gmt":"2025-01-01T19:47:56","guid":{"rendered":"https:\/\/de.wordpress.org\/plugins\/api-data-sync-for-woocommerce\/"},"modified":"2026-09-04T22:07:14","modified_gmt":"2026-09-04T22:07:14","slug":"api-data-sync-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/sw.wordpress.org\/plugins\/api-data-sync-for-woocommerce\/","author":14229339,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0","stable_tag":"1.0","tested":"7.1.1","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"API Data Sync for WooCommerce","header_author":"Bernhard Kux","header_description":"API Integration Plugin for WooCommerce Actions","assets_banners_color":"ffffff","last_updated":"2026-09-04 22:07:14","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/json-content-importer.com\/api-data-sync-for-woocommerce\/","header_author_uri":"https:\/\/json-content-importer.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":2126,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.4":{"tag":"0.4","author":"berkux","date":"2025-01-01 19:47:34","revision":3215747},"0.6":{"tag":"0.6","author":"berkux","date":"2025-04-16 20:23:55","revision":3275118},"0.7":{"tag":"0.7","author":"berkux","date":"2026-05-25 09:02:52","revision":3547205},"1.0":{"tag":"1.0","author":"berkux","date":"2026-09-04 22:07:14","revision":3681855}},"upgrade_notice":{"1.0":"<p>Security and privacy improvements, HPOS compatibility. The log format has changed; existing log entries are shown without event details.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3215743,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-20x20.png":{"filename":"icon-20x20.png","revision":3547200,"resolution":"20x20","location":"assets","locale":"","width":20,"height":20}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3215742,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3215741,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.4","0.6","0.7","1.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Check Installation \u2013 PHP and WooCommerce requirements","2":"Basic Settings \u2013 event, shortcode, logging and log view"}},"plugin_section":[],"plugin_tags":[1556,23853,1558,15439,286],"plugin_category":[45],"plugin_contributors":[82483],"plugin_business_model":[],"class_list":["post-214788","plugin","type-plugin","status-publish","hentry","plugin_tags-api","plugin_tags-rest-api","plugin_tags-sync","plugin_tags-webhook","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-berkux","plugin_committers-berkux"],"banners":{"banner":"https:\/\/ps.w.org\/api-data-sync-for-woocommerce\/assets\/banner-772x250.png?rev=3215741","banner_2x":"https:\/\/ps.w.org\/api-data-sync-for-woocommerce\/assets\/banner-1544x500.png?rev=3215742","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/api-data-sync-for-woocommerce\/assets\/icon-128x128.png?rev=3215743","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>WooCommerce fires an action whenever an order is completed, its status changes, or a product is created or updated. This plugin lets you pick one of these events and define a shortcode that is executed each time the event occurs.<\/p>\n\n<p>The shortcode receives all relevant WooCommerce data (order, line items, SKUs, or product details) as a URL-encoded JSON string via the placeholder <code>#orderdata#<\/code>. Use it to push orders or products to another shop system, an ERP, a CRM, or any REST API \u2013 for example with the PRO version of the <a href=\"https:\/\/json-content-importer.com\/\">JSON Content Importer<\/a> or with a shortcode plugin of your own.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Event-based trigger<\/strong> \u2013 choose one WooCommerce hook per site:\n\n<ul>\n<li>Order thank-you page (<code>woocommerce_thankyou<\/code>)<\/li>\n<li>Order completed (<code>woocommerce_order_status_completed<\/code>)<\/li>\n<li>Order status changed (<code>woocommerce_order_status_changed<\/code>)<\/li>\n<li>Product created or updated (<code>woocommerce_update_product<\/code>)<\/li>\n<\/ul><\/li>\n<li><strong>Shortcode execution<\/strong> \u2013 the configured shortcode runs with the event data injected via <code>#orderdata#<\/code>.<\/li>\n<li><strong>Duplicate protection<\/strong> \u2013 orders are marked after a successful sync, so reloading the thank-you page does not trigger a second call.<\/li>\n<li><strong>Multisite-aware SKU lookup<\/strong> \u2013 if a product is not found on the current site, the other sites of the network are checked.<\/li>\n<li><strong>Logging<\/strong> \u2013 the last 20 events (event, order\/product, shortcode result) are stored and shown in the admin, with links to the order or product.<\/li>\n<li><strong>E-mail notification<\/strong> \u2013 optionally receive a short e-mail per event with order number, event type and shortcode result.<\/li>\n<li><strong>HPOS-compatible<\/strong> \u2013 works with WooCommerce High-Performance Order Storage and the block-based Cart\/Checkout.<\/li>\n<li><strong>Clean uninstall<\/strong> \u2013 all settings and log data are removed on deletion if you opt in.<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>The plugin only processes data on your own site. Order and product data are handed to the shortcode you configure; whether that shortcode sends data to a third party is up to the shortcode plugin you use. The built-in log stores event type, order\/product ID and shortcode result \u2013 no customer names, addresses or e-mail addresses. The optional notification e-mail contains the order number and the shortcode result, not the order data itself.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Install and activate this plugin.<\/li>\n<li>Install a plugin that provides the shortcode you want to run (e.g. JSON Content Importer PRO), or write your own.<\/li>\n<li>Go to <strong>API Data Sync \u2192 Basic Settings<\/strong>, choose the WooCommerce event and enter the shortcode. Use <code>#orderdata#<\/code> as the placeholder for the event data.<\/li>\n<li>Optionally enable logging and\/or enter an e-mail address for notifications.<\/li>\n<li>Place a test order or save a product and check the log.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20other%20plugins%20do%20i%20need%3F\"><h3>Which other plugins do I need?<\/h3><\/dt>\n<dd><p>WooCommerce, and a plugin that provides the shortcode to be executed. The JSON Content Importer PRO plugin can do this out of the box; alternatively you can write a small plugin yourself that registers a shortcode, reads the <code>param1<\/code> attribute and calls your API.<\/p><\/dd>\n<dt id=\"what%20data%20does%20the%20shortcode%20receive%3F\"><h3>What data does the shortcode receive?<\/h3><\/dt>\n<dd><p>For order events: the complete order (as returned by <code>WC_Order::get_data()<\/code>), all line items and the resolved SKU per item. For product events: ID, name, descriptions, prices, SKU, stock status, categories and tags. For status changes: order ID, old and new status. Everything is passed as one URL-encoded JSON string.<\/p><\/dd>\n<dt id=\"an%20order%20was%20synced%20twice.%20why%3F\"><h3>An order was synced twice. Why?<\/h3><\/dt>\n<dd><p>Each event is only processed once per order. If you switched the trigger from \"thank-you page\" to \"order completed\", both events can fire for the same order once. Also note that <code>woocommerce_order_status_changed<\/code> fires on every status change, including the change to \"completed\".<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20with%20hpos%3F\"><h3>Does the plugin work with HPOS?<\/h3><\/dt>\n<dd><p>Yes. Compatibility with High-Performance Order Storage and Cart\/Checkout Blocks is declared, and all order access goes through the WooCommerce CRUD API.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20help%3F\"><h3>Where can I get help?<\/h3><\/dt>\n<dd><p>Open a topic in the plugin's support forum on WordPress.org.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0<\/h4>\n\n<ul>\n<li>Declared compatibility with WooCommerce High-Performance Order Storage (HPOS) and Cart\/Checkout Blocks<\/li>\n<li>Orders are now marked after sync to prevent duplicate calls on thank-you page reloads<\/li>\n<li>Log and notification e-mails no longer contain customer data; log entries link to the order or product<\/li>\n<li>Log option is no longer autoloaded<\/li>\n<li>Admin capability changed from role name to <code>manage_woocommerce<\/code><\/li>\n<li>Simplified nonce handling on the settings page<\/li>\n<li>Multisite SKU lookup checks the current site first and stops at the first match<\/li>\n<li>Tested with WordPress 7.1, WooCommerce 11.1 and Plugin Check 2.1.0<\/li>\n<\/ul>\n\n<h4>0.7<\/h4>\n\n<ul>\n<li>Tested with WordPress 7.0 and Plugin Check 1.9.0<\/li>\n<\/ul>\n\n<h4>0.3<\/h4>\n\n<ul>\n<li>Initial version<\/li>\n<\/ul>","raw_excerpt":"Run a shortcode whenever WooCommerce completes an order, changes an order status or saves a product \u2013 and send the data to any external API.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/214788","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=214788"}],"author":[{"embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/berkux"}],"wp:attachment":[{"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=214788"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=214788"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=214788"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=214788"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=214788"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=214788"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}