Personalize Klaviyo preorder emails and SMS with variables
The order, customer, product, and shipping details STOQ sends with each preorder email and SMS event, and how to use them in your Klaviyo template.
Last updated
When you send preorder notifications through Klaviyo, STOQ passes order, customer, product, and shipping details as properties on the preorder event. This is the full reference of what’s available, so you can personalize your Klaviyo flow’s email or SMS beyond the basics.
Email and SMS events carry different properties, so use the table for the channel your flow sends.
Before you begin
Section titled “Before you begin”| Requirement | Detail |
|---|---|
| Preorders routed through Klaviyo | This applies once you’ve connected Klaviyo and set up the preorder flows. See Send preorder notifications through Klaviyo. |
| A verified flow | Each preorder notification has its own Klaviyo metric and flow. Email uses Preorder confirmed (STOQ), Preorder shipping update (STOQ), and Preorder payment failed (STOQ). SMS uses Preorder SMS confirmed (STOQ). Open the flow’s action in your Klaviyo dashboard to edit its template. |
Insert a variable
Section titled “Insert a variable”-
Open the flow template in Klaviyo
In your Klaviyo dashboard, open the flow for the preorder notification you want, then open its Email (or SMS) action to edit the template.


-
Add the variable to a block
Click into a text block and type the variable using its property name from the tables below, for example
{{ event.order_name }}. Property names use underscores, not dots:event.order_name, notevent.order.name.
Email variables
Section titled “Email variables”These are sent with Preorder confirmed (STOQ), Preorder shipping update (STOQ), and Preorder payment failed (STOQ).
Order and customer
Section titled “Order and customer”| Variable | What it is |
|---|---|
{{ event.order_name }} |
The order name, like #1001 |
{{ event.order_id }} |
The Shopify order ID |
{{ event.customer_name }} |
The customer’s full name |
{{ event.customer_email }} |
The customer’s email address |
{{ event.customer_locale }} |
The customer’s locale code, like en |
{{ event.customer_country }} |
The customer’s country code, like US |
{{ event.customer_country_name }} |
The customer’s country name, like United States |
| Variable | What it is |
|---|---|
{{ event.shop_name }} |
Your store name, as set for STOQ’s emails |
{{ event.shop_logo_url }} |
Your logo from STOQ’s email settings |
Email events don’t include the customer’s first or last name separately, the order number, or the shop domain. Those are only sent with SMS events.
Products
Section titled “Products”| Variable | What it is |
|---|---|
{{ event.price }} |
The price the customer paid for the first preordered product, like 29.99 |
{{ event.currency }} |
The order’s currency code, like USD |
event.products |
A list of every preordered product in the order, for looping (fields below) |
To list each product:
{% for product in event.products %} {{ product.title }}: {{ product.shipping_text }}{% endfor %}Each product in event.products has:
| Field | What it is |
|---|---|
title |
The product and variant title, like “Floral Shirt - S” |
product_title |
The product title |
variant_title |
The variant title, like “S” |
image_url |
The variant’s image |
product_handle |
The product’s handle |
product_id, variant_id |
The Shopify product and variant IDs |
price, currency |
The price the customer paid for this product, and the currency |
selling_plan_name |
The name of the preorder offer |
selling_plan_description |
The offer’s preorder message, if it’s turned on |
shipping_text |
The product’s shipping message, when the offer shows it |
show_shipping |
true when the offer shows a shipping message for this product |
batch, batch_position, batch_ship_text |
The batch name, its position, and its shipping text, for offers that use batches |
The shipping and batch fields are blank when the offer doesn’t use them. Email events don’t include first_product, products_count, other_count, or shipping_timeline.
| Variable | What it is |
|---|---|
{{ event.order_link }} |
The order in the customer’s account. In payment emails, the link to complete payment. |
{{ event.cancel_link }} |
The page where the customer can cancel the preorder, if you let customers cancel preorders |
{{ event.unsubscribe_link }} |
The unsubscribe link |
Email content
Section titled “Email content”These carry the text from STOQ’s own template for this notification, so a Klaviyo template can reuse it.
| Variable | What it is |
|---|---|
{{ event.email_subject }} |
The subject line |
{{ event.email_header }} |
The heading |
{{ event.email_description }} |
The body text |
{{ event.email_button_text }} |
The button text |
{{ event.email_type }} |
Which notification this is: shipping_update, payment_collection_failed, or payment_collection_url, or default for the confirmation |
{{ event.shipping_update }} |
true for a shipping update |
{{ event.payment_collection }} |
true for a payment email |
SMS variables
Section titled “SMS variables”These are sent with Preorder SMS confirmed (STOQ).
| Variable | What it is |
|---|---|
{{ event.order_name }} |
The order name, like #1001 |
{{ event.order_number }} |
The order number |
{{ event.order_id }} |
The Shopify order ID |
{{ event.customer_name }} |
The customer’s full name |
{{ event.customer_first_name }} |
The customer’s first name |
{{ event.customer_last_name }} |
The customer’s last name |
{{ event.customer_phone }} |
The customer’s phone number |
{{ event.customer_locale }} |
The customer’s locale code, like en |
{{ event.customer_country }} |
The customer’s country code, like US |
{{ event.customer_country_name }} |
The customer’s country name, like United States |
{{ event.shop_name }} |
Your store’s name |
{{ event.shop_domain }} |
Your store’s domain |
{{ event.products }} |
All preordered product titles as one comma-separated string |
{{ event.first_product }} |
The first preordered product’s title |
{{ event.products_count }} |
How many preordered products are in the order |
{{ event.other_count }} |
The count beyond the first product, for wording like “and 2 others” |
{{ event.price }} |
The price the customer paid for the first preordered product |
{{ event.currency }} |
The order’s currency code, like USD |
{{ event.shipping_timeline }} |
The first product’s shipping timeline, like “As soon as possible” or a date |
event.products_data |
A list of each product, for looping |
Each item in event.products_data has title, product_title, variant_title, image_url, product_handle, product_id, variant_id, price, and currency.
In SMS events event.products is a text string, while in email events it’s a list.
Check your setup
Section titled “Check your setup”In your flow’s action, use Klaviyo’s preview or send yourself a test to confirm each variable renders with real data instead of literal text. If a variable is blank, check that its name is in the table for that channel and is spelled exactly the same.
Why is a variable showing up blank?
Usually the name doesn’t match. Use underscores (event.customer_name), not dots (event.customer.name), and check the variable is in the table for your channel. For example, event.first_product and event.shipping_timeline are only sent with SMS events.
How do I list every product in a multi-item preorder?
In email, loop over event.products. In SMS, use event.products for a comma-separated string of titles, or loop over event.products_data.
How do I show the shipping date in an email?
Use each product’s shipping_text inside the event.products loop. event.shipping_timeline is only sent with SMS events.
Do these work in the subject line too?
Yes. Event properties work in the subject line, preview text, and body of the flow’s email action.
Are these the same as STOQ's built-in preorder template variables?
No. STOQ’s built-in editor uses its own variable names. Klaviyo templates read the event properties in the tables above, with the event. prefix. See Send preorder confirmation and update emails.
Related guides
Section titled “Related guides”Thanks for letting us know.
Still stuck? Ask Quinn or chat with support