Sell by Measure
By Kavio Labs · Version 1.0.3Sell products by weight, length, area or volume with decimal quantities, unit prices, step/min/max and a live price on the product page.
- WooCommerce10.1 – 11.2
- WordPress6.7+
- HPOS and blocksYes
by Kavio Labs · for WooCommerce 10.1+ on WordPress 6.7+
Fresh, friendly block theme for grocery, farm shop and bakery stores: a weekly-box hero, round Shop by aisle tiles, add-to-basket product cards with unit prices, delivery steps and a calm checkout. Pairs with Sell by Measure. Four styles, one-click demo content, full site editing.
Fresh, friendly block theme for grocery, farm shop and bakery stores: a weekly-box hero, round Shop by aisle tiles, add-to-basket product cards with unit prices, delivery steps and a calm checkout. Pairs with Sell by Measure. Four styles, one-click demo content, full site editing.
WooCommerce 10.1 - 11.2, WordPress 6.7+
Pantry is a fresh, friendly block theme for grocery, farm shop, bakery, deli and food-delivery stores. A weekly-box hero, round aisle tiles, add-to-basket product cards with unit prices, a delivery-steps band and a calm checkout, set in Bricolage Grotesque and Figtree. It is built to sell by weight too: with Sell by Measure for WooCommerce the product page, cards, cart and checkout show prices per kg, quick amounts and live totals in the theme's own look.
Sell by Measure for WooCommerce: sell cheese by the gram, tomatoes by the kilo, coffee by the 250 g. The theme styles its quantity box, quick-amount buttons, live total, unit price and the cart line. Separate Kavio Labs product; Pantry does not depend on it.
Pantry is GPL-2.0-or-later. In the own-site (Kavio Labs) edition a licence key unlocks updates, the demo importer and the sticky-header polish; templates, patterns, styles and your store keep working without it, and the admin is never blocked. The CodeCanyon edition uses a purchase code for updates and support only. The WooCommerce.com edition has no licence screen. See configuration.


WordPress 6.7+, WooCommerce 10.1+, PHP 7.4+.
Install Sell by Measure for WooCommerce, then on a product open Product data > Sell by measure, choose a unit (kg, g, lb, L and more) and enter the price of one unit. The demo importer does this for eight products when the plugin is active. See the plugin documentation for step, minimum, default and quick amounts.
The importer creates six product categories (aisles), the tags Local, Organic, Vegan and Fairtrade, 30 products (with prices, stock, details, images and reviews), four pages (About, Delivery and returns, Storage guide, Contact) and three posts in the category Recipes. Everything it creates is tagged, so Remove demo content deletes exactly those items and nothing else. Running the import again updates the items instead of duplicating them.
Command line: wp kv-pantry demo import, wp kv-pantry demo remove, wp kv-pantry demo status.
Upload the new zip over the old one (WordPress asks to replace the theme). Your template edits made in the Site Editor are stored in the database and are kept.
Switch to another theme and delete Pantry. If you imported the demo content, remove it first (Appearance > Pantry).
| Section | What it does |
|---|---|
| Licence (own-site and CodeCanyon editions) | Enter the licence key or purchase code. The check runs from the admin once a day and sends the site address and the key to kaviolabs.com; nothing about customers, visitors or orders. |
| Demo content | Import, update or remove the sample grocery. |
| Without a valid licence | Still works |
|---|---|
| Sticky-header polish (shadow on scroll) | All templates, patterns, styles and the Site Editor |
| Demo importer | Cart, Checkout, orders and every store setting |
| Updates | The admin (never blocked) |
A new installation has a 14-day start period; if the licence server cannot be reached, a 14-day grace period applies. Development hosts (localhost, .test, private addresses) are always accepted. The CodeCanyon edition never locks features: the purchase code only enables updates and support. The WooCommerce.com edition has no licence screen and sends nothing.
The theme exposes its shape as custom values in theme.json: custom.radius, radiusSm, radiusBtn, heading.weight, heading.stretch, heading.tracking, nav.transform, card.border, card.shadow, card.shadowHover. A child theme or a style variation can override them together with the colour palette. The palette has 21 named colours (page, surface, ink, muted, primary and hover, highlight, in stock, well, line, footer, band, text on dark, sale, top bar, header and more); pick text and background pairs from the same style to keep AA contrast.
The home page template (front-page) is a list of patterns. In Appearance > Editor > Templates > Front Page click a section to change its text, images, links or products, or drag sections to reorder them. The same sections are in the block inserter under Pantry sections so you can use them on any page.
| Section | Notes |
|---|---|
| Hero: weekly box | A large offer panel with an illustration and two smaller aisle panels. Replace the text, buttons and images. |
| Shop by aisle | Six round tiles; replace the images and links with your own categories. |
| Promise strip | Four short promises with icons (delivery, slots, freshness, refunds). |
| This week's deals, Bestsellers, Fresh in | Product collection blocks (on sale, popularity, newest). Change the query in the block settings. |
| Fresh to your door in three steps | A coloured band with three steps and a button. |
| Reviews | Three quotes; edit the text or replace with a review plugin block. |
| Recipes | The latest three posts. |
The header navigation is a Navigation block. Edit it in Appearance > Editor > Patterns > Header or open the header template part. Item links point to the demo categories (/product-category/<slug>/); change them to match your own.
Open Appearance > Editor > Styles > Browse styles and pick Market, Greenhouse, Citrus or Deli. Colours, shapes and heading widths change everywhere, including the Cart and Checkout blocks.



