FoxrFoxr

Theme templates

What you can and can't customize in your theme — the cart, the order status page, and the customer account order page.

Your theme has its own Liquid templates, and bundles show up in three of them. Two you can edit; one you can't.

Where to edit: Shopify admin → Online StoreThemesEdit code.

Duplicate your theme first

Always duplicate the live theme and edit the copy, then preview it before publishing.

Cart page and cart drawer

Files: sections/main-cart-items.liquid, snippets/cart-drawer.liquid, or your theme's equivalent.

In merged cart line mode you usually don't need to touch anything — Bundle Builder's Cart Transform already presents the box as a single line with the bundle's name and image. In individual mode each product is its own cart line, and the theme shows the underscored properties as nothing (Shopify hides them from customers) — which is normally what you want.

If you want a visible "part of your box" marker in individual mode, add this inside your theme's cart line loop:

{% if item.properties._bundle_id != blank %}
  <span class="cart-item__bundle-tag">
    Part of your bundle{% if item.properties["Bundle SKU"] != blank %} ({{ item.properties["Bundle SKU"] }}){% endif %}
  </span>
{% endif %}

Note the loop variable is item in most themes' cart templates, not line_item.

Customer account order page

File: templates/customers/order.liquid (or sections/main-order.liquid in Online Store 2.0 themes).

This is the order history page a logged-in customer sees, and it lists components as separate rows. Group them with exactly the same pattern as the notification email, swapping line_items for the theme's variable and dropping the table markup for your theme's classes:

{% assign bundle_ids = "" %}
{% for line_item in order.line_items %}
  {% if line_item.properties._bundle_id != blank %}
    {% assign bundle_ids = bundle_ids | append: line_item.properties._bundle_id | append: "~|~" %}
  {% endif %}
{% endfor %}
{% assign bundle_ids = bundle_ids | split: "~|~" | uniq %}

…then render the non-bundle lines, then one block per id, as on the other pages.

New customer accounts

If your store uses Shopify's new customer accounts (the shopify.com/…/account experience) rather than classic accounts, this template isn't used and can't be customized in Liquid. There's nothing to edit — the order shows the component lines.

Checkout and the order status page

Not customizable. Checkout is rendered by Shopify, and the Thank you / Order status page is too. You can't add Liquid to either.

The good news is you don't need to: at checkout the bundle already appears as one line with its name and image, because the Cart Transform merge is still in effect at that point. The split into components happens when the order is created, after checkout is done.

If you need custom content on those pages, that's a Checkout UI extension — a developer task, on Shopify Plus for the checkout steps.

Quick reference

SurfaceEditableBundle already grouped?
Cart page / drawerYes (theme)Yes in merged mode
CheckoutNoYes
Thank you / Order statusNoNo
Customer account order (classic)Yes (theme)No — use the snippet above
Customer account order (new accounts)NoNo

Next

Troubleshooting — when the grouping or the SKU doesn't show up.

On this page