Skip to main content

Orders

The Orders page answers the question only Joryio can: which message produced each order. It is operational, not analytical - find an order, check its status, and see its attribution. Revenue analysis lives on the E-Commerce Overview; fulfilment (shipping, refunds) is managed in your store.

Every figure is net of refunds.

The page

  • Header - title, a date-range picker (the same presets used across analytics), nothing else.
  • Status tabs - All orders / Paid / Pending / Refunded, with counts.
  • Toolbar - search (order number, customer name or email), source, customer, attribution, and sort.
  • Table - one row per order; a row opens the detail drawer.
  • Pagination - server-side; the page loads one page at a time.

Status tabs

The page uses a payment-oriented view of status - the store owns fulfilment, so shipped/delivered read as Paid here:

TabIncludes
PaidPayment captured (processing, shipped, delivered)
PendingAwaiting payment
RefundedFully or partly refunded

Toolbar filters

FilterOptions
SearchOrder number, customer name, or email
SourceAll / Campaigns only / Journeys only / Not attributed
CustomerAll / First-time / Repeat
AttributionAll / Click-through only / Assisted click / Opened only
SortNewest / Highest value / Lowest value

Table columns

ColumnDescription
OrderYour order number
DateWhen it was placed
CustomerName + FIRST/REPEAT badge + email
ItemsFirst item + "+N more - N units"
TotalOrder total, with "-$x refunded" beneath (struck through when fully refunded)
Attributed toCampaign/journey + channel + how it was earned
StatusPaid / Pending / Partly refunded / Refunded

Attribution

For each order, Joryio records which campaign or journey produced it, how the credit was earned, and when:

HowMeaningStrength
Click-through (direct)The customer clicked this campaign's link and bought (deterministic, same session)Strong
Assisted clickThe customer clicked a message within the window before buyingStrong
Opened onlyThe customer opened but did not click (shown in amber)Weak
Not attributedNo engagement within the window - still counts toward total revenue-

The "Attributed to" cell shows the campaign/journey name, a channel chip (email/SMS/push/in-app/WhatsApp), and a line like "clicked - 3h before" or "opened only - 41h before".

Click-through only

Some teams trust only purchases where the customer clicked a link and bought (deterministic), and want to exclude the windowed/assisted effect. Use the Attribution → Click-through only filter to list exactly those orders. The same view is available as a toggle on the E-Commerce Overview and as the Direct figure on a campaign's analytics.

Detail drawer

Opening an order shows the attribution first (why it is - or is not - credited), then the customer, then line items with subtotal, refunded amount, and net revenue. Refunds and fulfilment are managed in your store, and the drawer says so.

Attribution models and windows

How an order is credited is configurable:

  • Model - Last touch (a click beats an open), Last click, or First touch. Set the workspace default under Settings → Revenue attribution; a campaign or journey can override it in its conversion settings.
  • Window - how far back a touch may sit before the order. Each campaign/journey uses its own conversion window (default 7 days).
  • Count opens - whether opens (weaker, noisier than clicks) attribute at all. Workspace-level, on by default.

Changing a setting applies to new orders immediately and re-credits existing orders in the background. To compare models side by side (e.g. last-click vs last-touch), open E-Commerce → Overview → Compare models.

Order fields

FieldDescription
externalIdYour order ID from your e-commerce platform
userIdCustomer's Joryio user ID
statusOrder status
totalFinal order amount
subtotalAmount before discounts
totalRefundedAmount refunded so far (nets revenue)
itemsLine items array
placedAtOrder timestamp
campaignId / canvasIdDeterministic (click-through) attribution tag
source, utmSource, utmMedium, utmCampaignChannel / UTM tags

Line items carry product ID and name, quantity and price, SKU/variant, and image URL.

Using orders in campaigns

Order confirmation emails

<h1>Thank You for Your Order!</h1>
<p>Order #{{ order.id }}</p>

{% for item in order.items %}
<div class="item">
<img src="{{ item.imageUrl }}" />
<p>{{ item.name }} x {{ item.quantity }}</p>
<p>${{ item.price }}</p>
</div>
{% endfor %}

<p>Total: ${{ order.total }}</p>

Post-purchase flows

Create Canvas flows triggered by order events - order confirmation, delivery follow-up, review request, replenishment.

Order events

EventTrigger
ecommerce.order.createdNew order placed
ecommerce.order.fulfilledOrder shipped
ecommerce.order.cancelledOrder cancelled
ecommerce.order.refundedRefund processed
ecommerce.order.status_changedAny status change

Refunds

Refund status and the refunded amount sync from Shopify and WooCommerce (and can be sent by a custom integration via totalRefunded on the Orders API). Every revenue figure on the page - and in attribution - is net of refunds: a partial refund reduces the order's net revenue, and a fully-refunded order contributes nothing to its campaign's credit.

Next steps