WordPress plugin intelligence profile

Food Products for WooCommerce

Food shop tools for WooCommerce: nutrition tables, ingredients with allergens, best-before dates, batch stock and automatic markdowns.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.1
Current version2.1.1
WordPress coverageTested up to WordPress 7.1
Minimum stackWP 6.8 · PHP 7.4
Directory statusactive
Last directory update26 Oct 20268d ago
Active installationsNewAdoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records Food Products for WooCommerce version 2.1.1 as active, updated 8d ago and tested up to WordPress 7.1.

Overview

About this plugin

Food Products for WooCommerce turns your WooCommerce shop into a food shop. It adds two

new product types – Simple food product and Variable food product – that work exactly

like WooCommerce’s own Simple and Variable products, with everything a food or grocery shop

needs on top: a nutrition declaration table, expiry dates, batch and supplier tracking, and

automatic handling of stock that is about to go off.

Nothing is replaced or overridden: your existing products, themes and payment gateways carry

on untouched. You choose the new product type only on the products that need it.

Nutrition declaration table

Every food product gets a Nutrition tab: a label/amount/unit table declared per 100 g or

per 100 ml (pre-filled with the EU-mandatory energy / fat / carbohydrate / protein / salt rows,

all editable) that is shown to shoppers as its own tab on the product page. Rows can be

reordered, renamed, indented as sub-nutrients, added and removed. Variable food products can

share one table across every variation, or let a single variation override it with its own.

Ingredient list

An Ingredients tab holding the ingredients in declaration order, each with an optional

percentage, sub-ingredients and one of the 14 EU-declarable allergens. The product page prints

the list as one sentence with allergens in bold, plus a “may contain” line. Per-variation

overrides work the same way as for nutrition.

Expiry dates and batch tracking

The Expiry & Tracking tab stores one row per batch, each with an expiry date, quantity,

batch number, batch date and supplier – so you always know which delivery a unit of stock came

from and when it goes off. Variable food products track batches per variation, matching how

WooCommerce already tracks stock. A full-price sale takes units off the freshest batch first, a

reduced sale takes them off the batch the shopper picked, and a restocking refund puts them back,

so the table reads as what is still on the shelf.

Optionally, the closest upcoming expiry date is shown to shoppers on the product page – always,

or only once it falls within a number of days you choose.

Expiry Dashboard and write-off

An admin screen listing every batch row across every food product in one place, sorted by

closest expiry date first, colour-coded by urgency, filterable by date range and exportable as

a CSV file for your stock takes and audits. A batch that has expired can be written off from

there or from the product itself, taking what is left of it out of the sellable stock – or you

can have that happen automatically every night at an hour you choose.

The batch table is the stock

Once a product tracks batches, its batch table is its stock. WooCommerce’s own stock

management is switched off for it while it tracks; the product is in stock while a batch in date

has units left, “N in stock” on the product page is the batch total, and a shopper cannot buy

more than the batches hold. Every sale comes off a batch – a full-price sale off the freshest

batch first, so the batch nearest its date is kept for the reduced offer – and a restocking refund

puts the units back. Stock past its best-before date is not sold at all unless you say so (see

below). Switch tracking off on a product, change it to a non-food type, or turn Expiry & Tracking

off in the settings, and WooCommerce’s stock management comes back as it was before – with the

batch total as its stock quantity, since every sale in between came off the batches.

Automatic Markdown

Offer a discount on batches close to their date, on a ladder of steps you set (for example

15% a week out, 30% three days out, 50% on the last day). The product’s own price is never

changed: the shopper opts into a reduced batch on the product page, choosing the date they want,

the discount applies to that cart line only, and an offer withdraws itself once its batch is sold

out or expired. A cap on units per batch, a price floor, a catalogue badge and a choice of whether

a product with nothing left to sell stays listed or is hidden are all yours to set, and any product

can opt out.

Where the law allows it, you can also choose to keep selling batches past their best-before

date: that adds a fixed last step to the ladder with its own discount and wording, and those

units count as sellable stock. A Markdown Earnings

screen reports what each marked-down batch sold, what it brought in, what the discount cost, and

how much expired unsold anyway. Sell-through is worked out from your current settings, so changing an

opt-out, the category scope, the ladder or expired sales later also changes the figures of past batches.

Email when expired

A scheduled digest email listing every batch that has reached its expiry date – or is about to,

within a window you choose – sent to the shop users you pick, daily, weekly, every 2 weeks or

every 3 weeks. Each batch is mailed once to each recipient, every send is recorded in an Email

Log, and a “Send one now” button lets you run it on demand. Individual products can opt out.

Automatic category switching

Have WooCommerce move stock for you: categories you choose (for example “Clearance” or “Last

chance”) are added to a product as it nears its closest expiry date, and categories are removed

– or every category stripped – once that date has passed. If a fresh, later-dated batch pushes

the expiry date back out, both changes are reversed automatically, and categories you assigned

by hand are never touched. An optional Switching Log screen records every move the nightly

run makes, with the product, the direction and the batch that caused it.

Built for real shops

  • Fully translation-ready, with a choice of date formats for the dates it prints.
  • WooCommerce HPOS (High-Performance Order Storage) and Cart & Checkout Blocks

compatible (see Requirements below).

  • No account, no subscription, no external service: the plugin never contacts a remote server

and sends no analytics or telemetry of any kind. Everything runs on your own site.

  • No bundled third-party libraries – it uses the copies of jQuery and Select2 that WordPress

and WooCommerce already ship.

  • Every file shipped is unminified, human-readable source. There is no build step.

Requirements

0 or later must be installed and active. The plugin will not activate without

it. If WooCommerce is later disabled: on a single site, the plugin deactivates itself with an

explanatory notice the next time an administrator opens wp-admin; on a network activation the

plugin stays active and shows a notice on sites without WooCommerce, where its features stay

off. 2 or later, is also required – the stock locks nest

named locks.

Privacy

The plugin stores the WordPress user IDs of the people chosen to receive the expiry digest, and a

log of which user was emailed about which batch and when, in your own database. It sends no data to

any external service. Both are removed when the plugin is deleted. Once a batch has been mailed,

its row on the product also lists the user IDs it has reached, so a recipient added later is sent

it too; that list is dropped when the batch is written off, and is kept with the product’s batch

data if the plugin is deleted.

WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • batch tracking
  • expiry date
  • food
  • nutrition
  • woocommerce
Compatibility & maintenance

Compatibility & maintenance

Tested with WP 7.1

Marked as tested with the current WordPress 7.1 release.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.1
Minimum requirementsWordPress 6.8 · PHP 7.4
Update activity26 Oct 20268d ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

Version1.4.22.1.1
WordPress compatibility7.1.27.1.4
Version1.3.11.4.2
Version1.3.01.3.1
WordPress compatibility7.17.1.2
Version1.2.01.3.0
PHP requirement8.17.4
Version1.1.11.2.0
Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.