Configuring invoices

Invoices (receipts) are commercial documents that you issue to customers to indicate purchase-related details:

  • Products
  • Quantities
  • Prices
  • Other purchase-related details

The Xperience E-commerce Solution allows you to customize the invoice design. After configuring invoices, you can work with them while editing an order in the Orders application on the Invoice tab.

Editing an order - Invoice tab

Numbering invoices

With the default invoice number pattern, the system displays the invoice number equal to the order number. If you want to change the format of the invoice number, change the corresponding setting:

  1. Open the Store configuration application (if you want to set up the invoice number pattern for the current site) or the Multistore configuration application (if you want to set up the invoice globally).

  2. In the Invoice number pattern field in the Invoice category, type the required pattern.

    You can use macros. For example, the default pattern is: {% Order.OrderID %}

    • If you are in the Store configuration application, clear the Inherit from global settings option first.
  3. Click Save.

The system generates new invoices with their numbers formatted according to the specified setting.

Formatting invoices

You can configure the invoice template in the Store configuration application (if you want to set up the invoice for the current site) or in the Multistore configuration (if you want to set up the invoice globally) on the Invoice tab.

This configuration sets only the invoice which is displayed in the administration user interface and which you can print. If you want to send the invoice via email, configure the corresponding email notification.

Use HTML markup for the basic formatting, and add macros to insert dynamic parts of the invoice. For example, you can use the {% Order.OrderInvoiceNumber %} expression to insert the invoice number.

Macro examples

The following table contains macro expressions that you can use in the invoice template.

Macro

Description and examples

Prices

{%Currency.<property>%}

Displays a value from a column in the currency database table (COM_Currency).

  • {%Currency.CurrencyCode%} – displays the currency’s code (e.g. USD)

{%GrandTotal%}

Displays the order’s final overall price.

  • {%GrandTotal.Format(Currency.CurrencyFormatString)%} – displays the overall price formatted as specified in the currency’s format string

{%TotalShipping%}

Displays the order’s shipping price.

  • {%TotalShipping.Format(Currency.CurrencyFormatString)%} – displays the total shipping of the order formatted as specified in the currency’s format string

{%TotalTax%}

Displays the total sum of all taxes that apply to the order.

{%TaxSummary%}

Returns a collection of taxes (tax classes) that apply to the order (products and shipping).

To format the appearance of the taxes, use one of the following options:

For example, the following HTML code and macros display a basic table of tax class names and values:




<table>
{% foreach(taxItem in TaxSummary) { %}
  <tr>
    <td>{% taxItem.Name|(encode)true %}</td>
    <td>{% taxItem.Value.Format(Currency.CurrencyFormatString)|(encode)true %}</td>
  </tr>
{% } %}
</table>


Order data

{%ContentTable%}

Returns a collection of the ordered products.

To format the appearance of the products, use one of the following options:

For example, the following HTML code and macros display a basic table of product data:




<table>
{% foreach(item in ContentTable) { %}
  <tr>
    <td>{% item.SKUName|(encode)true %}</td>
    <td>{% item.Units %}</td>
    <td>{% item.TotalPrice.Format(Currency.CurrencyFormatString)|(encode)true %}</td>
  </tr>
{% } %}
</table>


{%Order.<property>%}

Displays a value from a column in the order database table (COM_Order).

  • {%Order.OrderInvoiceNumber%} – displays the invoice number
  • {%Order.OrderNote|(encode)%} – displays encoded order note
  • {%Order.OrderIsPaid%} – displays the paid status of the order
  • {%Format(Order.OrderDate, “{0:d}”)%} – displays the formatted order date

{%OrderStatus.<property>%}

Displays a value from a column in the order status database table (COM_OrderStatus).

  • {%OrderStatus.StatusDisplayName%} – displays the order status’s display name

{%ShippingOption.<property>%}

Displays a value from a column in the shipping option database table (COM_ShippingOption).

  • {%ShippingOption.ShippingOptionDisplayName%} – displays the shipping option’s display name

{%PaymentOption.<property>%}

Displays a value from a column in the payment method database table (COM_PaymentOption).

  • {%PaymentOption.PaymentOptionDisplayName%} – displays the payment method’s display name

{%ShoppingCart.<property>%}

Displays a value from a column in the shopping cart database table (COM_ShoppingCart). With the shopping cart, you can get to any other mentioned macro, for example:

  • {%ShoppingCart.ShoppingCartCurrency.CurrencyCode%} – displays the currency’s code (e.g. USD)

Order discounts and gift cards

{%OrderDiscount%}

Displays the total value of all applied order discounts.

  • {%OrderDiscount.Format(Currency.CurrencyFormatString)%} – displays the order discount total formatted according to the format string of the set currency

{%OrderDiscountSummary%}

Returns a collection of the order discounts applied to the order.

To format the appearance of the order discounts, use one of the following options:

{%OtherPayments%}

Displays the total value of applied gift cards.

  • {%OtherPayments.Format(Currency.CurrencyFormatString)%} – displays the gift card total formatted according to the format string of the set currency

{%OtherPaymentsSummary%}

Returns a collection of the gift cards applied to the order.

To format the appearance of the gift cards, use one of the following options:

Customer data

{%Customer.<property>%}

Displays a value from a column in the customer database table (COM_Customer).

  • {%Customer.CustomerEmail%} – displays the customer’s email address
  • {%Customer.CustomerOrganizationID%} – displays the customer’s organization ID (for company accounts)
  • {%Customer.CustomerTaxRegistrationID%} – displays the customer’s tax registration ID (for company accounts)

{%BillingAddress.<property>%}

Displays a value from a column in the billing address database table (COM_OrderAddress).

  • {%BillingAddress.AddressLine1%} – displays the first line of the billing address

{%BillingAddress.Country.<property>%}

Displays a value from a column in the billing address country database table (CMS_Country).

  • {%BillingAddress.Country.CountryDisplayName%} – displays the billing address’s country display name

{%BillingAddress.State.<property>%}

Displays a value from a column in the billing address state database table (CMS_State).

  • {%BillingAddress.State.StateDisplayName%} – displays the billing address’s state display name

{%ShippingAddress.<property>%}

Displays a value from a column in the shipping address database table (COM_OrderAddress).

  • {%ShippingAddress.AddressLine1%} – displays the first line of the shipping address

{%ShippingAddress.Country.<property>%}

Displays a value from a column in the shipping address country database table (CMS_Country).

  • {%ShippingAddress.Country.CountryDisplayName%} – displays the shipping address’s country display name

{%ShippingAddress.State.<property>%}

Displays a value from a column in the shipping address state database table (CMS_State).

  • {%ShippingAddress.State.StateDisplayName%} – displays the shipping address’s state display name
Learn more about macros in Macro expressions.