Home / Help Center / pos-app-bakery / bakery / Seasonal Pricing
🏷️ bakery

Seasonal Pricing

Seasonal Pricing is a reference catalogue of time-bound special prices tied to festivals and events — e.g. a Diwali sweets rate or a Christmas cake rate — each with its own validity window and a live Active / Upcoming / Expired status.

📍 Menu path: Bakery → Seasonal Pricing
👤 Who uses it: Staff/managers planning festival and event pricing
🏷️ Plan tier: advanced+

Overview

Each rule records a Rule Name, the linked product (or a free-text item name), a Seasonal Price, a Start Date and End Date, and an optional Event/Occasion label and notes.

Status is computed live against today's date and the rule's Enabled/Disabled toggle: Active (enabled and today falls within the date range), Upcoming (start date is in the future), Expired (end date has passed), or shown as Disabled if the rule has been toggled off.

Use the filter tabs to quickly see everything currently in effect versus what is coming up or already over, which is useful when planning production and pricing well ahead of a festival.

Before You Start

Step-by-Step Guide

1 Create a seasonal price rule

  1. Click New Price Rule.
  2. Enter a Rule Name (e.g. "Diwali Special" or "Christmas Cake"), then search for and select the Item/Product — its current selling price pre-fills the Seasonal Price field, which you can then override.
  3. Set the Start Date and End Date for when this price should apply, and optionally fill in the Event/Occasion (e.g. "Diwali", "Wedding Season") and any Notes.
  4. Click Create — the new rule appears in the table with its status computed automatically from today's date.

2 Manage existing rules

  1. Use the Rule/Item/Price/Valid Period/Event/Status columns to review every rule at a glance; use the ALL / ACTIVE / UPCOMING / EXPIRED tabs to narrow the list.
  2. Click the toggle icon to Enable or Disable a rule without deleting it — a disabled rule never shows as Active even inside its date range.
  3. Click the pencil icon to edit any field, or the trash icon to permanently delete a rule (with a confirmation prompt).

Every Field & Button, Explained

Field / ButtonWhat it does
New Price RuleOpens the form to create a new seasonal/event pricing rule.
Active Now / Total Rules tilesSummary counts — Active Now reflects rules currently enabled and within their date range; Total Rules is every rule regardless of status.
ALL / ACTIVE / UPCOMING / EXPIRED tabsFilters the table: Active = enabled and in-range today, Upcoming = start date in the future, Expired = end date has passed.
Rule columnThe rule's descriptive name, e.g. "Diwali Special".
Item columnThe linked product or free-text item name this price applies to.
Price columnThe seasonal/special price recorded for this rule.
Valid Period columnThe Start Date → End Date range the price is meant to apply within.
Event columnThe optional festival/occasion label (e.g. Diwali, Christmas, Wedding Season).
Status badgeActive (green), Upcoming (blue), Expired (grey) or Disabled (grey) depending on dates and the enabled toggle.
Enable/Disable toggleTurns a rule on or off without deleting it; a disabled rule is never shown as Active regardless of its dates.
Edit (pencil icon)Opens the rule form pre-filled for editing any field.
Delete (trash icon)Permanently removes the rule after a confirmation prompt.

Tips & Best Practices

Troubleshooting & FAQ

A rule's dates are within range but its status still shows as not Active.
Check the Enable/Disable toggle — a disabled rule never shows Active, regardless of whether today falls inside its Start/End range.
I can't save a new rule.
Name, Item, Price, Start Date and End Date are all required, and the Start Date must be on or before the End Date — the form blocks saving until all of these are valid.
I don't see Seasonal Pricing in my sidebar at all.
It requires the Advanced plan tier or above. Check your current plan, or ask your Admin.
Does this page automatically change the price customers pay at billing?
This page is a planning and reference catalogue of seasonal prices — check it when quoting, negotiating or preparing an order for a listed item during its valid period.

🧑‍💻 Developer Notes

Source component(s):

  • frontend-app/pos-app-backery/src/pages/bakery/SeasonalPricingPage.jsx
  • frontend-app/packages/pos-react-lib (ItemSearch — shared component)

Backend endpoints used:

  • GET /bakery/seasonal-prices
  • POST /bakery/seasonal-prices
  • PUT /bakery/seasonal-prices/:id
  • DELETE /bakery/seasonal-prices/:id

Related tables (db-core repositories):

  • SeasonalPrice
  • Product

Feature flag key: seasonal_pricing (requires advanced plan tier or above)

Bakery-only local component mounted at /bakery/seasonal. Status (Active/Upcoming/Expired) is computed entirely client-side by comparing startDate/endDate to today's date plus the isActive flag — there is no separate backend "status" field.