{"id":337249,"date":"2026-07-20T23:32:48","date_gmt":"2026-07-20T23:32:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/api-products-for-woocommerce\/"},"modified":"2026-07-20T23:32:35","modified_gmt":"2026-07-20T23:32:35","slug":"anysync-woocommerce-products-from-api","status":"publish","type":"plugin","link":"https:\/\/szl.wordpress.org\/plugins\/anysync-woocommerce-products-from-api\/","author":23465571,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.2.0","stable_tag":"2.2.0","tested":"7.0.2","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Anysync API products for woocommerce","header_author":"API Products","header_description":"Import and sync products from any external API into WooCommerce.","assets_banners_color":"","last_updated":"2026-07-20 23:32:35","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":87,"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":"woocommerceapiproducts","date":"2026-07-20 23:32:35"}},"upgrade_notice":{"2.2.0":"<p>Compliance update: new plugin name, unique code prefixes, documented external services, and a WooCommerce dependency declaration.<\/p>","2.0.0":"<p>Major rewrite with multi-provider support, advanced sync scheduling, and improved field mapping. Back up your settings before upgrading.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.2.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"<strong>Access Page<\/strong> - Enter credentials and connect to your WooCommerce store","2":"<strong>Define API<\/strong> - Configure API endpoints, authentication, and pagination","3":"<strong>Field Mapping<\/strong> - Visual drag-and-drop mapping of API fields to WooCommerce fields","4":"<strong>Import Dashboard<\/strong> - One-click import with real-time progress tracking","5":"<strong>Settings<\/strong> - Configure sync intervals, scopes, and automation"}},"plugin_section":[],"plugin_tags":[1556,6601,21735,42241,286],"plugin_category":[45],"plugin_contributors":[272536],"plugin_business_model":[],"class_list":["post-337249","plugin","type-plugin","status-publish","hentry","plugin_tags-api","plugin_tags-inventory","plugin_tags-product-import","plugin_tags-product-sync","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-woocommerceapiproducts","plugin_committers-woocommerceapiproducts"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/anysync-woocommerce-products-from-api.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Anysync WooCommerce Products from API<\/strong> lets you connect any external REST API to your WooCommerce store and import products automatically. Whether you're pulling from a supplier catalog, a dropshipping feed, a warehouse system, an ERP, or a custom inventory database - if it has a REST API, this plugin can sync it.<\/p>\n\n<p><strong>Stop manually entering products.<\/strong> Connect your API, map the fields, click import. Done.<\/p>\n\n<h4>Who is this for?<\/h4>\n\n<ul>\n<li><strong>Dropshippers<\/strong> syncing supplier catalogs<\/li>\n<li><strong>Wholesalers<\/strong> importing from distributor APIs<\/li>\n<li><strong>Multi-channel sellers<\/strong> unifying product data from external systems<\/li>\n<li><strong>Agencies<\/strong> building WooCommerce stores fed by client APIs<\/li>\n<li><strong>Developers<\/strong> integrating custom backends with WooCommerce<\/li>\n<li><strong>Any business<\/strong> with products in an external system that needs them in WooCommerce<\/li>\n<\/ul>\n\n<h4>Key Features<\/h4>\n\n<p><strong>Multi-Provider System<\/strong>\nConnect unlimited API sources simultaneously. Each provider gets its own independent configuration, field mapping, and sync schedule. Manage suppliers, warehouses, and catalogs all from one dashboard.<\/p>\n\n<p><strong>Connect Any REST API<\/strong>\n* GET, POST, PUT, DELETE request support\n* API Key authentication (header, query param, or request body)\n* Bearer token authorization\n* Three pagination modes: page-based, cursor-based, offset-based\n* Custom JSON path extraction for nested API responses\n* Built-in \"Test Connection\" button - validate before you commit<\/p>\n\n<p><strong>Visual Field Mapping<\/strong>\nMap API response fields to 40+ WooCommerce product fields:<\/p>\n\n<ul>\n<li>Title, descriptions, SKU, categories, tags<\/li>\n<li>Regular price, sale price, sale date ranges, tax settings<\/li>\n<li>Stock quantity, stock status, backorder settings<\/li>\n<li>Weight, dimensions, virtual\/downloadable flags<\/li>\n<li>Product images and gallery images<\/li>\n<li>Global attributes (colors, sizes, etc.)<\/li>\n<li>Custom meta fields - auto-discovered from your store<\/li>\n<\/ul>\n\n<p><strong>Smart Sync Scheduling<\/strong>\n* Intervals from every 15 minutes to daily\n* Selective sync scopes: ALL fields, STOCK ONLY, STOCK + PRICE, or CUSTOM field selection\n* Auto-pause on configuration changes to prevent data inconsistency\n* Real-time progress tracking with live progress bar\n* Full import history with created\/updated\/failed counts<\/p>\n\n<p><strong>Enterprise-Ready<\/strong>\n* Per-user JWT authentication\n* WordPress capability-based access control\n* Nonce-protected AJAX endpoints\n* Secure credential storage<\/p>\n\n<h4>Use Cases<\/h4>\n\n<ol>\n<li><strong>Supplier Catalog Sync<\/strong> - Connect your supplier's product API, map their fields to WooCommerce, schedule hourly stock updates. Never oversell again.<\/li>\n<li><strong>ERP Integration<\/strong> - Pull products from SAP, Oracle, or any ERP with a REST API. Keep WooCommerce as your storefront, ERP as your source of truth.<\/li>\n<li><strong>Dropshipping Automation<\/strong> - Connect dropship supplier feeds, auto-import their full catalog, sync stock levels every 15 minutes.<\/li>\n<li><strong>Multi-Warehouse Inventory<\/strong> - Connect multiple warehouse APIs as separate providers, each updating stock independently.<\/li>\n<li><strong>Marketplace Migration<\/strong> - Pull products from any platform's API into WooCommerce during migration.<\/li>\n<li><strong>Custom App Integration<\/strong> - Built a custom product management app? Connect its API to WooCommerce in minutes.<\/li>\n<\/ol>\n\n<h3>External services<\/h3>\n\n<p>This plugin relies on the following third-party\/external services. It does not function without the first one, because all API connections, imports, and scheduled syncs are performed by our hosted backend service rather than on your own server.<\/p>\n\n<h4>Anysync WooCommerce Products from API backend service<\/h4>\n\n<p>This is the plugin's own cloud service, hosted at https:\/\/provider.woocommerce-api-products.com. The plugin is a client for this service: it stores your import configuration and runs the actual REST API imports and scheduled syncs on your behalf, then pushes the resulting products into your WooCommerce store.<\/p>\n\n<p>Data is sent to this service in the following situations:<\/p>\n\n<ul>\n<li><strong>When you connect on the Access page:<\/strong> your license\/serial key, your WooCommerce store URL, and your WooCommerce REST API credentials (Consumer Key and Consumer Secret). The credentials are required so the service can create and update products in your store.<\/li>\n<li><strong>When you configure a provider on the Define API page:<\/strong> the external API endpoint URL, authentication details (API key or bearer token), pagination settings, and JSON path settings you enter for that source.<\/li>\n<li><strong>When you save field mappings or sync settings:<\/strong> your mapping and scheduling configuration.<\/li>\n<li><strong>When you run or schedule an import, or view import progress\/status:<\/strong> requests to start imports and read their status.<\/li>\n<li><strong>When checking subscription status or opening the billing portal:<\/strong> your account\/subscription identifiers.<\/li>\n<\/ul>\n\n<p>This service is provided by Anysync WooCommerce Products from API.\nTerms of Service: https:\/\/woocommerce-api-products.com\/terms\nPrivacy Policy: https:\/\/woocommerce-api-products.com\/privacy-policy<\/p>\n\n<h4>Tawk.to live chat<\/h4>\n\n<p>The plugin's Support page provides live chat via Tawk.to, a third-party live-chat provider. When you open the Support page, the Tawk.to chat widget is loaded from Tawk.to's servers, and any information you type into the chat (together with standard connection metadata such as your IP address and browser user agent) is sent to Tawk.to.<\/p>\n\n<p>This service is provided by tawk.to inc.\nTerms of Service: https:\/\/www.tawk.to\/terms-of-service\/\nPrivacy Policy: https:\/\/www.tawk.to\/privacy-policy\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>anysync-woocommerce-products-from-api<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to <strong>API Products<\/strong> in your WordPress admin sidebar<\/li>\n<li>Enter your serial key and WooCommerce REST API credentials (Consumer Key &amp; Secret)<\/li>\n<li>Click <strong>Define API<\/strong> to configure your first API source<\/li>\n<li>Use <strong>Map Fields<\/strong> to connect API fields to WooCommerce product fields<\/li>\n<li>Hit <strong>Import<\/strong> to pull your products in<\/li>\n<\/ol>\n\n<h4>Minimum Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.8 or later<\/li>\n<li>WooCommerce 5.0 or later<\/li>\n<li>PHP 7.4 or later<\/li>\n<li>WooCommerce REST API enabled<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20types%20of%20apis%20does%20this%20support%3F\"><h3>What types of APIs does this support?<\/h3><\/dt>\n<dd><p>Any REST API that returns JSON. If your supplier, warehouse, ERP, or custom system has a REST API endpoint that returns product data in JSON format, this plugin can connect to it.<\/p><\/dd>\n<dt id=\"can%20i%20connect%20multiple%20api%20sources%20at%20once%3F\"><h3>Can I connect multiple API sources at once?<\/h3><\/dt>\n<dd><p>Yes. The multi-provider system lets you add unlimited API sources. Each one gets independent configuration, field mapping, and sync scheduling. Perfect for businesses working with multiple suppliers or warehouses.<\/p><\/dd>\n<dt id=\"does%20it%20support%20authentication%3F\"><h3>Does it support authentication?<\/h3><\/dt>\n<dd><p>Yes. API Key authentication (placed in header, query parameter, or request body) and Bearer token authorization. The API key field name is fully customizable to match your provider's requirements.<\/p><\/dd>\n<dt id=\"how%20does%20pagination%20work%3F\"><h3>How does pagination work?<\/h3><\/dt>\n<dd><p>Three modes are supported out of the box: page-based (page number + per-page), cursor-based (next token from response), and offset-based (offset + limit). Parameter names are fully customizable to match any API's pagination scheme.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20my%20api%20response%20has%20nested%20data%3F\"><h3>What happens if my API response has nested data?<\/h3><\/dt>\n<dd><p>Use the JSON Path setting to tell the plugin exactly where your product array lives in the response. For example, if products are at <code>data.results.products<\/code>, just enter that path.<\/p><\/dd>\n<dt id=\"can%20i%20sync%20only%20stock%20levels%20without%20touching%20other%20fields%3F\"><h3>Can I sync only stock levels without touching other fields?<\/h3><\/dt>\n<dd><p>Yes. Sync scopes let you choose: ALL fields, STOCK ONLY, STOCK + PRICE, or CUSTOM (pick individual fields). This minimizes unnecessary database writes and keeps syncs fast.<\/p><\/dd>\n<dt id=\"what%20if%20i%20change%20my%20field%20mapping%20after%20importing%3F\"><h3>What if I change my field mapping after importing?<\/h3><\/dt>\n<dd><p>The plugin warns you and asks for confirmation before applying mapping changes to already-imported products. It also auto-pauses scheduled syncs when configuration changes are detected.<\/p><\/dd>\n<dt id=\"is%20it%20secure%3F\"><h3>Is it secure?<\/h3><\/dt>\n<dd><p>Yes. All AJAX endpoints are nonce-protected, API credentials are stored securely, JWT tokens are scoped per-user, and all admin pages require <code>manage_options<\/code> capability.<\/p><\/dd>\n<dt id=\"can%20i%20test%20my%20api%20connection%20before%20importing%3F\"><h3>Can I test my API connection before importing?<\/h3><\/dt>\n<dd><p>Yes. The \"Test Connection\" button on the Define API page validates your configuration and shows the API response before you save anything.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20variable%2Fgrouped%20products%3F\"><h3>Does this work with variable\/grouped products?<\/h3><\/dt>\n<dd><p>Currently the plugin imports simple products. Variable and grouped product support is planned for a future release.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20my%20data%20anywhere%3F\"><h3>Does the plugin send my data anywhere?<\/h3><\/dt>\n<dd><p>Yes. Imports and scheduled syncs are performed by our hosted backend service, and the Support page uses Tawk.to for live chat. See the \"External services\" section above for exactly what data is sent and when, along with the relevant terms and privacy links.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Renamed the plugin to \"Anysync WooCommerce Products from API\"<\/li>\n<li>Prefixed all functions, classes, constants, options, and stored data with a unique plugin prefix to avoid collisions<\/li>\n<li>Documented the external backend service and Tawk.to live chat in the readme<\/li>\n<li>Declared WooCommerce as a required plugin via the \"Requires Plugins\" header<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Updated launch metadata for WordPress.org compatibility<\/li>\n<li>Improved admin output escaping and AJAX request sanitization<\/li>\n<li>Added explicit caching around product meta-field discovery<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Complete rewrite with multi-provider architecture<\/li>\n<li>Added multi-provider system for unlimited API sources<\/li>\n<li>Added cursor-based and offset-based pagination support<\/li>\n<li>Added selective sync scopes (ALL, STOCK ONLY, STOCK + PRICE, CUSTOM)<\/li>\n<li>Added real-time import progress tracking<\/li>\n<li>Added import history with detailed statistics<\/li>\n<li>Added auto-pause sync on configuration changes<\/li>\n<li>Added visual field mapping with 40+ WooCommerce fields<\/li>\n<li>Added custom meta field auto-discovery<\/li>\n<li>Added global attribute mapping support<\/li>\n<li>Improved security with per-user JWT tokens and nonce protection<\/li>\n<li>Redesigned admin UI<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Import and sync products from any external REST API into WooCommerce. Connect unlimited API sources, map fields visually, and automate inventory sync.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/337249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=337249"}],"author":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/woocommerceapiproducts"}],"wp:attachment":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=337249"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=337249"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=337249"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=337249"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=337249"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=337249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}