Product tags appear as small stickers above the product title on cards and on the product page. Use tags such as Organic, Local, Vegan or Gluten-free. The dietary filter in the shop sidebar uses the same tags.
With Sell by Measure active, measured products show "$5.60 / kg" on cards, a quantity box with the unit, quick-amount buttons, a live total and "Unit price" in the cart. The theme styles all of it; no template changes are needed.

The block inserter has three page patterns under Pantry store pages: About us, Delivery and returns, Storage guide. The Wide page template removes the narrow text column for custom layouts.


kv-pantry/
style.css theme.json functions.php screenshot.png readme.txt LICENSE.txt
templates/ front-page, index, page, page-wide, single, archive, search, 404 + WooCommerce:
archive-product, product-search-results, single-product, page-cart, page-checkout, order-confirmation
parts/ header, footer, checkout-header (thin wrappers around the PHP patterns of the same name)
patterns/ kv-pantry/* PHP patterns (translatable text, home_url(), theme file URIs); sections and store pages
styles/ greenhouse.json, citrus.json, deli.json (Market = theme.json)
assets/ css/theme.css (front end + editor), css/admin.css, js/theme.js (sticky header polish), fonts/, images/
inc/ KavioLabs\Pantry\ Theme, Settings, Admin\ThemePage, Demo\{Importer,Cli}, License\{Manager,Client,Envato}
demo/ pack.json + images (demo importer data)
languages/ kv-pantry.pot (English only; no translation files ship)
kv_pantry_ / KavioLabs\Pantry / KV_PANTRY_; text domain kv-pantry.tests/gen-patterns.js, theme.json and the three style files by tests/gen-theme-json.js (one palette table), and the demo pack by tests/demo/build-pack.js. Edit the generators, not the output.tests/contrast.js checks every palette pair used by the theme against WCAG AA for all four styles..kv-sbm, .kv-sbm-amount, .kv-sbm-per, .kv-sbm-total) are styled in assets/css/theme.css; the plugin's own CSS keeps working without the theme.wp transient delete --all.node tooling/kv.js theme-validate woo_theme_pantry --platform woocommerce
node tooling/kv.js theme-lint woo_theme_pantry --platform woocommerce
node tooling/kv.js theme-package woo_theme_pantry --platform woocommerce # dist/woocommerce/kv-pantry/<version>/ kv|envato|woo zips
node tooling/kv.js theme-deploy woo_theme_pantry --platform woocommerce --sync --activate
node woocommerce/themes/woo_theme_pantry/tests/contrast.js
node woocommerce/themes/woo_theme_pantry/tests/e2e.js # home, shop, product, cart, block checkout order
Applying a style on a dev store from the command line: wp eval-file tests/variation.php citrus.
Yes. Both are styled by the theme and nothing replaces them.
The theme never reads or writes orders, so it is neutral to High-Performance Order Storage.
10.1 to 11.2, on WordPress 6.7 or newer.
Yes. The templates and styles are general; the demo content and home sections are written for food stores and are all editable.
The aisle bubbles link to pages that do not exist. The demo links point to the demo categories. Edit the tiles and navigation to use your own category links.
From WooCommerce product tags. Without tags the row above the title stays empty.
Yes, with Sell by Measure for WooCommerce (sold separately). Pantry styles its product page, cards and cart line.
The product is English. Strings are translatable (text domain kv-pantry, .pot file in languages/).
Only the own-site and CodeCanyon editions, once a day from the admin, to check the licence. The WooCommerce.com edition makes no external request.
More for WooCommerce
Sell products by weight, length, area or volume with decimal quantities, unit prices, step/min/max and a live price on the product page.
Year/make/model parts search for WooCommerce: fitment table per product, CSV import, My Garage, fits / does not fit badge and vehicle-filtered shop and search pages.
EN 16931 e-invoices and credit notes from WooCommerce orders: XRechnung (CII/UBL), ZUGFeRD/Factur-X PDF/A-3 and Peppol BIS 3.0 UBL, gapless numbering, B2B checkout fields, validation, e-mail attachments, My Account downloads and ZIP export.