{"id":364977,"date":"2026-09-14T10:48:47","date_gmt":"2026-09-14T10:48:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/milan-inventory-sync-for-woocommerce\/"},"modified":"2026-09-14T12:26:35","modified_gmt":"2026-09-14T12:26:35","slug":"milan-inventory-sync","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/milan-inventory-sync\/","author":23536006,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Milan Inventory Sync for WooCommerce","header_author":"Bytloop","header_description":"Multi-channel inventory sync for WooCommerce. Shopify free; Amazon, eBay, Etsy, Walmart in Pro. Flat annual fee, no SKU tiers, self-hosted.","assets_banners_color":"5a528b","last_updated":"2026-09-14 12:26:35","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/bytloop.com\/","header_plugin_uri":"https:\/\/milan.bytloop.com\/","header_author_uri":"https:\/\/bytloop.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":46,"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":"bytloop","date":"2026-09-14 10:48:40","revision":3695008},"1.0.1":{"tag":"1.0.1","author":"bytloop","date":"2026-09-14 12:26:35","revision":3695200}},"upgrade_notice":{"1.0.1":"<p>Adds a plain &quot;Upgrade to Pro&quot; link on the Plugins and Settings screens. No functional changes.<\/p>","1.0.0":"<p>Initial release of Milan Inventory Sync for WooCommerce.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3695008,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3695008,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3695008,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3695008,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3695008,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner.svg":{"filename":"banner.svg","revision":3695008,"resolution":false,"location":"assets","locale":false}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3695008,"resolution":"1","location":"assets","locale":"","width":1440,"height":1817},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3695008,"resolution":"2","location":"assets","locale":"","width":1440,"height":1042},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3695008,"resolution":"3","location":"assets","locale":"","width":1440,"height":2048},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3695008,"resolution":"4","location":"assets","locale":"","width":1440,"height":1042},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3695008,"resolution":"5","location":"assets","locale":"","width":1440,"height":1217},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3695008,"resolution":"6","location":"assets","locale":"","width":1440,"height":2033}},"screenshots":{"1":"Channels \u2014 every marketplace you have connected, with its health.","2":"Product mappings \u2014 WooCommerce stock beside what each channel was last told.","3":"The dashboard \u2014 sync health at a glance.","4":"The conflict queue \u2014 both values, and what settled it.","5":"Analytics \u2014 success rate, latency, oversell prevention, and CSV export.","6":"Settings \u2014 including the two switches that can change a live channel."}},"plugin_section":[],"plugin_tags":[209,1706,6601,141866,286],"plugin_category":[45],"plugin_contributors":[274389],"plugin_business_model":[],"class_list":["post-364977","plugin","type-plugin","status-publish","hentry","plugin_tags-amazon","plugin_tags-ebay","plugin_tags-inventory","plugin_tags-multichannel","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-bytloop","plugin_committers-bytloop"],"banners":{"banner":"https:\/\/ps.w.org\/milan-inventory-sync\/assets\/banner-772x250.png?rev=3695008","banner_2x":"https:\/\/ps.w.org\/milan-inventory-sync\/assets\/banner-1544x500.png?rev=3695008","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/milan-inventory-sync\/assets\/icon.svg?rev=3695008","icon":"https:\/\/ps.w.org\/milan-inventory-sync\/assets\/icon.svg?rev=3695008","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/milan-inventory-sync\/assets\/screenshot-1.png?rev=3695008","caption":"Channels \u2014 every marketplace you have connected, with its health."},{"src":"https:\/\/ps.w.org\/milan-inventory-sync\/assets\/screenshot-2.png?rev=3695008","caption":"Product mappings \u2014 WooCommerce stock beside what each channel was last told."},{"src":"https:\/\/ps.w.org\/milan-inventory-sync\/assets\/screenshot-3.png?rev=3695008","caption":"The dashboard \u2014 sync health at a glance."},{"src":"https:\/\/ps.w.org\/milan-inventory-sync\/assets\/screenshot-4.png?rev=3695008","caption":"The conflict queue \u2014 both values, and what settled it."},{"src":"https:\/\/ps.w.org\/milan-inventory-sync\/assets\/screenshot-5.png?rev=3695008","caption":"Analytics \u2014 success rate, latency, oversell prevention, and CSV export."},{"src":"https:\/\/ps.w.org\/milan-inventory-sync\/assets\/screenshot-6.png?rev=3695008","caption":"Settings \u2014 including the two switches that can change a live channel."}],"raw_content":"<!--section=description-->\n<p><strong>Milan<\/strong> (pronounced mee-LAN, Bengali for \"to synchronize\") is a self-hosted multi-channel inventory management plugin. WooCommerce is your source of truth. Milan syncs stock, listings, and orders bidirectionally with Amazon, eBay, Etsy, Shopify, Walmart, and regional marketplaces.<\/p>\n\n<h4>Self-hosted, with no per-SKU accounting<\/h4>\n\n<p>Milan runs inside WordPress. Your catalogue, your stock levels, your mappings and your sync history are rows in your own database, and nothing about them is uploaded anywhere. There is no SKU count, no order quota and no usage metering of any kind.<\/p>\n\n<p>By the makers of <a href=\"https:\/\/wordpress.org\/plugins\/nishchoy-reviews\/\">Nishchoy Reviews<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/uttor-aeo\/\">Uttor AEO<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/chala-subscriptions\/\">Chala Subscriptions<\/a>, and <a href=\"https:\/\/wordpress.org\/plugins\/poth-checkout\/\">Poth Checkout<\/a>.<\/p>\n\n<h4>What this plugin does<\/h4>\n\n<p>Everything listed here works, with no licence, no key and no limit. Nothing in this plugin is switched off pending payment.<\/p>\n\n<ul>\n<li><strong>Shopify integration<\/strong> \u2014 connect your store and sync inventory in both directions<\/li>\n<li><strong>Two-way stock sync<\/strong> \u2014 push WooCommerce stock out, and pull the channel's stock back in<\/li>\n<li><strong>Price sync<\/strong> \u2014 send WooCommerce prices, with an optional per-channel markup<\/li>\n<li><strong>Listing management<\/strong> \u2014 create and update channel listings from WooCommerce products<\/li>\n<li><strong>Order import<\/strong> \u2014 orders placed on the channel become ordinary WooCommerce orders<\/li>\n<li><strong>Order status sync<\/strong> \u2014 send fulfilment, tracking and cancellations back to the channel<\/li>\n<li><strong>Product mapping<\/strong> \u2014 match by SKU or by hand, including variations to variants<\/li>\n<li><strong>Reserved stock buffers<\/strong> \u2014 hold units back per channel so the last one is not sold twice<\/li>\n<li><strong>All four conflict strategies<\/strong> \u2014 WooCommerce wins, channel wins, most recent wins, or hold for manual review; set per channel, or per event type within a channel<\/li>\n<li><strong>Bulk conflict resolution<\/strong> \u2014 settle a filtered queue in one action<\/li>\n<li><strong>Unlimited channels<\/strong> \u2014 connect as many as you have adapters for<\/li>\n<li><strong>Full analytics<\/strong> \u2014 success rate, failures, conflicts, latency percentiles, daily trends, sales by channel, oversell prevention, and CSV export of any view<\/li>\n<li><strong>Optimistic locking<\/strong> \u2014 compare-and-swap on every stock write, so concurrent sales cannot lose an update<\/li>\n<li><strong>Rate limit enforcement<\/strong> \u2014 respects each channel's published limits and its retry-after headers<\/li>\n<li><strong>Retry queue<\/strong> \u2014 failed attempts back off exponentially rather than hammering<\/li>\n<li><strong>Complete sync and conflict logs<\/strong> \u2014 no cap on history<\/li>\n<li><strong>REST API + WP-CLI<\/strong> \u2014 headless-friendly: <code>wp milan sync<\/code>, <code>wp milan status<\/code>, <code>wp milan map<\/code>, <code>wp milan diagnose<\/code><\/li>\n<li><strong>HPOS-native<\/strong><\/li>\n<li><strong>Own your data<\/strong><\/li>\n<\/ul>\n\n<h4>Additional marketplaces<\/h4>\n\n<p>Adapters for Amazon (SP-API), eBay, Etsy and Walmart Marketplace \u2014 and for Flipkart, Meesho, Jumia, Lazada and Noon \u2014 are distributed separately as <a href=\"https:\/\/milan.bytloop.com\/\">Milan Inventory Sync Pro<\/a>, along with alerting, multi-warehouse routing, white-labelling, WPML and Polylang support, and a mapping importer. That code is not part of this plugin; installing the add-on adds it.<\/p>\n\n<h4>Works with the publisher's other plugins<\/h4>\n\n<p>If any of these are installed, Milan uses them. None is required, and nothing here is disabled without them.<\/p>\n\n<ul>\n<li><strong>Nishchoy Reviews<\/strong> \u2014 import reviews from Amazon and Etsy, subject to those marketplaces' terms<\/li>\n<li><strong>Uttor AEO<\/strong> \u2014 keeps availability schema truthful across every channel<\/li>\n<li><strong>Chala Subscriptions<\/strong> \u2014 pauses a renewal for something out of stock everywhere<\/li>\n<li><strong>Poth Checkout<\/strong> \u2014 keeps upsells to items you can actually ship<\/li>\n<\/ul>\n\n<h4>Importing existing mappings<\/h4>\n\n<p>The separately distributed add-on can import product mappings from a CSV export, so a catalogue already mapped elsewhere does not have to be mapped again by hand. Guide at <a href=\"https:\/\/milan.bytloop.com\/docs\/migration\">milan.bytloop.com\/docs\/migration<\/a>.<\/p>\n\n<h4>Developer-friendly<\/h4>\n\n<p>Every sync event fires an action. Every channel is a pluggable adapter \u2014 third-party channels supported via <code>ChannelAdapterInterface<\/code>. Full REST API. See <a href=\"https:\/\/milan.bytloop.com\/docs\/developers\">milan.bytloop.com\/docs\/developers<\/a>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to one third-party service: <strong>Shopify<\/strong>.<\/p>\n\n<p>It does so only after you have entered your own Shopify credentials and connected a store on the Channels screen. Until you do that, the plugin makes no external requests at all. There is no telemetry, no analytics, no licence check, no phone-home, no remote font and no remote CDN asset.<\/p>\n\n<h4>Shopify Admin API<\/h4>\n\n<p><strong>What it is used for.<\/strong> Keeping your WooCommerce stock and the stock on your Shopify store in agreement, importing orders placed on Shopify, and registering the webhooks that tell this plugin when something changed on Shopify.<\/p>\n\n<p><strong>Where the requests go.<\/strong> <code>https:\/\/{your-store}.myshopify.com<\/code> \u2014 your own Shopify store, using the access token you supply.<\/p>\n\n<p><strong>What is sent, and when.<\/strong><\/p>\n\n<ul>\n<li>When you connect a store, and when you press \"Test\": a request asking Shopify to confirm the credentials work, and to list your shop's locations.<\/li>\n<li>When WooCommerce stock changes, and when a scheduled sync runs: the product or variant identifier you mapped, and the new stock quantity.<\/li>\n<li>If you enable price sync: the product identifier and the price.<\/li>\n<li>If you enable listing management: the product fields needed to create or update that listing \u2014 title, description, price, SKU, stock.<\/li>\n<li>When importing orders: a request asking Shopify for orders placed since the last import. This receives customer data from Shopify; it is not sent there.<\/li>\n<li>When registering a webhook: the URL on your own site that Shopify should notify.<\/li>\n<\/ul>\n\n<p>No WooCommerce customer data is ever sent to Shopify by this plugin. Nothing is sent for a product you have not mapped.<\/p>\n\n<p><strong>Terms of service:<\/strong> https:\/\/www.shopify.com\/legal\/terms\n<strong>Privacy policy:<\/strong> https:\/\/www.shopify.com\/legal\/privacy<\/p>\n\n<h4>If you install the separate add-on<\/h4>\n\n<p>Milan Inventory Sync Pro, distributed from milan.bytloop.com and not part of this plugin, adds adapters that connect to Amazon Selling Partner API, eBay, Etsy, Walmart Marketplace and several regional marketplaces on the same basis \u2014 your own seller accounts, your own credentials \u2014 and contacts Freemius to validate its licence. Its own readme documents those services. None of that code is in this plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Go to Plugins \u2192 Add New in your WordPress admin.<\/li>\n<li>Search for \"Milan Inventory Sync\".<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Follow the setup wizard: connect Shopify and map your first products.<\/li>\n<li>Turn on automatic stock sync in Settings once the mappings look right.<\/li>\n<\/ol>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.3 or newer<\/li>\n<li>WooCommerce 8.0 or newer<\/li>\n<li>PHP 7.4 or newer (8.1+ recommended)<\/li>\n<li>At least one channel account (Shopify for free)<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20really%20free%3F\"><h3>Is this really free?<\/h3><\/dt>\n<dd><p>Yes, and completely. Every feature this plugin contains is enabled: two-way Shopify sync, price and listing sync, order import and status sync, reserved stock, all four conflict strategies, the full analytics screen with CSV export, unlimited channels and unlimited history. Nothing is time-limited, quota-limited or waiting for a licence key.<\/p>\n\n<p>The separately distributed add-on is not an unlock. It contains adapter code for other marketplaces, plus features whose implementations are not in this plugin at all.<\/p><\/dd>\n<dt id=\"which%20is%20the%20source%20of%20truth%20%E2%80%94%20woo%20or%20the%20channel%3F\"><h3>Which is the source of truth \u2014 Woo or the channel?<\/h3><\/dt>\n<dd><p>WooCommerce, by default. Milan is designed around Woo-as-canonical. You can override this per channel, and per event type within a channel, in the conflict settings.<\/p><\/dd>\n<dt id=\"what%20prevents%20oversells%3F\"><h3>What prevents oversells?<\/h3><\/dt>\n<dd><p>Three mechanisms.<\/p>\n\n<p><strong>Optimistic locking.<\/strong> Every stock write is a compare-and-swap against a version number. Two sales landing in the same second on two marketplaces cannot both write \"2 units left\" \u2014 the second one loses the swap and re-reads. Without this, one of them silently overwrites the other, and the store tells the world it has one more unit than it does. This is in the free plugin.<\/p>\n\n<p><strong>Fast sync.<\/strong> A sale on any channel reduces WooCommerce stock, which Milan pushes to every other channel within seconds.<\/p>\n\n<p><strong>Reserved stock buffers (Pro).<\/strong> Hold N units back per channel, so the race happens on units 3 and 4 rather than on units 1 and 0.<\/p><\/dd>\n<dt id=\"do%20all%20the%20channels%20send%20webhooks%3F\"><h3>Do all the channels send webhooks?<\/h3><\/dt>\n<dd><p>No, and it is worth knowing which before you set expectations.<\/p>\n\n<p><strong>Shopify does<\/strong>, and Milan uses them \u2014 orders and stock changes arrive in seconds.<\/p>\n\n<p><strong>Amazon, eBay, Etsy, and Walmart do not<\/strong>, in a form a WordPress site can use. Amazon's notifications go to AWS SQS or EventBridge rather than to an HTTP endpoint; eBay's require verifying a rotating ECDSA signature; Etsy and Walmart do not offer partner webhooks at all. Milan polls those, on a schedule you control.<\/p>\n\n<p>This reflects what those marketplaces currently offer partner integrations. Milan polls them instead, which is slower than a webhook but does not miss changes.<\/p><\/dd>\n<dt id=\"what%20tiers%20are%20there%3F\"><h3>What tiers are there?<\/h3><\/dt>\n<dd><p>This plugin has no tiers. It is one plugin and all of it works. The separately distributed add-on is sold in three, differing by which marketplace adapters they include, how many sites the licence covers, and what support comes with it: <strong>Personal<\/strong> adds Amazon, eBay, Etsy and Walmart plus alerting; <strong>Business<\/strong> covers three sites; <strong>Agency<\/strong> covers twenty-five and adds the regional marketplaces, multi-warehouse routing and white-labelling.<\/p><\/dd>\n<dt id=\"does%20milan%20need%20amazon%20seller%20certification%3F\"><h3>Does Milan need Amazon Seller certification?<\/h3><\/dt>\n<dd><p>Yes for Pro's Amazon integration. Amazon SP-API requires you to be a registered Amazon seller in good standing. Milan handles the OAuth and API connection, but Amazon's own requirements apply.<\/p><\/dd>\n<dt id=\"what%20about%20ebay%3F\"><h3>What about eBay?<\/h3><\/dt>\n<dd><p>eBay Trading API just needs a Developer account (free) and your eBay seller account credentials.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20variable%20products%3F\"><h3>Does it work with variable products?<\/h3><\/dt>\n<dd><p>Yes. Variable products map to channel-specific variant structures (Amazon parent\/child ASINs, eBay variations, Etsy inventory items, Shopify variants).<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20channel%20goes%20down%3F\"><h3>What happens if a channel goes down?<\/h3><\/dt>\n<dd><p>Milan fails safe. If Amazon's API is unreachable, Woo keeps running normally. Sync attempts queue with exponential backoff. Once the channel is back, queued jobs process. Alerts (Pro) notify you of extended outages.<\/p><\/dd>\n<dt id=\"how%20does%20conflict%20resolution%20work%3F\"><h3>How does conflict resolution work?<\/h3><\/dt>\n<dd><p>When Woo and a channel disagree \u2014 Woo shows 5 units, Amazon shows 3 because somebody bought there \u2014 Milan applies a strategy: WooCommerce wins, the channel wins, the most recent change wins, or hold it for manual review.<\/p>\n\n<p>Free always uses \"WooCommerce wins\", which is the safe default. Personal Pro lets you choose per channel. Business Pro lets you choose per channel <em>and<\/em> per event type \u2014 \"WooCommerce wins on stock, eBay wins on price\" \u2014 and adds the manual-review queue and bulk resolution.<\/p>\n\n<p>Every conflict is recorded either way, including the ones Milan settles automatically in a microsecond, with the strategy that settled it. The question a merchant eventually asks is not \"is my stock right\" but \"why did my stock change\", and that record is the answer.<\/p><\/dd>\n<dt id=\"can%20i%20sell%20on%20flipkart%20%2F%20meesho%20%2F%20jumia%20%2F%20lazada%20%2F%20noon%3F\"><h3>Can I sell on Flipkart \/ Meesho \/ Jumia \/ Lazada \/ Noon?<\/h3><\/dt>\n<dd><p>Yes, on the Agency tier \u2014 and those five are marked <strong>beta<\/strong>. They are built against each marketplace's published documentation and tested against recorded responses, but they have not been validated against a live seller account in each region. Sync a handful of products and check before you point one at a catalogue. The Channels screen says the same thing.<\/p><\/dd>\n<dt id=\"is%20it%20hpos-compatible%3F\"><h3>Is it HPOS-compatible?<\/h3><\/dt>\n<dd><p>Yes. Milan is HPOS-native. Marketplace orders arrive as first-class Woo orders under HPOS.<\/p><\/dd>\n<dt id=\"what%20if%20the%20channel%20i%20need%20isn%27t%20supported%3F\"><h3>What if the channel I need isn't supported?<\/h3><\/dt>\n<dd><p>You can build a channel adapter. The <code>ChannelAdapterInterface<\/code> documented at <a href=\"https:\/\/milan.bytloop.com\/docs\/channel-adapter-guide\">milan.bytloop.com\/docs\/channel-adapter-guide<\/a> is a standard extension point. Third-party channels welcome.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20support%3F\"><h3>Where can I get support?<\/h3><\/dt>\n<dd><p>Free support in the <a href=\"https:\/\/wordpress.org\/support\/plugin\/milan-inventory-sync\/\">wp.org support forum<\/a>. Pro customers get email support at support@bytloop.com with 24h SLA. Agency includes video call support for setup and troubleshooting.<\/p><\/dd>\n<dt id=\"i%27m%20a%20developer%20%E2%80%94%20where%20are%20the%20hooks%3F\"><h3>I'm a developer \u2014 where are the hooks?<\/h3><\/dt>\n<dd><p>The hooks reference lives at <a href=\"https:\/\/milan.bytloop.com\/docs\/hooks\">milan.bytloop.com\/docs\/hooks<\/a> and in <code>\/docs\/hooks.md<\/code> in the plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added a single \"Upgrade to Pro\" link to the Plugins screen and the Settings screen \u2014 both plain outbound links, no third-party script loaded by this plugin.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Multi-channel inventory sync for WooCommerce. Shopify free; Amazon, eBay, Etsy, Walmart in Pro. Flat annual fee, no SKU tiers, self-hosted.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/364977","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=364977"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bytloop"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=364977"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=364977"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=364977"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=364977"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=364977"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=364977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}