Orders
When a cart is completed, it becomes an order. You can view orders in the Commerce → Orders section of the Control Panel.
When a cart becomes an order, the following things happen:
- The
dateOrdered
order attribute is set to the current date. - The
isCompleted
order attribute is set totrue
. - The default order status is set on the order and any emails for this status are sent.
- The order reference number is generated for the order, based on the “Order Reference Number Format” setting found in Commerce → Settings → General Settings section of the control panel.
# Order Numbers
You can identify an order in three ways. By the order number, short order number, and order reference number.
# Order Number
The order number is a hash, generated when the cart is created in the session, which exists in the users session, even before the cart is saved in the database. It exists from initial creation of the cart, for the entire life of the order.
This is different to the order reference number that is only generated after the cart has been completed and becomes an order.
We recommend using the order number when referencing the order in URLs or anytime the order is retrieved publicly.
# Short Order Number
The short order number is the first 7 characters of the order number. This is short enough to still be unique, and is a little friendlier to customers, although not as friendly as the order reference number.
# Order Reference Number
The order reference number is generated on cart completion by the ‘Order Reference Number Format’ in general settings.
This number is usually the best to use as the customer facing identifier of the order, but shouldn’t be used in URLs.
{{ object.reference }}
The ‘Order Reference Number Format’ is a mini Twig template, which will be rendered when the order is completed.
Attributes on the order can be accessed as well as Twig filters and functions, for example:
{{ object.dateCompleted|date('Y') }}-{{ id }}
Ouput:
2018-43
Please note in the above example, the ID is the element ID, which is not sequential.
A sequential number can be generated by the use of Craft’s seq() (opens new window) Twig function, which generates a next unique number based on the name
parameter passed to it.
The seq()
function takes the following parameters:
- A key name. If this name is changed, a new sequence starting at one is started. See Craft docs for more information.
- An optional padding character length. For example if the next sequence number is
14
and the padding length is8
, the generation number will be00000014
For example:
{{object.dateCompleted|date('Y')}}-{{ seq(object.dateCompleted|date('Y'), 8) }}
Ouput:
2018-00000023
In the above example we have used the year as the sequence name so that we automatically get a new sequence starting at 1 when the next year arrives.