{"id":359622,"date":"2026-10-10T11:54:49","date_gmt":"2026-10-10T11:54:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/invflux-for-woocommerce\/"},"modified":"2026-10-10T11:54:30","modified_gmt":"2026-10-10T11:54:30","slug":"invflux-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/tl.wordpress.org\/plugins\/invflux-for-woocommerce\/","author":23555892,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.2.0","stable_tag":"0.2.0","tested":"7.1.3","requires":"6.8","requires_php":"8.1","requires_plugins":null,"header_name":"InvFlux for WooCommerce","header_author":"Samuel de Rougemont","header_description":"WooCommerce stock you can trust \u2014 and trace.","assets_banners_color":"0a293c","last_updated":"2026-10-10 11:54:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":73,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.0":{"tag":"0.2.0","author":"invflux","date":"2026-10-10 11:54:30","revision":3738024}},"upgrade_notice":{"0.2.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3737961,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3737961,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3737961,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3737961,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3737961,"resolution":"1","location":"assets","locale":"","width":1440,"height":885},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3737961,"resolution":"2","location":"assets","locale":"","width":1440,"height":600},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3737961,"resolution":"3","location":"assets","locale":"","width":1440,"height":600},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3737961,"resolution":"4","location":"assets","locale":"","width":1440,"height":640},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3737961,"resolution":"5","location":"assets","locale":"","width":1440,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3737961,"resolution":"6","location":"assets","locale":"","width":1440,"height":760},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3737961,"resolution":"7","location":"assets","locale":"","width":964,"height":570},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3737961,"resolution":"8","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"The workbench: your catalog and stock in one grid \u2014 available, reserved, committed and on hand, what's owed to orders (to ship, deficit), unit cost and stock value \u2014 with spreadsheet-style selection and bulk editing.","2":"Every change on the record: each movement with who made it and from which screen, the order or purchase order behind it, the cost of each receipt, and the reason for each correction.","3":"Reorder in one click: a draft purchase order for everything below its threshold, at quantities that fill each product back up to its Target stock \u2014 counting what's already on order.","4":"Receive a partial delivery against its purchase order: note damaged units, see the shortfall, and keep the PO open for the rest. Nothing is added to stock until you confirm.","5":"Dispatch: a queue of what's owed to customers \u2014 tag, stage and ship, and see at a glance which orders can't ship and why.","6":"Stage an order line by line, with corrections, notes and its timeline in one place.","7":"Hand products over one at a time from WooCommerce's own Inventory tab \u2014 or leave any product with WooCommerce or another plugin.","8":"Correct the record with a reason: review a count's differences per field, say why units were found or lost, or enter the increases as a Goods Receipt."}},"plugin_section":[],"plugin_tags":[6601,146690,285523,59098,286],"plugin_category":[45],"plugin_contributors":[285524],"plugin_business_model":[],"class_list":["post-359622","plugin","type-plugin","status-publish","hentry","plugin_tags-inventory","plugin_tags-purchase-order","plugin_tags-stock-audit","plugin_tags-stock-management","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-invflux","plugin_committers-invflux"],"banners":{"banner":"https:\/\/ps.w.org\/invflux-for-woocommerce\/assets\/banner-772x250.png?rev=3737961","banner_2x":"https:\/\/ps.w.org\/invflux-for-woocommerce\/assets\/banner-1544x500.png?rev=3737961","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/invflux-for-woocommerce\/assets\/icon-128x128.png?rev=3737961","icon_2x":"https:\/\/ps.w.org\/invflux-for-woocommerce\/assets\/icon-256x256.png?rev=3737961","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/invflux-for-woocommerce\/assets\/screenshot-1.png?rev=3737961","caption":"The workbench: your catalog and stock in one grid \u2014 available, reserved, committed and on hand, what's owed to orders (to ship, deficit), unit cost and stock value \u2014 with spreadsheet-style selection and bulk editing."},{"src":"https:\/\/ps.w.org\/invflux-for-woocommerce\/assets\/screenshot-2.png?rev=3737961","caption":"Every change on the record: each movement with who made it and from which screen, the order or purchase order behind it, the cost of each receipt, and the reason for each correction."},{"src":"https:\/\/ps.w.org\/invflux-for-woocommerce\/assets\/screenshot-3.png?rev=3737961","caption":"Reorder in one click: a draft purchase order for everything below its threshold, at quantities that fill each product back up to its Target stock \u2014 counting what's already on order."},{"src":"https:\/\/ps.w.org\/invflux-for-woocommerce\/assets\/screenshot-4.png?rev=3737961","caption":"Receive a partial delivery against its purchase order: note damaged units, see the shortfall, and keep the PO open for the rest. Nothing is added to stock until you confirm."},{"src":"https:\/\/ps.w.org\/invflux-for-woocommerce\/assets\/screenshot-5.png?rev=3737961","caption":"Dispatch: a queue of what's owed to customers \u2014 tag, stage and ship, and see at a glance which orders can't ship and why."},{"src":"https:\/\/ps.w.org\/invflux-for-woocommerce\/assets\/screenshot-6.png?rev=3737961","caption":"Stage an order line by line, with corrections, notes and its timeline in one place."},{"src":"https:\/\/ps.w.org\/invflux-for-woocommerce\/assets\/screenshot-7.png?rev=3737961","caption":"Hand products over one at a time from WooCommerce's own Inventory tab \u2014 or leave any product with WooCommerce or another plugin."},{"src":"https:\/\/ps.w.org\/invflux-for-woocommerce\/assets\/screenshot-8.png?rev=3737961","caption":"Correct the record with a reason: review a count's differences per field, say why units were found or lost, or enter the increases as a Goods Receipt."}],"raw_content":"<!--section=description-->\n<p><strong>InvFlux makes WooCommerce stock a ledger, not a number that anything can overwrite.<\/strong> Every change to your stock record is recorded \u2014 exact from \u2192 to, and <em>why<\/em> \u2014 whichever screen, order, import or plugin makes it, so you can answer \"why is this number what it is?\" for any product, any day. On top of it: a stock workbench, a dispatch queue, and purchase orders with receiving. All free.<\/p>\n\n<h4>Why stock drifts<\/h4>\n\n<p>WooCommerce stores stock as one mutable number. Its checkout now <em>holds<\/em> stock, so the storefront rarely oversells \u2014 but that same number is written from paths checkout never sees: an admin edit to the stock field, an order created or edited over the REST API or in wp-admin, a bulk update, a POS or ERP sync, another plugin. None of those reconcile it or leave a record, so when it drifts there \u2014 two edits landing at the same moment, an edit that's simply wrong \u2014 nothing catches it, until it surfaces the costly way, at dispatch, when an order can't be filled because the unit isn't really there.<\/p>\n\n<p>InvFlux makes the ledger the source of truth, and WooCommerce's stock number becomes a copy kept in sync with it. Stock edits made in InvFlux \u2014 the workbench or the product's Inventory tab \u2014 are booked as ledger entries. If anything else writes WooCommerce's stock number directly \u2014 another plugin, WooCommerce's bulk edit or CSV import, an external sync \u2014 the write is discarded and the ledger's figure stands; you can choose, per plugin, to be notified instead, or to let a trusted plugin's changes into the ledger. A change made straight to the database is flagged by InvFlux's diagnostics, which restore the ledger's figure.<\/p>\n\n<h4>What you get, free<\/h4>\n\n<p><strong>Stock you can trust<\/strong><\/p>\n\n<ul>\n<li><strong>Every change on the record.<\/strong> Once InvFlux manages a product, every change \u2014 a sale, a stock edit in the workbench or on the product's Inventory tab, an order created or edited via REST or wp-admin, a bulk edit in the workbench \u2014 is a recorded ledger entry, and WooCommerce's number is kept in sync with it. You stop discovering a wrong number too late, at dispatch.<\/li>\n<li><strong>A real audit trail.<\/strong> Every change is a ledger entry (from \u2192 to, with before\/after balances), plus per-SKU movement history.<\/li>\n<li><strong>Physical stock you can actually verify.<\/strong> WooCommerce's number is what's available to <em>sell<\/em> \u2014 not what should be on the shelf, so a stock take can't cleanly check against it. InvFlux tracks the states \u2014 available, reserved by live carts, committed to confirmed orders \u2014 and carries their sum as an <strong>on-hand total<\/strong>: what should physically be in your hands. Export it to CSV or a spreadsheet and it's your count sheet: count, and where the count differs, correct the record with a reason.<\/li>\n<\/ul>\n\n<p><strong>The workbench \u2014 your catalog and stock in one grid<\/strong><\/p>\n\n<ul>\n<li>Filter and search across ~30 columns, with available, reserved, committed, on-hand, <strong>to ship<\/strong> and <strong>deficit<\/strong> side by side.<\/li>\n<li>Select cells like a spreadsheet and bulk-edit product fields, pin columns, and adjust on-hand stock when a count diverges.<\/li>\n<li>Save worksheets, and export to CSV or XLSX.<\/li>\n<\/ul>\n\n<p><strong>Dispatch \u2014 ship what's owed<\/strong><\/p>\n\n<ul>\n<li>A fulfillment queue: filter, tag, stage lines, and mark shipped \u2014 with an optional tracking number. <em>(Shipping only part of an order from this queue is a paid add-on.)<\/em><\/li>\n<li><strong>Undo a shipment<\/strong> confirmed by mistake: the stock is held for that order again, and the order returns to the queue.<\/li>\n<li><strong>Ready for WooCommerce's fulfillments<\/strong> (an optional WooCommerce feature, off by default): when it's on, a fulfillment recorded on WooCommerce's order screen releases the stock it covers, and orders you ship from InvFlux appear as fulfillments in WooCommerce, which sends its own shipping notification when there's a tracking number.<\/li>\n<\/ul>\n\n<p><strong>Purchase orders and receiving \u2014 a real procurement loop<\/strong><\/p>\n\n<ul>\n<li><strong>Suppliers with the detail that makes a PO correct:<\/strong> tax number and regime (standard, reverse-charge, exempt\u2026), payment terms, incoterms, lead time.<\/li>\n<li><strong>Raise POs<\/strong> by typing them, or import them from a paste or CSV\/XLSX.<\/li>\n<li><strong>Receive across partial deliveries,<\/strong> with short\/over flags; stock lands at a weighted-average cost from the receipt.<\/li>\n<li><strong>Receive without a purchase order too:<\/strong> a standalone receipt with a reason, optionally from a named supplier at its catalog cost; it lands at weighted-average cost like any other. A posted receipt can be corrected or reversed from its own screen.<\/li>\n<li><strong>Reorder in one click:<\/strong> draft a PO from everything below its low-stock threshold, at suggested quantities that fill each product back up to its Target stock. You review and edit the draft before submitting.<\/li>\n<li><strong>A proper document:<\/strong> every PO prints (\u2192 PDF) or exports (XLSX) in the supplier's language \u2014 from InvFlux's built-in purchase-order translations (a growing set) \u2014 with a per-rate tax breakdown, ship-to, and your terms.<\/li>\n<\/ul>\n\n<h4>Safe to try<\/h4>\n\n<ul>\n<li><strong>It doesn't touch your stock until you say so.<\/strong> InvFlux installs in observe mode: WooCommerce keeps managing every product exactly as before until you hand one over \u2014 all at once from the setup screen, from a product's Inventory tab, or in bulk from the workbench. Its current stock becomes the opening balance; handing a product back is one click.<\/li>\n<li><strong>Nothing leaves your site<\/strong> unless you open Licenses &amp; Add-ons or register a license, and then only what \"External services\" below lists. Every inventory feature works without registering, forever.<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<p>InvFlux requires WooCommerce with <strong>High-Performance Order Storage (HPOS)<\/strong> enabled \u2014 the default on current WooCommerce. If HPOS is off, the setup screen says so and links to the WooCommerce setting where you turn it on, and it won't hand products over until you do; nothing breaks in the meantime. A current database is also expected (MySQL 8.0.16+ or MariaDB 10.6+).<\/p>\n\n<p>InvFlux runs one install per store. On a WordPress network you can activate it per site or network-wide \u2014 either way each site keeps its own independent inventory. See the FAQ on multisite.<\/p>\n\n<h4>Built to grow \u2014 paid add-ons<\/h4>\n\n<p>Essentials keeps your stock record right, and stays free. InvFlux is designed as composable add-ons rather than one monolith, so as paid extensions arrive you add only what you need:<\/p>\n\n<ul>\n<li>roles and permissions \u2014 decide which staff may do what<\/li>\n<li>stock takes and cycle counts<\/li>\n<li>partial shipment<\/li>\n<li>multi-warehouse<\/li>\n<li>FIFO costing and landed cost<\/li>\n<li>multi-channel sync<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin can connect to one external service: the InvFlux licensing service at https:\/\/license.invflux.com \u2014 the service that issues and validates licenses.<\/p>\n\n<p><strong>Nothing is transmitted until you open Licenses &amp; Add-ons, register, or activate a license.<\/strong> Until you do one of those three things the plugin never contacts the service at all. There is no usage tracking, no analytics and no crash reporting, at any point \u2014 we never see how you use the plugin, and your shop's data never leaves your site.<\/p>\n\n<p>What is sent, and when:<\/p>\n\n<ul>\n<li><strong>When you register a free license<\/strong> (you type an email address and press Register, on InvFlux \u2192 Licenses &amp; Add-ons or on the InvFlux settings screen): your email address, your site's address, and the plugin version. This claims a free permanent license and links the site to an account.<\/li>\n<li><strong>When you activate a paid license key<\/strong>: the license key, your site's address, the plugin version, two environment signals \u2014 whether <code>WP_DEBUG<\/code> is on and what WordPress reports as the environment type (production, staging, development) \u2014 so a staging copy doesn't consume a production seat, and the versions of PHP and of the database server your site runs on (see the daily check below).<\/li>\n<li><strong>Once a license is registered or activated, once a day<\/strong>: the activation's id, your site's address, those same two environment signals, and the versions of PHP and of the database server your site runs on \u2014 to pick up a change in the license's status (a renewal, a cancellation), and so we know which PHP and database versions are still in use and must keep working. The version numbers are counted and nothing else; they are never used to decide anything about your license. This stops when you deactivate the license, or when you un-register.<\/li>\n<li><strong>When you open Licenses &amp; Add-ons<\/strong>: your account's licenses and the price list are read back so the screen can show them. Your shop's base country is sent with the price request so prices are quoted in the right currency and region.<\/li>\n<li><strong>When you open InvFlux \u2192 Roadmap<\/strong> (only on a site with a registered or activated license \u2014 without one, nothing is sent and the screen links to the public roadmap on invflux.com): the activation's id and your admin language, so the screen can show which items you have voted for. No vote counts are ever sent back.<\/li>\n<li><strong>When you press a vote button there<\/strong>: the activation's id, which ties the vote to your account, and the id of the item you voted for. Nothing else is sent in either request.<\/li>\n<\/ul>\n\n<p>You can un-register at any time, from InvFlux \u2192 Licenses &amp; Add-ons. Doing so releases the site's license and stops the daily check, after which the plugin does not contact the service again unless you register once more. Every inventory feature keeps working exactly as before.<\/p>\n\n<p>Your product, stock, order and customer data is <strong>never<\/strong> transmitted. It stays in your WordPress database.<\/p>\n\n<p>Terms of service: https:\/\/invflux.com\/terms\nPrivacy policy: https:\/\/invflux.com\/privacy<\/p>\n\n<h3>Source code and build process<\/h3>\n\n<p>Every PHP file in this plugin is the source. The admin screens are the exception: they are SolidJS applications, and what ships in <code>build\/<\/code> is compiled and minified. Their source, and the tooling that produces those files, lives in a public repository:<\/p>\n\n<p>https:\/\/github.com\/invflux\/invflux-ui<\/p>\n\n<p>To reproduce the shipped bundles from a checkout of that repository, with Node 22:<\/p>\n\n<pre><code>npm install\nINVFLUX_PLUGIN_DIR=\/absolute\/path\/to\/output npm run build\n<\/code><\/pre>\n\n<p>That writes <code>&lt;output&gt;\/build\/app\/<\/code> and <code>&lt;output&gt;\/build\/product-tab\/<\/code> \u2014 the same two directories this plugin ships under <code>build\/<\/code>. Use an absolute path: the variable is read once per surface, from inside that surface's own package directory, so a relative one produces two separate output trees. Without it, the output goes to a sibling checkout of this plugin, which is the layout used while developing.<\/p>\n\n<p>The toolchain is Vite with the SolidJS plugin and Tailwind; versions are pinned in the repository's <code>package-lock.json<\/code>, so a build from a given commit is reproducible.<\/p>\n\n<p>Source maps are not included in the release zip \u2014 they would add about 40% to the download for something only a developer reads, and the repository above answers the same question better. <code>bin\/build-dist.sh --with-maps<\/code> produces a build that includes them.<\/p>\n\n<p>The PHP libraries are third-party packages, listed with the exact versions bundled in <code>composer.json<\/code> at the root of this plugin. Those under <code>vendor\/<\/code> are unmodified. Those under <code>vendor-prefixed\/<\/code> \u2014 PhpSpreadsheet and the five packages it depends on \u2014 are altered in two mechanical ways at build time: their namespaces are rewritten so they cannot collide with another plugin shipping a different version of the same library, and PhpSpreadsheet's readers and writers are pruned to the spreadsheet formats this plugin actually uses.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate <strong>WooCommerce<\/strong>, with HPOS enabled (WooCommerce \u2192 Settings \u2192 Advanced \u2192 Features).<\/li>\n<li>Install and activate <strong>InvFlux for WooCommerce<\/strong>.<\/li>\n<li>Activation opens a short setup screen. It finds the products WooCommerce already manages stock for, and one click hands them to InvFlux \u2014 their current stock becomes the opening balance. No CSV import, no manual mapping.<\/li>\n<li>Not ready to hand everything over? Skip it. You can hand products to InvFlux later, one at a time from a product's Inventory tab or in bulk from the workbench.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20invflux%20overwrite%20my%20current%20stock%3F\"><h3>Will InvFlux overwrite my current stock?<\/h3><\/dt>\n<dd><p>No. InvFlux installs in observe mode \u2014 WooCommerce keeps managing every product exactly as before until you hand one over, from the setup screen (all at once), a product's Inventory tab, or the workbench (in bulk). When you do, that product's current WooCommerce stock becomes its opening balance, InvFlux is the source of truth from there, and WooCommerce's stock number is kept in sync with the InvFlux ledger. Handing a product back to WooCommerce is one click.<\/p><\/dd>\n<dt id=\"does%20it%20require%20hpos%3F\"><h3>Does it require HPOS?<\/h3><\/dt>\n<dd><p>Yes. InvFlux is built for WooCommerce's High-Performance Order Storage, the default for current installs. With HPOS disabled, the setup screen explains what to change and links to the setting, and handing products over waits until it's on.<\/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 each variation is tracked independently.<\/p><\/dd>\n<dt id=\"is%20it%20really%20free%3F\"><h3>Is it really free?<\/h3><\/dt>\n<dd><p>Yes. Drift-proof stock, the ledger, the stock workbench, purchase orders and receiving, and the dispatch workbench are free. Paid tiers will add deeper operational workflows (multi-warehouse, costing, multi-channel and more) \u2014 opt in only if you need them.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20wordpress%20multisite%3F\"><h3>Does it work on WordPress multisite?<\/h3><\/dt>\n<dd><p>Yes, per site or network-wide. Either way, each site runs its own independent inventory \u2014 its own ledger, its own products, its own settings \u2014 exactly as if it were a standalone install. A network activation sets every existing site up, and a site you create later is set up when you create it.<\/p>\n\n<p>What it deliberately does <em>not<\/em> do yet is let several sites in one network <strong>share<\/strong> stock. That is the interesting case, and it is planned as an add-on: one catalog and one ledger behind several storefronts, so stock can't drift apart across two of your own sites \u2014 the way InvFlux already keeps one ledger behind every path within a single site. It is a separate product from Essentials; Essentials stays one install, one store.<\/p><\/dd>\n<dt id=\"does%20it%20support%20multilingual%20stores%20%28wpml%29%3F\"><h3>Does it support multilingual stores (WPML)?<\/h3><\/dt>\n<dd><p>Yes. On WPML\/WooCommerce Multilingual stores, a product's translations resolve to a single shared stock record instead of splitting inventory across languages.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20anything%20off%20my%20site%3F\"><h3>Does the plugin send anything off my site?<\/h3><\/dt>\n<dd><p>Only if you open Licenses &amp; Add-ons or register a license, and only what \"External services\" below lists; the registration screen lists what it sends before you press the button. Every inventory feature works without registering, forever.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<\/ul>","raw_excerpt":"Outside checkout, WooCommerce stock changes with no record \u2014 admin edits, REST orders, syncs. InvFlux makes every change a ledger entry. Free.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/359622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=359622"}],"author":[{"embeddable":true,"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/invflux"}],"wp:attachment":[{"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=359622"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=359622"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=359622"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=359622"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=359622"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=359622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}