Customizing invoice emails in Storeganise

Contents


Overview

Storeganise has several automated email functions which are managed in the main settings of the admin portal. These emails can be customized to fit your needs. They are built as general templates that pull placeholder information so each email is automatically personalized to the customer and user it is being sent to. This article will focus on how to utilize these features to customize your invoice-related emails.

You will find these templates in the Main Settings of your admin portal under the Emails section. Simply click on one of the emails here to open the window where you will edit the layout and content of the email.

You can find more information about these email notifications here.


Using placeholders

Placeholders in email templates pull recipient-specific data from the system. Default placeholders are available and can be selected in the 'edit template' window. Click 'Insert placeholder ▼' in the top right corner to see the list of default variables.

When you select a placeholder, it will be automatically placed where your cursor is. For example, to add a greeting near the top of your invoice email that addresses your customer by name, use the placeholders from this list.

  • {{user.firstName}} and {{user.lastName}}

If you add this information and click the Preview button, the placeholders will turn into the recipient's first and last names.

Placeholder additions:

Previewed:

When previewing emails for customers, dummy information will be automatically filled in to provide a better idea of the content.

You can use placeholders to customize your email templates. The preset placeholders include data related to users, sites, rentals, invoices, and more.

Learn how to create and use custom placeholders below.


Note: If you want to show dates in a short format, make sure that formatDate is added before {{invoiceCreated}} e.g. {{formatDate invoice.created}}.


Using custom fields

If you need to add non-native information to your invoices in Storeganise, you can use custom fields. These fields will be automatically added to the 'Insert placeholder▼' dropdown list in email template editing as you create them.

Click here to view more information about creating and using custom fields.

For example, if a customer needs to link Purchase Order numbers to invoice payments, create a custom field for this information. In this case, the custom field will be created at the user level.

Note: In order to make custom fields appear as placeholders for email templates they must be viewable by users in the User permissions setting.

With the custom field created, you will now see it as an option in the placeholder dropdown.


However, data must exist in this custom field for it to display in the email. If you use a placeholder without associated data, it won't show anything. Let's add a PO number for the user in this example.

Now if we insert a new line for the invoice email template and utilize the custom field placeholder, it will display this information in the email.

Custom field placeholder added:

Previewed:

By utilizing custom fields you can significantly increase the customizability of your automated emails to tailor them to your specific business needs.


Using custom invoice items (advanced)


You may need a more customized invoice items partial, so instead of {{> invoiceItems}} in the email template, you'd insert this equivalent HTML template, that you can fully customize to your needs:


<table width="100%">
  {{#if unit.name}}
    <tr>
      <td colspan="3">
        <h4 style="margin-bottom: 0">{{cmsText 'invoiceItems.unitHeader'}} {{unit.name}}</h4>
      </td>
    </tr>
  {{/if}}
  {{#if invoice.entries.length}}
    <tr>
      <td></td>
      <td class="text-muted text-end">{{cmsText 'invoiceItems.price'}}</td>
      <td class="text-muted text-end">{{cmsText 'invoiceItems.tax'}}</td>
      <td class="text-muted text-end">{{cmsText 'invoiceItems.total'}}</td>
    </tr>
    {{#each invoice.entries}}
      <tr>
        <td>
        {{desc}} <br/>
        <span class="text-muted">
            {{#if endDate}}
              ({{formatDatePeriod date endDate}})
            {{else}}
              ({{formatDate date ../dateFormats.short}})
            {{/if}}
          </span>
        </td>
        <td class="text-muted text-end">{{#if qty}}{{qty}} &times; {{/if}}{{formatPrice amount}}</td>
        <td class="text-muted text-end">{{#if tax}}{{formatPrice tax}}{{/if}}</td>
        <td class="text-muted text-end">{{formatPrice total}}</td>
      </tr>
    {{/each}}
  {{/if}}
  <tr><td colspan="4">&nbsp;</td></tr>
  {{#if invoice.tax}}
    <tr>
      <td colspan="3" class="text-end">{{cmsText 'invoiceItems.subtotal'}}:</td><td class="text-end">{{formatPrice invoice.subtotal}}</td>
    </tr>
    <tr>
      <td colspan="3" class="text-end">{{cmsText 'invoiceItems.tax'}}:</td><td class="text-end">{{formatPrice invoice.tax}}</td>
    </tr>
  {{/if}}
  <tr>
    <td colspan="4" class="text-end" style="font-size: 16px; padding-top:20px;"><strong>{{cmsText 'invoiceItems.total'}}: {{formatPrice invoice.total}}</strong></td>
  </tr>

  {{#ifNull invoice.amountPaid}}
  {{else}}
    <tr>
      <td colspan="4" class="text-end" style="font-size: 16px; padding-top:6px;">{{cmsText 'invoiceItems.amountPaid'}}: {{formatPrice invoice.amountPaid}}</td>
    </tr>
    <tr>
      <td colspan="4" class="text-end" style="font-size: 16px; padding-top:6px;"><strong>{{cmsText 'invoiceItems.amountDue'}}: {{formatPrice invoice.balance}}</strong></td>
    </tr>
  {{/ifNull}}
</table>

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us