ChannelEngine: how do I ship multiple packages under one tracking code?
About this article
This article explains what to do when you need to ship an order, order line, or product across multiple packages, but the marketplace only accepts one shipment tracking code per order, order line, or product.
Table of contents
Recommended approach on ChannelEngine
What shipment the buyer actually sees
Introduction
Some marketplaces only accept a single tracking code per order, per order line, or per product. In practice, however, certain orders cannot be shipped as a single parcel. This situation arises in four distinct scenarios, each with a different cause but the same practical result:
- Product bundle. Several items are grouped and sold as one SKU — for example, a furniture set or a matched product set — but the warehouse ships each component separately.
- Marketplace expects one shipment per order. The buyer ordered multiple different products in one order, and the marketplace requires a single shipment notification for the whole order, not one per product. In this scenario, ChannelEngine considers the marketplace to have order support level 1.
- Marketplace expects one shipment per order line. One order line covers several items — a quantity greater than one, or a set sold under a single line — and the marketplace expects exactly one shipment for that line, even if it is dispatched in several boxes. In this scenario, ChannelEngine considers the marketplace to have order support level 2.
- One product, too large for one box. A single item, ordered as one product, does not fit in one parcel and must be split across several boxes by the packer. For example, a boxspring bed is sold as one product on the marketplace but is typically shipped in three separate parcels: the boxspring base, the mattress, and the headboard. Each parcel has its own carrier label and tracking code. On ChannelEngine, this scenario might occur under order support level 1, 2, or 3, or, regardless of the size, with ChannelEngine bundles.
In every case, the carrier moves several physical parcels while the marketplace expects a single reference for the whole order (or order line). The five carriers covered in this article each have their own approach to handling this, and some solutions are more robust than others.
The group-level reference
Most carriers operate on two levels: the package level and the group level. Each physical package always receives its own tracking code — this never changes, and every hub scans each box individually regardless of how it is grouped. What differs is the second layer: the reference that ties the group together as one shipment.
For some carriers, this group-level reference is a genuinely independent number. For others, it is simply one parcel's own barcode reused and treated as the primary reference for the whole group. UPS is the only carrier here that provides a fully separate group reference. The others borrow from a parcel that already exists.
The tracking code you pass to the marketplace should always be this group-level reference — never an individual parcel's number chosen at random. Which number that is depends on the carrier, as described in the sections below.
Carrier comparison: group-level reference
| Carrier | Group mechanism | Group-level reference |
| PostNL | Group object (GroupType 03) |
MainBarcode — the first parcel's own barcode, repeated across all group members |
| DHL | Linked multi-parcel shipment | No dedicated reference — use the first parcel's tracking code |
| DPD | Linked multi-parcel shipment (standard API only; Benelux and German contracts) | No dedicated reference — use the first parcel's tracking code |
| GLS | Native: parcels added directly to one shipment via addParcel() |
Consignment ID — its own independent reference |
| UPS | Native Multi-Package Shipment (MPS) | Master Tracking Number (Shipment Identification Number) — its own independent reference |
Recommended approach via ChannelEngine
Follow the steps below to manage sending multiple packages for the same order/order line/product via ChannelEngine:
- Contact your carrier to verify that it can support grouping multi-parcel shipments under one tracking code. Availability and the exact setup steps can only be confirmed by your carrier's account or integration team.
- Build the packages as one grouped multi-parcel shipment with the carrier — never as separate, unrelated shipments, even if that is technically simpler to do via ChannelEngine. Check out the Carrier examples below for details on how specific carriers manage grouped multi-parcel shipments.
- Pass the marketplace exactly one tracking code for the order/order line/product (based on what the marketplace expects): the carrier's group-level reference where one exists (PostNL's
MainBarcode, GLS's Consignment ID, UPS's Master Tracking Number), or the first parcel's own number for DHL and DPD. - Keep the remaining barcodes internal, for use by your warehouse. Most marketplace tracking APIs only accept one tracking code and one carrier per shipment notification, so there is rarely a reason to send more.
- Ensure that your warehouse dispatches the whole group on the same pickup run. Splitting a multi-parcel group after the fact breaks the single-tracking-number setup on the marketplace side.
- Brief your Support team on what might happen if a buyer checks the carrier's tracking page and sees several shipments instead of one. This is expected behavior for multi-parcel orders, not a system error. Refer to the section What shipment the buyer actually sees below for an explanation on why buyers might raise questions.
Carrier examples
PostNL
PostNL calls this feature Multicollo, which is their own name for it, not a general industry term. It is built into the Shipping, Labeling, and Confirming webservices. Every parcel still receives its own barcode, but each one also carries a Group object: GroupType 03 marks it as Multicollo, GroupCount indicates how many parcels are in the set, GroupSequence is the parcel's position within the group, and MainBarcode holds the barcode of one designated parcel — usually the first — repeated across every member of the group.
The main tracking code is not a new number. It is parcel one's own barcode, copied into every other parcel's request. All parcels must be confirmed together in one joint API call. On PostNL's tracking site, buyers can typically see the linked parcels connected to the shipment they are viewing.
DHL
DHL Express supports multi-parcel grouping, though it is typically exposed through the shipping platform in front of the API rather than through a dedicated field. Parcels going to the same address, created at the same time, are linked and labeled by position — 1 of 5, 2 of 5, and so on — but each one retains its own tracking code and its own tracking events.
There is no equivalent to PostNL's MainBarcode field. In practice, you select one parcel's number — typically the first — and treat it as the group reference to pass to the marketplace. On DHL's tracking page, buyers can see that a shipment is connected to other shipments in the same group.
DPD
DPD follows the same pattern as DHL: parcels are announced together, linked as one shipment, and one parcel's number stands in for the group reference. However, DPD only supports this on the current standard API, and only for Benelux and German contracts.
Integrations still running on the older CloudService Germany API do not support multi-parcel grouping at all. Since the two APIs look similar from the outside, confirm which API a given contract runs on before assuming this feature is available.
GLS
GLS's Parcel Processing API — sometimes called ShipIT — is built differently from DHL and DPD. You create one shipment and add parcels to it directly by calling addParcel() once per box. The response returns a single Consignment ID covering the whole shipment, plus individual tracking codes for each parcel underneath it.
The Consignment ID is not a recycled parcel barcode — it is its own reference. This makes GLS the closest to a true parent/child tracking structure among the five carriers covered here. Parcels can also be canceled individually through the API, rather than only as a full group.
UPS
UPS calls this a Multi-Package Shipment (MPS). When you create several packages under one shipment, UPS returns a Master Tracking Number — also called the Shipment Identification Number — in addition to each package's individual tracking code. This is the only carrier here where the group reference is a fully separate number rather than one parcel's barcode reused as a second identifier. Labels print "1 of 5", "2 of 5", and so on, and every package is still scanned individually.
What shipment the buyer actually sees
There are two different screens a buyer might check, and they do not show the same thing.
On the marketplace's own buyer portal, the order always appears as one shipment. This is a direct reflection of what was submitted: because you only passed one tracking code and one carrier code to the marketplace for the order (or order line or product), the marketplace has no way of knowing that multiple boxes were involved. One tracking code means one shipment on the buyer portal.
If a buyer copies that tracking codeand checks it on the carrier's own tracking page, the underlying multi-parcel structure may become visible. On PostNL and DHL platforms, for example, the tracked shipment is shown as connected to the other shipments in the same group.
A buyer who stays on the marketplace sees a clean, single shipment. A buyer who directly checks the carrier's platform may see that the shipment is part of a group.
FAQs
Do we need to standardize on one carrier to make sending multiple packages under one tracking code work?
No. Each of the five carriers handles the grouping differently, but the pattern is the same regardless of which one fulfills a given order: build one grouped multi-parcel shipment, then pass only one tracking code to the marketplace.
Does grouping parcels cost more to ship?
No, grouping itself does not add cost. The one exception: for domestic US shipments, UPS bills each package individually by weight within an MPS group, so grouping them does not reduce the shipping cost. Combined weight-based pricing only applies to certain UPS international services.
Is "Multicollo" the industry-standard term for sending multiple packages under one tracking code?
No — Multicollo is PostNL's own name for their version of the feature. DHL, DPD, GLS, and UPS all support the same underlying concept, but each uses its own terminology or no specific term at all.
What happens if one parcel in the group gets canceled?
For DHL and DPD, canceling one parcel cancels the entire grouped shipment. For PostNL, GLS, and UPS, cancelation is generally possible at the individual parcel level, but confirm the exact behavior with your carrier before relying on it.
Does the seller need to build sending multiple packages under one tracking code, or does the carrier handle it?
Both sides are involved. Your system must build the shipment as one grouped multi-parcel shipment rather than several separate ones, and pass only one tracking code to the marketplace. Whether this is available on your specific contract, and how to activate it, is something only your carrier's account or integration team can confirm.
Will the buyer see all the packages wherever they check?
Not necessarily — it depends on which screen they are viewing. See What the buyer actually sees above for a description of the marketplace-vs-carrier distinction.
Common issues
| Issue | Likely cause and resolution |
| The marketplace rejected the shipment notification. | More than one tracking code may have been submitted. Most marketplace tracking APIs only accept one tracking code per shipment notification. Pass only the group-level reference and keep the remaining barcodes internal. |
| A buyer reports that the carrier's tracking page shows multiple shipments, not one. | This is expected behavior for multi-parcel grouped shipments. The carrier's tracking page may surface the underlying parcel group. The marketplace portal still shows a single shipment. See What the buyer actually sees. |
| DPD multi-parcel grouping is not available for the contract in use. | The integration may be running on the older CloudService Germany API rather than the current standard API. Multi-parcel grouping is only supported on the standard API for Benelux and German contracts. Confirm the API version with DPD. |
| Canceling one parcel unexpectedly canceled the entire grouped shipment. | For DHL and DPD, canceling any parcel in a multi-parcel group cancels the whole group. For PostNL, GLS, and UPS, individual parcel cancelation is generally possible, but confirm the exact behavior with the carrier before relying on it. |
| Parcels in a group were dispatched on separate pickup runs. | All parcels in a grouped shipment must leave on the same pickup run. Splitting the group after the fact breaks the single-tracking-number setup on the marketplace side. Ensure warehouse processes enforce same-run dispatch for multi-parcel groups. |
Next steps
- Contact your carrier's account or integration team to confirm whether multi-parcel grouping is available on your contract and how to activate it.
- Update your shipment notification workflow to pass only the group-level tracking code to the marketplace.
- Brief your warehouse and support teams on the expected behavior to anticipate buyers' questions.
Comments
0 comments
Article is closed for comments.