Take the community feedback survey now.

Shannon Gray
Jun 9, 2017
  1926
(0 votes)

Episerver Catalog Packages vs Bundles

This is a short blog to clarify a catalog concept that is often unclear for folks new to Episerver : the difference between bundles and packages.

Bundles and packages are catalog item-types that have distinct features and different use cases.

A bundle is a collection of SKUs that are simply grouped together for catalog-browse and add-to-cart purposes. There is no bundle-specific pricing or inventory. The pricing for a bundle is simply the total of the prices for the SKUs in the bundle. Inventory is tracked on the SKU level. A common scenario for using bundles is when an item usually needs to be bought in conjunction with other items in the catalog, like a phone and its charger.

When a bundle is added to the cart, your “add to cart” functionality needs to retrieve the SKUs in the bundle from the system and add each one to the cart. Once in the cart, the SKUs from the bundle are not identifiable as part of a bundle; they’re simple SKUs (as lineitems) in the cart. Therefore, a) you can’t attribute promotions to them as a bundle, b) you can change the quantity of each SKU/lineitem independently, and c) you can delete the individual lineitems that were associated with the bundle SKUs.  Given the lack of pricing on a bundle and that promotions can’t be applied to them, you can’t provide discount pricing to incentivize buying bundles (at least not without significant additional development).

image

 

Conversely, packages contain SKUs but have their own pricing and inventory. When you add a package to the cart, its a single lineitem, like a SKU. SKUs can’t be removed from the package lineitem in the cart. You can only update the quantity of the package in the cart (or remove it). You can think of a package as a group of SKUs that are physically stored together and inventory is managed on the package level.  Packages allow you to provide discounted pricing for a group of SKUs. You can also create promotions for packages. Note, however, that promotions which apply to SKUs contained in the package will not apply to the package lineitem.

image

 

These catalog types and their behavior are flexible with some minor customization. You could do things like:

* Create a “dynamic package”, where a user can select which items in a package or bundle is ultimately purchased in their cart.

* Use packages but still maintain inventory on the SKU level

* Add a package as multiple lineitems in the cart

These customizations may require additional effort to a) ensure your pricing logic reflects this logic, b) modify the way carts are processed to validate the content of the carts, update prices, etc , and/or c) change the way your add to cart functionality works.

 

Documentation on how to work with packages and bundles programmatically is here:

http://world.episerver.com/documentation/developer-guides/commerce/catalogs/catalog-content/Bundles-and-packages/

[Edited to incorporate comments below from Khurram and Per from 6/9/17]

Jun 09, 2017

Comments

Please login to comment.
Latest blogs
A day in the life of an Optimizely OMVP - Opticon London 2025

This installment of a day in the life of an Optimizely OMVP gives an in-depth coverage of my trip down to London to attend Opticon London 2025 held...

Graham Carr | Oct 2, 2025

Optimizely Web Experimentation Using Real-Time Segments: A Step-by-Step Guide

  Introduction Personalization has become de facto standard for any digital channel to improve the user's engagement KPI’s.  Personalization uses...

Ratish | Oct 1, 2025 |

Trigger DXP Warmup Locally to Catch Bugs & Performance Issues Early

Here’s our documentation on warmup in DXP : 🔗 https://docs.developers.optimizely.com/digital-experience-platform/docs/warming-up-sites What I didn...

dada | Sep 29, 2025

Creating Opal Tools for Stott Robots Handler

This summer, the Netcel Development team and I took part in Optimizely’s Opal Hackathon. The challenge from Optimizely was to extend Opal’s abiliti...

Mark Stott | Sep 28, 2025

Integrating Commerce Search v3 (Vertex AI) with Optimizely Configured Commerce

Introduction This blog provides a technical guide for integrating Commerce Search v3, which leverages Google Cloud's Vertex AI Search, into an...

Vaibhav | Sep 27, 2025

A day in the life of an Optimizely MVP - Opti Graph Extensions add-on v1.0.0 released

I am pleased to announce that the official v1.0.0 of the Opti Graph Extensions add-on has now been released and is generally available. Refer to my...

Graham Carr | Sep 25, 2025