---
schema_version: "1"
id: 1f480dfb591c0b5be33b5c1caa8c7c67bb4825000c2e8cc25b7f2ca4cc0066b3
title: Configure Receipts to Show Product Bundle Children in Point of Sale
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/commerce/264-0-0/rt_cms_layouts_receipts_product_bundles.md
canonical_url: https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_receipts_product_bundles.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 4410fd02ebf3c858d5223d81606f0978e99324891f76686fcb9e32fb0a9b4495
description: Add a child-loop row to your receipt template so each bundle's items print together under it, in sales and returns.
products:
  - Commerce
release: "264"
---
# Configure Receipts to Show Product Bundle Children in Point of Sale

Add a child-loop row to your receipt template so each bundle's items print together under it, in sales and returns.

Keep the product ID and name together on the parent product row of your existing receipt template. This anchors bundle grouping.

When an associate sells or returns a bundle, the app groups that bundle's items by their shared bundle group. It removes them from the ordinary item list so they don't print twice. The app doesn't build a child row layout, indent rows, or print a child price. Your template controls the formatting. Without a child-loop row, the bundle's items have nowhere to print. They disappear from the receipt.

1. In your receipt template's product section, add a new row directly under the row that prints the bundle (parent) line.
2. On the new row, add the :ps\_p\_bundle\_child prefix in front of each product tag you want to show for a child. For example: :ps\_p\_bundle\_child:ps\_p\_id, :ps\_p\_bundle\_child:ps\_p\_title, and :ps\_p\_bundle\_child:ps\_p\_qty.
    
    The engine repeats this row once for each item in the bundle. Most product tags resolve for a child, including:
    
    - Identity fields: ID, title, quantity, SKU, GTIN, variant group ID
    - Item detail: serial number, item status, registry ID, notes
    - Fulfillment type, and the full shipping and pickup detail sets
    
    Price, discount, and tax tags are the exception. A bundle child has no price on the receipt, so a money tag like :ps\_p\_bundle\_child:ps\_p\_price prints nothing for a child. Put the bundle's price, discount, and tax on the parent row only.
3. To indent the child row under the bundle name, type leading spaces on the row, or add a narrow empty cell before it.
    
    Indent is a layout choice that you make on the template—there's no app-side indent setting.
4. If you add more than one child-loop row (for example, a second row for the variant group ID), keep the rows adjacent. Don't put a plain row between them.
    
    Adjacent child rows print as one block per child. For example, child A's ID, title, and quantity print first. Child A's variant group ID prints right after. Then child B's rows print the same way. A plain, non-child row between two child rows breaks that block.

![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_example.png)

Example

This example authors a receipt product section as six rows. Only rows 2 and 3 carry the :ps\_p\_bundle\_child prefix. The engine repeats those two rows once per child. The bundle (parent) line preceding them prints once.

  
| Row | What's on it | Resolves against |
| --- | --- | --- |
| 1 | :ps\_p\_id :ps\_p\_title, :ps\_p\_qty\_and\_price (right-aligned) | Parent—the bundle line, with the bundle's single price |
| 2 | Narrow empty cell, :ps\_p\_bundle\_child:ps\_p\_id :ps\_p\_bundle\_child:ps\_p\_title, :ps\_p\_bundle\_child:ps\_p\_qty (right-aligned) | Child |
| 3 | Narrow empty cell, Variant Group Id: :ps\_p\_bundle\_child:ps\_p\_variant\_group\_id | Child |
| 4 | Variant Group Id: :ps\_p\_variant\_group\_id | Parent |
| 5 | :ps\_p\_fulfillment\_type | Parent |
| 6 | :ps\_p\_discount\_title, :ps\_p\_discount\_amount (right-aligned) | Parent |

Print a test receipt for a sale that includes a bundle. Confirm that each child prints once, directly under the bundle line. Also confirm that no child shows its own price. If children are missing entirely, add the child-loop row from this task. The token is :ps\_p\_bundle\_child. It doesn't include is. There's no separate on/off token or condition to configure.

#### See Also

- [_Salesforce Help:_ Product Bundles in Point of Sale](https://help.salesforce.com/s/articleView?id=commerce.rt_pos_orders_product_bundles.htm&release=264.0.0&type=5 "A product bundle groups a parent item with required child items. It sells, returns, and ships as one unit.")