Bundles

A bundle is an offering of several products for sale as one combined product.

See Bundles for more info about bundles and how they work in the Order Management System (OMS).

In order to process bundles, the Connector must map the bundle and its child lines during the creation of the order, so that the bundle is correctly handled.

When creating the magento.sales.order_management.create specification in Magento Commerce (MC), the following is validated:

  • The bundle line is of the type BUNDLE.
  • The SKUs inside the bundle have PHYSICAL or VIRTUAL types.
  • The SKUs inside the bundle contain the parent_line_number field, which indicates the line number of the parent bundle line.
  • The prices for bundles are defined for each SKU part of the bundle, while the bundle line has a price of 0.
  • The shipment/sourcing rule for the bundle is configured in the MC catalog and is provided in new orders at the bundle line as a custom attribute.

Example of a bundle

{
    "order": {
        "id": "123456",
         "lines": [
        {
            "line_number": "1",
            "id": "23",
            "product_type": "BUNDLE",
            "name": "The Beatles Collection"
            "custom_attributes" [
                {
                    "name": "mom_srcrr_FilterSourceBundleFromOneSource",
                    "value": "SHIPTOGETHER"
                }
            ]
        },
        {
            "line_number": "2",
            "product_type": "PHYSICAL",
            "name": "Tee-Shirt Abbey Road",
            "parent_line_number": "1"
        },
        {
            "line_number": "3",
            "product_type": "VIRTUAL",
            "name": "Magical History Tour Ticket",
            "parent_line_number": "1"
        }
    ]
        }
}

Create or update bundle

When an MC client creates a new bundle, the magento.catalog.product_management.updated message is sent to the OMS to be enabled there. This message contains the SKU of the bundle and the type defined as a BUNDLE.

Example of creating/updating a bundle

{
  "product": {
    "id": "Bundle-test",
    "product_type": "BUNDLE",
    "sku": "Bundle-test",
    "name": [
      {
        "value": "Test bundle for yoga outfit",
        "channel": "string",
        "locale": "string"
      }
    ],
    "status": "active"
  }
}

Configuration

To enable the bundles functionality:

  1. Navigate to Config > Stock Aggregates > Sourcing in your System Integrator (SI) Portal.

    SI Portal configuration for exchange reason

    SI Portal exchanges reasons

  2. Enable the Bundle rules option and select the Bundlerestrictions.

    SI Portal configuration for bundle restrictions

    Bundle restrictions

These restrictions are enabled and configured in your SI Portal, which is not yet accessible externally. Contact Magento Support for assistance.

The Bundle Restrictions can be configured as:

Restriction Description
SHIPTOGETHER All lines must be available in the same source.
SHIPSIMULTANEOUSLY All lines must be sourced at the same time but can be sourced from different sources.
SHIPSEPARATELY Bundle is effectively ignored and lines are sourced individually.

See the SI portal stock aggregates view for more information about Bundle sourcing rules.

Bundles in Commerce

You can define bundles in Commerce as:

  1. The ship bundle item can be defined as TOGETHER, SEPARATELY, or SIMULTANEOUSLY, which will be used to overwrite the generic sourcing rule defined for bundles.
  2. The fixed or dynamic price can be defined.
  3. With the fixed price each one of the children options will use the catalog defined price, while with the dynamic pricing the cost of each child item is dynamically calculated using the price defined for the entire bundle and splitting it out proportionally to each child, according to the catalog price. See the Bundle Product topic for more information on fixed and dynamic values.
  4. It is recommended to use the TOGETHER sourcing rule if you use fixed price for a bundle product.
  5. Out-of-the-box, the return flow for bundle products only works with the SHIPTOGETHER sourcing rule. See the Bundle sourcing rules topic for more information.

The dynamic SKU option is disabled via the Connector, given the SKUs need to exist in the OMS catalog in order to process new orders.