Skip to main content

System Settings - Template Hierarchy and Detail Templates

Updated over a week ago

Overview

Some templates in Sharper MMS cannot stand alone. They require a companion Detail Template to render the repeating line-item rows inside a document.

Understanding the parent-child relationship is important when configuring invoices, statements, reservation confirmations, folios, and credit memo documents. A misconfigured or missing Detail Template will result in documents that render without their line-item detail rows.

Templates are found at System Settings, then Templates.


What Is a Detail Template?

A Detail Template is a small, repeating block template that handles a single data row. The parent template defines the overall document structure - the header, customer block, totals row, and footer. The child (Detail Template) defines how each individual line item looks and is rendered once per row.

For example: an Invoice with ten line items renders the Invoice parent template once for the overall document, and the Invoice Item Block child template ten times - once per line item - inserting the repeated blocks into the parent at the detail placeholder.

This separation lets you control the document wrapper and the row layout independently.


The Detail Template Field

When editing a parent template that supports a child, the Detail Template dropdown appears on the form. It is automatically filtered to show only compatible child template types - you cannot accidentally link an incompatible pair.

If the Detail Template field does not appear on your template form, the selected Type does not use one.


Complete Parent-Child Map

The following lists every parent-child Detail Template relationship in Sharper.

Reservation Email uses child type Reservation Item Block. Each product or reservation item is rendered once using the Reservation Item Block and inserted into the Reservation Email body.

Invoice uses child type Invoice Item Block. Each invoice line item is rendered once using the Invoice Item Block.

Statement uses child type Statement Transaction Block. Each transaction group on the statement is rendered once using the Statement Transaction Block.

Detailed Statement uses child type Statement Transaction Block. Same child type as Statement - the Statement Transaction Block is shared between both parent types.

Statement Transaction Block uses child type Statement Transaction Detail Block. The Statement Transaction Block is itself a parent. Each individual line item within a transaction group is rendered using the Statement Transaction Detail Block. This creates a three-level chain: Statement, then Statement Transaction Block, then Statement Transaction Detail Block.

Status Update Email uses child type Status Update Email Item Block. Each item in the status update is rendered once using the Status Update Email Item Block.

Transient Folio uses child type Transient Folio Item Block. Each charge row on the folio is rendered once using the Transient Folio Item Block.

Credit Memo Email uses child type Credit Memo Item Block.

Credit Memo Email Attachment uses child type Credit Memo Item Block. The Credit Memo Item Block is shared - the same child template is used by both the email and its attachment.

Credit Memo Print uses child type Credit Memo Item Block. All three credit memo parent types share the same child template type.

Deposit Pay Email uses child type Deposit Pay Item Block.

Deposit Pay Email Attachment uses child type Deposit Pay Item Block. The Deposit Pay Item Block is shared between the email and its attachment parent templates.


The Three-Level Statement Chain

The Statement and Detailed Statement use the deepest nesting in the system:

  1. Statement or Detailed Statement (top level) - selects a Statement Transaction Block as its Detail Template.

  2. Statement Transaction Block (middle level) - renders once per transaction group. It also has its own Detail Template field, pointing to a Statement Transaction Detail Block.

  3. Statement Transaction Detail Block (bottom level) - renders once per line item within each transaction group.

All three levels must be configured and linked correctly for a complete statement to render with full transaction and line-item detail.


Shared Child Templates

Several child template types are reused by multiple parents:

  • Credit Memo Item Block - used by Credit Memo Email, Credit Memo Email Attachment, and Credit Memo Print.

  • Deposit Pay Item Block - used by Deposit Pay Email and Deposit Pay Email Attachment.

  • Statement Transaction Block - used by both Statement and Detailed Statement.

Editing a shared child template affects every parent that references it. If you need different line-item layouts for different parents of the same type, create separate child templates and assign them independently.


Templates That Do Not Use a Detail Template

The following types render as standalone documents with no child template: ACH Declined, ACH Sign-up Email, ACH Terms And Conditions, Customer Marketing Email, E-sign, E-sign Email, Email Signature, Invoice Item Block, Non-Transient Reservation Item Description, Online Booking Template, Order Item Sale Description, Payment Email, Payment Email Attachment, Payment Print, Power Meter Reading Description, Product Contract, Product Contract Email, Refund Email, Refund Email Attachment, Refund Print, Reservation Item Block, Reservation Item Extra Charge Description, Reset Password Email, Statement Transaction Detail Block, Transient Folio Item Block, Transient Reservation Item Description.

Note: types in this list that end in Block or Description are themselves child templates. They are selected as Detail Templates on parent types - they do not have children of their own (except Statement Transaction Block, which does).


How to Configure a Parent Template With a Detail Template

  1. Create or confirm the child template exists first. For example, if setting up an Invoice, confirm your Invoice Item Block template is saved and ready.

  2. Open or create the parent template.

  3. Set the Type field. Once the Type supports a Detail Template, the Detail Template dropdown appears.

  4. Select the appropriate child template from the Detail Template dropdown.

  5. Click Save.

Did this answer your question?