Orders Tag

    <!-- order details -->

The Orders tag prints any information about a single order, or multiple orders. The template variables are mostly the same as in the Checkout Tag, with a few extra variables available.

Orders Tag Parameters


Specifies the order ID to retrieve. If you are allowing users to access their order details via a URL segment, you should use this parameter in conjunction with member_id="CURRENT_USER". This will prevent users browsing private order data by guessing order IDs. Otherwise, allow access to your orders using the order hash.

This parameter also accepts a pipe-separated list of order IDs, similar to the channel entries tag (e.g. order_id="3|4|5" or order_id="not 99").


Retrieve an order by order hash. Every order has a unique order hash associated with it - this is the preferred method of allowing users to view their order details online, as it prevents people from viewing sensitive order data simply by guessing a valid order ID. Generally you would pull this from a segment variable.


Limit the orders to a specific member. If the constant CURRENT_USER is entered, only orders from the currently logged in member will display (and if the user is not logged in, no orders will be returned).

You can use this parameter to prevent users from viewing each other’s order details, or to template a “My Orders” page.


Limit the orders displayed to only orders with a certain status. You can search for multiple statuses by using the pipe separator (e.g. order_status="new|shipped"), or all orders without a certain status using not (e.g. order_status="not shipped").


Display only paid or unpaid orders. Defaults to display all orders.


Order the results. Valid values include order_date, order_id, order_total, order_status, username and screen_name. Defaults to order_date.


The sort order of the results. Must be either asc or desc. Defaults to desc.


Limit the maximum number of orders displayed. The default is 100 orders.

Order Tag Variables

Most variables available in the Checkout Tag are available here. In addition, you can use the following variables:


The screen_name for the member connected to an order.


The username for the member connected to an order.


The unique id assigned to an order.


The ID of the shipping method.


The name of the shipping method.


The class of the shipping method (if calculated by an extension).


The name of the order’s payment plugin.


The date the order was placed according to the server, as a unix timestamp.


The ip address from which the order was originally placed.


The current status of the order. Order Statuses are defined in the Control Panel.


The date the order had the current {order_status} applied to it according to the server, as a unix timestamp.


The member id of the user who applied the current {order_status} to the order.

Automated Order Status changes are made by member id 0 (System).


The current total amount paid on the order.

if is_order_paid

True if the order has been fully paid.

if is_order_unpaid

True if the order has not yet been fully paid.


The date the order was completely paid off, as a unix timestamp.


Equivalent to {order_total} - {order_paid}.

if no_orders

True if no orders match the current criteria. Equivalent to the Channel Entries Tag’s {if no_entries} conditional. This can be used to display a 404 message when an order was not found, for example:

{exp:store:orders order_hash="{segment_3}"}
    {if no_orders}
    <!-- display order details here -->