Product x Pricing x Dates x Discount - how to structure data types?

Hi, I wanted to valid my thoughts on the storage of pricing(s) for products.

I’m building a coliving & coworking space app and here are types of “products” and how we sell them.


  1. Dorm bed
  2. Private Room
  3. Work desk
  4. Event

Sales Strategy

  1. Each product on its own
  2. Bundled, e.g., bed + desk, or bed + events
  3. Package, e.g. 3-night stay in dorm for X amount
  4. Pricing would vary depending on seasons, certain dates, or exclusive order for a specific buyer.

So I’ve tried a few different things:

  1. storing pricing under products (con: it’s not flexible enough, a lot of calculations would be done on workflow or custom states, which is easy to have bugs or overlook when changing page designs)
  2. storing pricing separately from products (con: cross referencing gets really complicated and also easy to overlook, especially in backend workflows)
  3. promo code is saved as another data type, it’s tricky to avoid a package being purchased with a promo code, especially with different dates/seasonal pricing/discounts in the equation

Thoughts on this?
Much appreciate it.