{"id":395468,"date":"2026-11-01T12:51:02","date_gmt":"2026-11-01T12:51:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/kavio-sell-by-measure-for-woocommerce\/"},"modified":"2026-11-01T12:50:54","modified_gmt":"2026-11-01T12:50:54","slug":"kavio-labs-sell-by-measure","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/kavio-labs-sell-by-measure\/","author":23595760,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.4","requires":"6.7","requires_php":"7.4","requires_plugins":null,"header_name":"Kavio Labs Sell by Measure for WooCommerce","header_author":"Kavio Labs","header_description":"Sell products by weight, length, area or volume with decimal quantities, a unit price and a live total. Works with the classic and block cart and checkout.","assets_banners_color":"e2ebf4","last_updated":"2026-11-01 12:50:54","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/kavio-labs-sell-by-measure\/","header_author_uri":"https:\/\/kaviolabs.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"kaviolabs","date":"2026-11-01 12:50:54","revision":3778038}},"upgrade_notice":{"1.0.1":"<p>Fixes the quantity field showing a decimal comma in some browser languages.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3778038,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3778038,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3778038,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3778038,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3778038,"resolution":"1","location":"assets","locale":"","width":1212,"height":588},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3778038,"resolution":"2","location":"assets","locale":"","width":1212,"height":529},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3778038,"resolution":"3","location":"assets","locale":"","width":1212,"height":1115},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3778038,"resolution":"4","location":"assets","locale":"","width":1212,"height":463},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3778038,"resolution":"5","location":"assets","locale":"","width":780,"height":443},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3778038,"resolution":"6","location":"assets","locale":"","width":1120,"height":628}},"screenshots":{"1":"Product page: quantity in kilograms with the unit label, minimum hint and live total.","2":"Cart block: the unit next to the quantity selector and the unit price of the line.","3":"Checkout block: order summary with decimal quantities.","4":"Order received page: quantity with the unit and the unit price.","5":"Product data tab \"Sell by measure\": sale unit, step, minimum, maximum and default amount.","6":"Settings: unit after prices, live total and data removal."}},"plugin_section":[],"plugin_tags":[226417,22278,259415,284125,13406],"plugin_category":[],"plugin_contributors":[290078],"plugin_business_model":[],"class_list":["post-395468","plugin","type-plugin","status-publish","hentry","plugin_tags-decimal-quantity","plugin_tags-measurement","plugin_tags-price-per-unit","plugin_tags-sell-by-weight","plugin_tags-unit-price","plugin_contributors-kaviolabs","plugin_committers-kaviolabs"],"banners":{"banner":"https:\/\/ps.w.org\/kavio-labs-sell-by-measure\/assets\/banner-772x250.png?rev=3778038","banner_2x":"https:\/\/ps.w.org\/kavio-labs-sell-by-measure\/assets\/banner-1544x500.png?rev=3778038","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/kavio-labs-sell-by-measure\/assets\/icon-128x128.png?rev=3778038","icon_2x":"https:\/\/ps.w.org\/kavio-labs-sell-by-measure\/assets\/icon-256x256.png?rev=3778038","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/kavio-labs-sell-by-measure\/assets\/screenshot-1.png?rev=3778038","caption":"Product page: quantity in kilograms with the unit label, minimum hint and live total."},{"src":"https:\/\/ps.w.org\/kavio-labs-sell-by-measure\/assets\/screenshot-2.png?rev=3778038","caption":"Cart block: the unit next to the quantity selector and the unit price of the line."},{"src":"https:\/\/ps.w.org\/kavio-labs-sell-by-measure\/assets\/screenshot-3.png?rev=3778038","caption":"Checkout block: order summary with decimal quantities."},{"src":"https:\/\/ps.w.org\/kavio-labs-sell-by-measure\/assets\/screenshot-4.png?rev=3778038","caption":"Order received page: quantity with the unit and the unit price."},{"src":"https:\/\/ps.w.org\/kavio-labs-sell-by-measure\/assets\/screenshot-5.png?rev=3778038","caption":"Product data tab \"Sell by measure\": sale unit, step, minimum, maximum and default amount."},{"src":"https:\/\/ps.w.org\/kavio-labs-sell-by-measure\/assets\/screenshot-6.png?rev=3778038","caption":"Settings: unit after prices, live total and data removal."}],"raw_content":"<!--section=description-->\n<p>Sell cheese by the kilogram, fabric by the meter, flooring by the square meter or paint by the liter. Customers type the amount they need (1.25 kg, 2.6 m, 3.5 m\u00b2); the product price is the price of one unit and every total is price \u00d7 quantity, calculated by WooCommerce itself.<\/p>\n\n<p><strong>Real decimal quantities, end to end.<\/strong> The cart line says 1.25 kg, the order line says 1.25 kg, the stock goes down by 1.25 and the e-mail shows 1.25 kg. There are no hidden \"1 piece\" lines, so payment gateways, invoices and reports receive the real quantity and unit price.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>10 sale units: kilogram, gram, pound, meter, centimeter, foot, square meter, square foot, liter, milliliter.<\/li>\n<li>Per product: sale unit, quantity step (up to 4 decimals, e.g. 0.005 kg), minimum, maximum and default amount.<\/li>\n<li>Product page: unit label next to the quantity field, minimum\/maximum hint and a live total (\"Total: $16.24 (1.250 kg at $12.99 \/ kg)\"), also for variable products.<\/li>\n<li>\"\/ kg\" after prices on product pages and product lists (can be switched off).<\/li>\n<li>Stock in the sale unit with decimals: \"8.75 kg in stock\". Orders reduce it exactly; cancelled orders give it back.<\/li>\n<li>Classic <strong>and<\/strong> block Cart and Checkout, the mini cart and the Store API: the same step, minimum and maximum apply everywhere because they are set through WooCommerce's own quantity rules.<\/li>\n<li>Unit price row in the cart and checkout (\"Unit price: $12.99 \/ kg\").<\/li>\n<li>Thank-you page, My Account, order e-mails and the admin order screen show the unit and the unit price, without template overrides.<\/li>\n<li>Products sold in whole items stay whole: decimals are only accepted for products that have a sale unit.<\/li>\n<li>Product lists and product grid blocks add the default amount with one click.<\/li>\n<li>Compatible with High-Performance Order Storage (HPOS), the Cart and Checkout blocks and block themes.<\/li>\n<li>Lightweight: two small scripts (no build step, no external libraries), loaded only where they are needed.<\/li>\n<li>No external requests, no tracking, no account, no license key. Every feature in this plugin is free.<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Open a product, tab <strong>Sell by measure<\/strong>, choose a sale unit (for example kilogram) and optionally a step, minimum, maximum and default amount.<\/li>\n<li>Enter the price of one unit as the regular price (for example $12.99 for 1 kg).<\/li>\n<li>Set the stock in the same unit in the Inventory tab, for example 125.5.<\/li>\n<\/ol>\n\n<p>That's it: customers can now buy 0.75 kg or 2.35 kg, and the cart, checkout, order and stock follow.<\/p>\n\n<h4>Full edition<\/h4>\n\n<p>This plugin is complete on its own. Stores that need more can use the full edition, Sell by Measure for WooCommerce (sold separately at <a href=\"https:\/\/woocommerce.kaviolabs.com\/woocommerce-plugins\/woocommerce-sell-by-measure\/\">kaviolabs.com<\/a>), which adds category defaults, quick-amount buttons, a length \u00d7 width calculator for area units and five more units (oz, in, yd, gal, fl oz). It reads the product settings made with this plugin, so nothing has to be set up again.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce (10.1 or later).<\/li>\n<li>In Plugins &gt; Add New, search for \"Kavio Labs Sell by Measure\", install and activate it. Or upload the plugin zip in Plugins &gt; Add New &gt; Upload Plugin.<\/li>\n<li>Edit a product, open the <strong>Sell by measure<\/strong> tab of the Product data box, choose a sale unit and update the product.<\/li>\n<li>Optional: WooCommerce &gt; Settings &gt; Sell by measure for the display options.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20the%20block%20cart%20and%20checkout%3F\"><h3>Does it work with the block Cart and Checkout?<\/h3><\/dt>\n<dd><p>Yes. The step, minimum and maximum are set through WooCommerce's quantity rules, which the classic pages, the Cart and Checkout blocks, the mini cart and the Store API all use. The unit is shown next to the quantity in the cart block and in the order summary.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20the%20products%20i%20sell%20in%20whole%20items%3F\"><h3>What happens to the products I sell in whole items?<\/h3><\/dt>\n<dd><p>Nothing. Only products with a sale unit accept decimals. A quantity of 1.5 for any other product is rejected with a clear message, and their quantity fields keep the numeric keyboard on phones.<\/p><\/dd>\n<dt id=\"which%20price%20do%20i%20enter%3F\"><h3>Which price do I enter?<\/h3><\/dt>\n<dd><p>The price of one unit: for a cheese at $12.99 per kilogram, enter 12.99 with the unit \"Kilogram\". The cart line for 1.25 kg is then $16.24.<\/p><\/dd>\n<dt id=\"how%20is%20the%20stock%20kept%3F\"><h3>How is the stock kept?<\/h3><\/dt>\n<dd><p>In the sale unit, with up to 4 decimals. Enter for example 125.5 in the Inventory tab. An order of 1.3 kg takes 1.3 from the stock and a cancelled order gives it back.<\/p><\/dd>\n<dt id=\"what%20about%20shipping%20weight%3F\"><h3>What about shipping weight?<\/h3><\/dt>\n<dd><p>Enter the weight of one unit in the Shipping tab. WooCommerce multiplies it by the quantity, so 2.5 m of a fabric with 0.3 kg per meter weighs 0.75 kg.<\/p><\/dd>\n<dt id=\"can%20customers%20type%20a%20decimal%20comma%3F\"><h3>Can customers type a decimal comma?<\/h3><\/dt>\n<dd><p>The quantity field is a number field, so the browser accepts the decimal separator of the visitor's locale and sends a dot. The amount is rounded to your step on the server, and the customer sees a notice when it was adjusted.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20any%20data%20anywhere%3F\"><h3>Does the plugin send any data anywhere?<\/h3><\/dt>\n<dd><p>No. The plugin makes no external requests and collects no data. The only link to an external website is the \"Learn about the full edition\" link in its settings screen, which you can dismiss.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20when%20i%20delete%20the%20plugin%3F\"><h3>What happens to my data when I delete the plugin?<\/h3><\/dt>\n<dd><p>The plugin settings are always removed. Product settings are removed only when \"Remove data on uninstall\" is on (WooCommerce &gt; Settings &gt; Sell by measure). Orders are never changed: their lines keep the quantity and the unit.<\/p><\/dd>\n<dt id=\"can%20i%20switch%20to%20the%20full%20edition%20later%3F\"><h3>Can I switch to the full edition later?<\/h3><\/dt>\n<dd><p>Yes. Both use the same product settings. When the full edition is active, this plugin stays idle and can be deactivated.<\/p><\/dd>\n<dt id=\"are%20there%20known%20limitations%3F\"><h3>Are there known limitations?<\/h3><\/dt>\n<dd><ul>\n<li>While a block checkout is open, WooCommerce reserves stock for the order in whole numbers (a core limitation); the stock reduction of the paid order is exact.<\/li>\n<li>WooCommerce Analytics counts \"items sold\" in whole numbers; revenue is exact.<\/li>\n<li>Product grid buttons show \"1.25 in cart\" without the unit (button text from WooCommerce).<\/li>\n<\/ul><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: the quantity field showed \"0,5\" in browsers with a decimal-comma language (de-DE, tr-TR, fr-FR) even when the store uses \".\". It is now a text field that follows the WooCommerce decimal separator setting, and the server reads \"1.5\" and \"1,5\" alike.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release: 10 sale units, per-product step, minimum, maximum and default amount, live total, unit after prices, decimal stock, classic and block cart and checkout, unit and unit price on orders and e-mails, HPOS compatible.<\/li>\n<\/ul>","raw_excerpt":"Sell by weight, length, area or volume in WooCommerce: decimal quantities, a price per unit and a live total on the product page.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/395468","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=395468"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kaviolabs"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=395468"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=395468"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=395468"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=395468"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=395468"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=395468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}