Skip to main content
A bundle is a product definition that groups multiple articles together into a single offering. Each bundle has its own SKU (stock keeping unit) that you can use in orders. When you use a bundle SKU in an order, the system processes the bundle during the fulfillment process. Bundles enable you to:
  • Sell sets of products together as a single item
  • Manage complex product combinations
A bundle contains:
  • A unique SKU that identifies the bundle
  • A list of bundle items, where each item references an article and specifies a quantity
  • Optional metadata such as name, weight, and customs value
This guide shows you how to create product bundles and use bundles in fulfillment orders.

Prerequisites

Before you start, make sure you have:
All API examples in this guide use ${BASE_URL} as a placeholder. Replace it with the correct base URL configured for the correct environment. For more information see Environments page.

Create a bundle

Create a bundle using the POST /bundles/{sellerId} endpoint. You must provide a SKU, and you can optionally include bundle items and other metadata. Use articleId values that reference articles in your catalog. The following example shows how to create a bundle with bundle items:
Use this request to create a new bundle:
curl -X POST "${BASE_URL}/bundles/<YOUR_SELLER_ID>" \
  -H "X-Api-Key: <YOUR_STATIC_API_KEY>" \
  -H "Authorization: <YOUR_SESSION_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "sku": "<BUNDLE_SKU>",
    "name": {
      "value": "<BUNDLE_NAME>",
      "language": "EN"
    },
    "bundleItems": [
      {
        "articleId": <ARTICLE_ID_1>,
        "quantity": 2
      },
      {
        "articleId": <ARTICLE_ID_2>,
        "quantity": 1
      }
    ],
    "grossWeight": {
      "value": 1.5,
      "unit": "KG"
    },
    "customsValue": {
      "value": 29.99,
      "currencyCode": "EUR"
    }
  }'
The following table describes the key fields you can include when creating a bundle. For complete field definitions, see the API Reference:
FieldTypeDescription
skuString (1-50 characters)The SKU that identifies this bundle.
bundleItemsArray of objectsEach item includes articleId (integer, required) and quantity (integer, minimum 1, required). Optionally includes articleSku (string) and unitCustomsValue (number).
nameObjectObject with value (string) and language (string).
grossWeightObjectObject with value (number) and unit (string).
netWeightObjectObject with value (number) and unit (string).
customsValueObjectObject with value (number) and currencyCode (string).
alternativeSkusArray of stringsArray of string values.
alternativeNamesArray of objectsArray of name objects (same structure as name).
alternativeCustomsValuesArray of objectsArray of customs value objects (same structure as customsValue).

Search bundles

Search for bundles using the GET /bundles endpoint. This endpoint supports query, sorting, and pagination parameters. Use the query parameter to filter results, sort to order them, and pageSize to limit the number of results.
Use this request to search for bundles using query parameters:
curl -X GET "${BASE_URL}/bundles?query=sku:<BUNDLE_SKU>&sort=created:desc&pageSize=50" \
  -H "X-Api-Key: <YOUR_STATIC_API_KEY>" \
  -H "Authorization: <YOUR_SESSION_TOKEN>"

Retrieve bundle details

Retrieve bundle details using the bundle ID. Use the GET /bundles/{sellerId}/{bundleId} endpoint to get details by bundle ID:
Use this request to retrieve the full details of a bundle by its ID:
curl -X GET "${BASE_URL}/bundles/<YOUR_SELLER_ID>/<BUNDLE_ID>" \
  -H "X-Api-Key: <YOUR_STATIC_API_KEY>" \
  -H "Authorization: <YOUR_SESSION_TOKEN>"

Update a bundle

Update an existing bundle using the PUT /bundles/{sellerId}/{bundleId} endpoint. Send a JSON object with the bundle data you want to update, using the same structure as the BundlePost schema used for creating bundles. The following example shows how to update a bundle:
Use this request to update an existing bundle:
curl -X PUT "${BASE_URL}/bundles/<YOUR_SELLER_ID>/<BUNDLE_ID>" \
  -H "X-Api-Key: <YOUR_STATIC_API_KEY>" \
  -H "Authorization: <YOUR_SESSION_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "sku": "<BUNDLE_SKU>",
    "name": {
      "value": "<BUNDLE_NAME>",
      "language": "EN"
    },
    "bundleItems": [
      {
        "articleId": <ARTICLE_ID_1>,
        "quantity": 2
      },
      {
        "articleId": <ARTICLE_ID_2>,
        "quantity": 1
      }
    ],
    "grossWeight": {
      "value": 1.5,
      "unit": "KG"
    },
    "customsValue": {
      "value": 29.99,
      "currencyCode": "EUR"
    }
  }'

Delete a bundle

Delete a bundle using the DELETE /bundles/{sellerId}/{bundleId} endpoint:
Use this request to delete a bundle:
curl -X DELETE "${BASE_URL}/bundles/<YOUR_SELLER_ID>/<BUNDLE_ID>" \
  -H "X-Api-Key: <YOUR_STATIC_API_KEY>" \
  -H "Authorization: <YOUR_SESSION_TOKEN>"

Use bundles in orders

To use a bundle in a fulfillment order, include the bundle’s SKU in the order position’s sku field when creating an order. The system processes the bundle during the fulfillment process. The following example shows how to use a bundle SKU in an order:
Use this request to create an order that includes a bundle:
curl -X POST "${BASE_URL}/orders" \
  -H "X-Api-Key: <YOUR_STATIC_API_KEY>" \
  -H "Authorization: <YOUR_SESSION_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "sellerId": <YOUR_SELLER_ID>,
    "orderIdentifier": "<YOUR_ORDER_IDENTIFIER>",
    "orderReference": "<YOUR_ORDER_REFERENCE>",
    "deliveryAddress": {
      "name": "<RECIPIENT_NAME>",
      "street": "<STREET_ADDRESS>",
      "city": "<CITY>",
      "zip": "<ZIP_CODE>",
      "countryIso2": "<COUNTRY_CODE>"
    },
    "positions": [
      {
        "sku": "<BUNDLE_SKU>",
        "name": "<BUNDLE_NAME>",
        "quantity": 1
      }
    ]
  }'
For complete details on creating orders, see the Create a Fulfillment Order guide.

Where to go next

Now that you can manage bundles, continue with these guides:

Create Products

Learn how to create articles that you can include in bundles.

Create a Fulfillment Order

Learn how to create orders and use bundles in fulfillment requests.