# Product types

Catalog

Every GrandNode product has a **Product type**, chosen at the top of the **General** tab. The type decides how the product is sold - added to the cart as it is, chosen from a list of variants, sold as a set, booked for dates, or auctioned - and which tabs the product editor shows. Pick the type before you fill in the rest: switching it later hides tabs whose data then stops being used.

### The five types at a glance

| Type | Use it for | Extra tab |
|---|---|---|
| Simple | An ordinary product: one price, one stock level, optional attributes such as size and color. Also used for downloads, gift vouchers and subscriptions. | \- |
| Grouped (product with variants) | A shared page that lists several simple products, each bought separately with its own price and stock. | Associated products |
| Bundled product | A set of existing products sold together at one price and added to the cart as one line. | Bundle product |
| Reservation | Something booked for days or hours: rentals, rooms, courses, appointments. | Reservation calendar |
| Auction | A single item sold to the highest bidder before a closing date. | Bids |

### Simple products

Simple is the default and covers most of a catalog. All tabs are available: prices, inventory, product attributes, and on **Additional info** the switches that turn a simple product into something special - **Is gift voucher**, **Digital product** (a downloadable file, with download limits and an optional sample), **Recurring product** (a subscription with a cycle length and period) and **Require other products added to the cart**. A shirt in three sizes is still a simple product: the sizes are [product attributes](https://grandnode.com/catalog-attributes).

### Grouped products

A grouped product is a shop window for a family of simple products. The grouped product itself has no price, inventory or attributes - those tabs are hidden. Instead, the **Associated products** tab lists the simple products shown on its page, each with its own price, stock and add-to-cart button.

1. Create the individual variants as simple products first. If they should not appear on their own in lists and search, switch off **Visible individually** on each.
2. Create the grouped product, set **Product type** to **Grouped (product with variants)** and **Product layout** to **Grouped product (with variants)**, and save.
3. Open **Associated products**, click **Add new associated product**, search for the variants and tick them. Set their **Display order**.

![The Associated products tab of Stoneware Mug Set listing Stoneware Mug Small, Medium and Large](https://grandnode.com/Plugins/Theme.GrandNodeCom/Content/kb/catalog/type-grouped-associated.webp)

Stoneware Mug Set is a grouped product with three associated mugs.

A product can be associated with only one grouped product at a time. On the storefront, the variants are listed under the description of the grouped product, each with its own options and price:

![The Stoneware Mug Set page on the storefront, with a variant row showing a picture, description, color choice and price of 22 dollars](https://grandnode.com/Plugins/Theme.GrandNodeCom/Content/kb/catalog/sf-stoneware-mug-set.webp)

Each associated product is a row on the grouped page with its own attributes and price.

### Bundled products

A bundle sells several existing products together as one cart line, for example a coffee starter kit made of a kettle, a dripper and beans. The bundle has its own price on the **Prices** tab; price adjustments of attributes chosen for the bundled items are added to it, multiplied by the item quantity.

1. Create a product with type **Bundled product** and save it.
2. On the **Bundle product** tab click **Add new products**, pick the items and set the **Quantity** of each in one bundle and their display order.
3. On **Inventory**, choose **Track inventory by bundle products** if the bundle's availability should follow the stock of its items. The cart then checks, for every item, that *bundle quantity × item quantity* is in stock.

![The Bundle product tab of Slow Morning Coffee Bundle listing the kettle, dripper and coffee beans with quantity and display order](https://grandnode.com/Plugins/Theme.GrandNodeCom/Content/kb/catalog/type-bundle-products.webp)

A bundle of three products, one of each.

![The Slow Morning Coffee Bundle product page listing the kettle and the pour-over dripper it contains, each with its quantity, price and colour choice](https://grandnode.com/Plugins/Theme.GrandNodeCom/Content/kb/catalog/sf-slow-morning-coffee-bundle.webp)

On the storefront a bundle lists its items; a bundle item with attributes asks for its own choice, here the dripper colour.

### Reservation products

Reservation products are booked rather than stocked. Choosing this type switches inventory tracking off, unticks shipping and marks the product as not returnable, and shows the **Reservation calendar** tab. The calendar is a list of bookable slots that you generate once and top up from time to time.

1. On **Reservation calendar**, set a **Start date** and **End date** for the period to open for booking.
2. Choose the **Interval** unit. With **Day(s)** each slot is a whole day; you may name a **Resource** (for example a room or bike number) and choose **Include both dates** to count the end date as booked. With **Hour(s)** or **Minute(s)** you set the interval length, the daily **From hour** and **To hour**, how many parallel bookings a slot takes (**Quantity**) and an optional **Additional parameter** the customer chooses (for example a language or a guide).
3. Tick the **Week day**s that can be booked and click **Generate calendar**. The slots appear in the grid below; booked ones link to their order.
4. Use **Clear old, unused records** to remove past slots nobody booked, and **Clear calendar** to start over.

![The Reservation calendar tab of Touring E-Bike Rental with start and end date, a day interval, resource, week days and a grid of daily slots](https://grandnode.com/Plugins/Theme.GrandNodeCom/Content/kb/catalog/type-reservation-calendar.webp)

A daily rental calendar. Generate calendar fills the grid with bookable days.

On the storefront the customer picks the reservation dates and any add-ons, and the button reads **Reservation** instead of Add to cart. The price is shown per interval:

![The Touring E-Bike Rental product page with price per day, rental add-on checkboxes, reservation start and end date fields and a Reservation button](https://grandnode.com/Plugins/Theme.GrandNodeCom/Content/kb/catalog/sf-touring-e-bike-rental.webp)

The storefront of a daily reservation product.

### Auction products

An auction sells one item to the highest bid. Set **Product type** to **Auction**; the **Prices** tab then shows a **Start price**, the lowest acceptable first bid, and the **Bids** tab lists every bid with date, customer, amount and, once won, the order.

![The Prices tab of the auction product Vintage Steel Road Bike 1984 with a start price of 450 dollars](https://grandnode.com/Plugins/Theme.GrandNodeCom/Content/kb/catalog/type-auction-prices.webp)

An auction product. The start price is the minimum first bid.

![The Vintage Steel Road Bike 1984 auction page with start price, time left, a bid field and a Buy now button](https://grandnode.com/Plugins/Theme.GrandNodeCom/Content/kb/catalog/sf-vintage-steel-road-bike-1984.webp)

The auction on the storefront: start price, countdown, a bid field and, when a buy-now price is set, a Buy now button.

The auction closes at the product's **Available to** date on the General tab - set it, or the auction never ends. After that moment the **End of the auctions** scheduled task (**System → Scheduled tasks**) picks the highest bid, puts the item in the winner's cart at the bid amount, and sends the *auction ended* messages to the store owner, the winner and the other bidders. If nobody bid, the auction is simply marked as ended and the store owner is notified.

### Tips and common mistakes

- Changing the type of an existing product does not delete its data - associated products, bundle items or calendar slots stay stored but are ignored while the type does not use them.
- Variants of a grouped product that are still **Visible individually** also appear on their own in category pages and search, which usually looks like duplicates.
- Remember to regenerate the reservation calendar before the last generated date passes, otherwise the product can no longer be booked.

### Related

- [Adding and editing products](https://grandnode.com/catalog-products)
- [Product attributes and combinations](https://grandnode.com/catalog-attributes)
- [Prices, discounts and inventory](https://grandnode.com/catalog-prices-inventory)

- [Web page](https://grandnode.com/catalog-product-types)
