---
title: "DeliveryGroup - Liquid Object Reference"
source: https://support.storeconnect.com/articles/delivery-group-liquid-object-reference
type: article
format: markdown
site: StoreConnect Support — product and developer documentation for StoreConnect
site_index: https://storeconnect.com/llms.txt
docs_index: https://support.storeconnect.com/llms.txt
note: Append .md to any page or article URL on this site to get its Markdown form.
---
# DeliveryGroup - Liquid Object Reference

## Description

The DeliveryGroup object is one of the deliveries a cart splits into when multi-shipping is enabled. Items are grouped by the shipping methods their products offer, counting only the methods the store can quote on the web, and the customer chooses a method for each delivery. See [how items are grouped](multi-shipping) for which methods count.

Reach them through `current_cart.delivery_groups`. A cart that is not split still returns one group, so you do not need separate markup for a single delivery.


```liquid

{% for group in current_cart.delivery_groups %}
  <fieldset>
    <legend>Delivery {{ forloop.index }}</legend>
    {% for rate in group.rates %}
      <label>
        <input type="radio" name="method[{{ group.key }}]" value="{{ rate.form_value }}">
        {{ rate.name }}
      </label>
    {% endfor %}
  </fieldset>
{% endfor %}
```


## Attributes

| Attribute | Type | Description |
|-----------|------|-------------|
| `cheapest_rate` | [ShippingRate](shipping-rate-liquid-object-reference) | Returns the cheapest rate for this delivery that is not a pickup, or nil |
| `items` | List[[CartItem](cart-item-liquid-object-reference)] | Returns the cart items in this delivery |
| `key` | String | Returns the identifier for this delivery, used to name the delivery's form field when the form is submitted |
| `pickup_options` | List[PickupOption] | Returns the pickup options available to this delivery, with stock checked against this delivery's items only |
| `rates` | List[[ShippingRate](shipping-rate-liquid-object-reference)] | Returns the shipping rates available to this delivery |
| `shipping_methods` | List[String] | Returns the shipping methods available to this delivery |

## Available on

- [Cart - Liquid Object Reference](cart-liquid-object-reference) — `delivery_groups`, and `multiple_delivery_groups?` to branch before fetching rates

## Rendering the groups is what saves them

Rendering `current_cart.delivery_groups` also persists the quoted deliveries onto the cart, and the checkout validation step requires them to be there. Always present the choices through this collection, or through `item.delivery_group`, which persists the same way. If you build the markup from anything else, checkout has nothing to validate against and rejects the submission.

`multiple_delivery_groups?` groups the items without fetching any rates. Use it to decide what to render before running a rate lookup.

## Submitting a choice

Post one selection per delivery, in a radio named `method[<group_key>]`. The radio value is a rate's `form_value`, or `Click and Collect_<stock location id>_<collection point id>` for a pickup.

A submission missing a delivery is rejected, as is one quoted against a cart whose items, quantities, methods or address have since changed. The customer is returned to the shipping step to choose again.

## Loading the selector without blocking the page

Rate lookups can be slow, so the built-in shipping step renders its selector through a deferred component:


```liquid

{% component "checkout/shipping_rates/page", defer: true %}
```


`defer: true` renders a placeholder and loads the component as soon as the component loader on the page registers it. This is not the same as `lazy: true`, which renders an empty container that loads only when one of the `reload:` events set on it fires.

## Assigning deliveries from a theme

A theme can assign deliveries itself rather than asking the customer, using the `shipping.add` action to nominate the items each shipment covers. Those groups are marked as theme-assigned and survive a rate refresh instead of being regrouped, for as long as the cart still matches what they were saved against. The assignment is discarded when the items, quantities or address change, or when anything else would regroup the items, such as a change to a product's **Shipping Methods** or to the store's shipping providers and rates. Automatic grouping then resumes until the theme calls `shipping.add` again.

Items left in no delivery produce no shipment at all. When you assign deliveries, StoreConnect reports those items as a warning in the [web console](web-console). See [Action - Liquid Tag Reference](action-tag-reference).

---

## Follow StoreConnect

- [Email Newsletter](https://storeconnect.com/c/lp-newsletter)
- [LinkedIn Newsletter](https://www.linkedin.com/build-relation/newsletter-follow?entityUrn=7444956928444862464)
- [YouTube](https://www.youtube.com/channel/UCngKdP2x8l1wcbAKW3tvU8g)
- [LinkedIn](https://www.linkedin.com/company/storeconnect)
- [X / Twitter](https://x.com/storeconnecthq)

## Popular Links

- [Partners](https://storeconnect.com/partners)
- [Become a Partner](https://storeconnect.com/become-a-partner)
- [News](https://storeconnect.com/articles/news)
- [Events](https://storeconnect.com/articles/events)
- [Feature Comparison](https://storeconnect.com/how-we-compare)
- [Download a free trial](https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FMkeKUAT)
- [Book a Demo](https://storeconnect.com/contact)

## Documentation

- [Help documentation](https://support.storeconnect.com/help-documentation)
- [AI agents](https://support.storeconnect.com/ai)
- [Videos & tutorials](https://support.storeconnect.com/videos-tutorials)
- [Developer reference](https://support.storeconnect.com/developer-reference)
- [Release notes](https://support.storeconnect.com/release-notes)
- [Troubleshooting](https://support.storeconnect.com/troubleshooting)
- [Trust Center](https://trust.getstoreconnect.com/)
- [Status Page](https://status.storeconnect.com/)

## Contact

- info@getstoreconnect.com
- US +1 415 745 3230
- AUS +61 2 8365 2308

100 S Ashley Dr, Suite 600-2461
Tampa FL 33602-600 USA

Level 22, Sydney Place
180 George Street
Sydney, NSW, 2000, AUS

## Machine-readable

- [Site index for agents](https://storeconnect.com/llms.txt): curated map of the StoreConnect site in llms.txt format
- [Documentation index for agents](https://support.storeconnect.com/llms.txt): full technical and product documentation map

Every page and article on this site has a Markdown rendering: append `.md` to its URL.

Continue in Markdown: [Help documentation](https://support.storeconnect.com/help-documentation.md) · [Developer reference](https://support.storeconnect.com/developer-reference.md) · [Videos & tutorials](https://support.storeconnect.com/videos-tutorials.md) · [Release notes](https://support.storeconnect.com/release-notes.md)

---

StoreConnect Support — https://support.storeconnect.com/articles/delivery-group-liquid-object-reference