Selling produce against a harvest: seasonal ordering in WooCommerce

A farm does not sell stock - it sells a forecast. Next week's tomatoes exist on a calendar, not a shelf. Selling produce on WooCommerce means ordering against planned availability, not warehouse counts.

The produce ordering problem

Standard e-commerce assumes inventory: you have N units, sell until N=0. Produce inverts it: the quantity is "whatever week 32 yields", the deadline is the harvest date, and overbooking means refunds instead of backorders.

What the shop actually needs:

  • Harvest windows - "strawberries: June 10-24" - a selling window tied to a season, not a stock count.
  • Per-week quantities - this week's realistic yield, not a total across the season.
  • Preorders/reservations - customers order for a future harvest date; you see demand per window.
  • Honest availability dates - the product page shows when it will be ready, not just "in stock".

The ordering flow that works

  1. Define harvest windows per product - date ranges with expected availability.
  2. Open orders against a window; capacity decrements as reservations come in.
  3. When the window fills or closes, ordering for it stops - no overselling the field.
  4. Customer-facing: "available from June 10" on the page, the harvest date on the order.

CSA and subscription fit

Community-supported agriculture is the natural extension: a season-long subscription is a standing reservation across windows. If you do produce ordering, the CSA pattern - pay upfront, collect weekly - is often the same data with a subscription wrapper.

Mistakes to avoid

  • Treating produce as regular stock - one "in stock: 500" number across a whole season oversells early and undersells late.
  • No per-window capacity - "available" without "how much this week" is the refund generator.
  • Hidden harvest dates - customers who know the date plan for it; vague "seasonal" text creates "where is my order" emails.

Harvest Orders implements window-based ordering: seasonal availability, per-week quantities, preorders against the harvest, and customer-facing availability dates - inside WooCommerce.