Packages and bundles
Packages and bundles are groupings of catalog entries used for promotional purposes.
A bundle is a collection of catalog entries that allow customers to buy multiple items with one click. A bundle can be a grouping of items, or a combination of products, items, and fully resolved packages. If you select a bundle which only contains items, the bundle is decomposed into separate orderable SKUs that are added individually to the shopping cart. However, if you select a bundle which contains products, these products need to be resolved into items through SKU resolution before being added to a shopping cart. In either case, once a bundle is decomposed and its component items are added to a shopping cart, you can modify or remove each item. The bundle's price is the aggregate of the prices of all the bundle components. For example, a computer bundle might be composed of a central processing unit, a monitor, a hard drive, and a CD-ROM drive.
Unlike bundles, a package is an atomic collection of catalog entries. Viewed in similar ways as a product, a package has defining attributes and is a container for fully resolved packages. A fully resolved package is comparable to an item, with its own price, and can be added to a shopping cart. You cannot decompose or modify a package during navigation or after the package has been placed in the shopping cart. For example, a computer package might contain a specific central processing unit, monitor, and hard drive that cannot be sold separately.
Packages can be unresolved or fully resolved. It is important to remember that only fully resolved packages can be added to an order, while unresolved packages must first be transformed into fully resolved packages. For example, a fully resolved computer package might contain a specific central processing unit, monitor, and hard drive that cannot be sold separately. Since this package only contains items, it is a fully resolved package.
Similarly, if the computer had a monitor with a variable size attribute, this package is unresolved and is viewed in similar ways as a product. This unresolved package has defining attributes and is a container for fully resolved packages. These attributes must be given appropriate values before it can be transformed into a fully resolved package and added to the shopping cart. For simplicity, we recommend using only fully resolved packages of items.
The association between the Package object and Bundle object is modeled in the CATENTREL table.