ElasticFunnels provides two ways to display order information on your pages: theDocumentation Index
Fetch the complete documentation index at: https://docs.elasticfunnels.io/llms.txt
Use this file to discover all available pages before exploring further.
<order> HTML tag (for the visual builder) and backend functions like getOrders() / getOrder() / getSessionOrders() / getPurchasedProducts() for code-based pages. Both retrieve data from the customer’s purchase history.
Two Approaches
| Approach | Best for | Used in |
|---|---|---|
<order> tag | Visual builder pages, simple layouts | Drag-and-drop editor |
getOrders() / getOrder() | Code-based pages, full order history | Backend scripts / .ef pages |
getSessionOrders() | Thank-you pages — current purchase only | Backend scripts / .ef pages |
getPurchasedProducts() | Member-area “library” pages — purchased products with their bonuses + downloads | Backend scripts / .ef pages |
Using the <order> Tag
The <order> tag is processed server-side and automatically loops through the customer’s purchase history. See the full Order Tag reference for all placeholders and options.
Using getOrders() in Backend Scripts
For code-based pages (.ef files or pages with backend scripts), getOrders() gives you full control over the layout. It returns an array of order objects you can loop through with @foreach.
Basic Usage
Parameters (getOrders)
| Parameter | Type | Default | Description |
|---|---|---|---|
sortBy | string | 'newest' | Sort order: 'newest' or 'oldest' |
limit | number | 50 | Maximum number of orders to return (max 1000) |
Alternative: Inline Call
You can also callgetOrders() directly in a @set directive without a backend script block:
Using getOrder() for a Single Order Detail Page
When you already know which order to show, use getOrder(code) instead of loading the full order list and searching manually. This is ideal for pages like /members-order?order=EF-12345.
getOrder() uses the same customer/session scope as getOrders(), so it only returns orders that belong to the currently logged-in customer for that brand.
Example: Single order page
What code can be
getOrder(code) matches any of these values within the current customer’s orders:
order_number/ public order ID- internal
order_id - conversion
code
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | Yes | Public order ID, internal order ID, or conversion code to match |
Fulfillment status and shipments
UsegetOrderFulfillment(code) on an order detail page to show 3PL fulfillment status and timestamps. Responses are allowlisted (no raw provider payloads).
Use getOrderFulfillments() with no arguments to list every tracking row across all of the customer’s orders—each row includes order_number so you can link to /members-order?order=….
For a single order, order.tracking from getOrder / getOrders is often enough for carrier links. The fulfillment helpers add lifecycle status (getOrderFulfillment) and a cross-order shipment list (getOrderFulfillments).
Example: order detail with fulfillment summary
Example: all shipments for the account
Order Object Structure
Each order returned bygetOrders() or getOrder() contains:
Displaying Tracking Information
If your orders have physical shipments, tracking information is automatically extracted from fulfillment data. The system checks multiple sources for tracking numbers:- Direct conversion fields (
tracking_number,tracking_url) - Fulfillment provider response data
- Fulfillment order data
order.tracking is always an array. When the order has not yet been fulfilled it is empty ([]). Use order.shipping_address as the signal that the order contains a physical product — if there is a shipping address but no tracking yet, show a “being processed” message.
Example: Physical order with processing/tracking states
order.shipping_addressis present → physical product → show the shipping address block.- Inside that block,
order.tracking.length gt 0→ shipment is on the way → show carrier + tracking link. - Otherwise → show “Your order is being processed.”
getSessionOrders() — Current Session Orders
getSessionOrders() returns only the orders that were placed during the current browser session. Unlike getOrders(), which returns the full purchase history for a customer, getSessionOrders() is scoped to the active checkout session — making it the right choice for thank-you pages where you only want to show what was just bought.
By default it returns all orders from the current session. Pass an optional limit to cap the count.
Parameters (getSessionOrders)
| Parameter | Type | Default | Description |
|---|---|---|---|
sortBy | string | 'newest' | Sort order: 'newest' or 'oldest' |
limit | number | (all) | Maximum number of orders to return; omit to return all session orders |
Basic Usage
Thank You Pages
Thank-you pages are a natural place to show order details. Since the customer is auto-authenticated from checkout, order data is available immediately. UsegetSessionOrders() on thank-you pages so that only the orders from the current checkout session are shown — not the customer’s full history.
Example: Thank You Page with Order Summary
Customer Data Outside of Orders
You can also display customer information directly using thecustomer template object (populated from the session):
customer object includes: name, email, first_name, last_name, phone, order_id, order_ids, and full billing/shipping address fields. It is automatically available in every backend script and template — no function call needed.
Order Grouping
Orders are grouped intelligently — multiple conversions from the same purchase session (e.g., a main product and an upsell bought in the same checkout flow) are combined into a single order. The grouping logic uses:- Session ID matching — Conversions from the same browser session
- Time proximity — Conversions within 6 hours of each other
Related Documentation
Order Tag Reference
Full reference for the
<order> HTML tag and all placeholdersBackend Scripts
Learn about backend scripts and available functions
Template Engine Syntax
Filters, conditionals, and loops for displaying data
Thank You Pages
Best practices for post-purchase confirmation pages