Emergency situation

In case of emergencies or breakdowns, you can send an SMS to our emergency hotline

On-call phone (SMS only)

+45 29 70 15 95

Send an SMS with the following information:

  • Your name and webshop
  • Description of the problem
  • Your callback phone number

Notes: This service is only for critical situations where your webshop is down or has serious problems. For regular support, please use our normal support channels.

Email templates in your theme

Overview of all email templates in Shoporama themes. Learn what each template does, when it's sent, and what variables you can use to customize your emails.

Reading time: approx. {eight} minutes
Shopejer Developer

Shoporama themes include a number of email templates that control the automated emails your online store sends. All templates are located in the `templates/mails/` folder within your theme and use Smarty as the template language.

Shoporama’s standard Smarty 4 themes (Delaware, DelawareDK, Alaska2, California, Montana, Washington) provide email templates, but not all themes include all templates. If a template is missing from your theme, you can copy it from one of the other default themes.

Shoporamas kodeeditor i admin med MBN-Delaware/templates/mails/after_purchase.html åben og Smarty-koden vist i højre panel
Open the code editor under Design with after_purchase.html open. The left column filters the theme’s files, and the right panel displays the Smarty code for the email template.

Tip

You can set the subject line for the order confirmation and the order shipped email under Webstore → General in the Orders tab, without editing the templates. In the Delaware and DelawareDK themes, you can also edit the subject and text for individual emails under Design → Theme Settings.

Preview and Send a Test Email

Before editing your template, or to see how an email will look after your changes, you can preview and send test emails directly from the admin panel under Webshop → Email Test.

  • Select a template from the left column (e.g., invoice.html or basket_mail.html) to view the email with random test data in a preview
  • Enter an email address and click " Send Test Email " to receive the email in your own inbox
  • Reload the page to get new random data—such as a different order or a different customer—so you can verify that the layout remains consistent regardless of the content

If you want to translate or modify the built-in text in the email, you’ll find it under Design → Texts. Search the Mail section to find the strings that the template uses via <{t section="Mail"}>.

Order-related emails

TemplateWhen is it sent?Key variables
invoice.htmlOrder confirmation. Sent immediately after the customer has placed an order$order, $webshop, $webshop->getCompany()
order_sent.htmlWhen the order status changes to "Shipped," including track & trace$order, $order->getTrackingUrl()
order_ready_for_pickup.htmlWhen the order is ready for pickup$order, $pickup_name, $pickup_address
order_picked_up.htmlWhen the order has been picked up$order, $webshop->getCompany()
order_credit.htmlWhen a credit memo is created$order, $order->getPublicUrl()
payment_mail.htmlPayment link. Sent when the order is pending payment$order, $payment_url
return_label.htmlWhen a return label is generated (PDF attached)$order
return_received.htmlWhen returned items are received$order, $order_return
invoice_dropshipping.htmlSent to the supplier for dropshipping orders$order, $webshop

Marketing emails

TemplateWhen is it sent?Key variables
basket_mail.htmlAbandoned cart email. Sent automatically X hours after the customer abandons the cart$basket, $basket_url
after_purchase.htmlFollow-up email with product recommendations. Sent X hours after purchase, provided the order has been paid for and shipped by that time$order, $webshop->getAfterPurchase($products)
product_review_mail.htmlRequest for a product review. Sent X hours after the order is marked as Shipped$order, $order->getPublicUrl('product_review')

Inventory emails

TemplateWhen is it sent?Key variables
in_stock_mail.htmlWhen a sold-out product becomes available again (the customer has subscribed)$product, $variant_name
out_of_stock_mail.htmlWhen a product goes out of stock (sent to the store owner)$product

Customer emails

TemplateWhen is it sent?Key variables
user-welcome-mail.htmlWhen a new customer account is created$customer, $customer->getTokenUrl()
user-reset-password-mail.htmlWhen the customer requests a new password$customer, $customer->getTokenUrl()
user-points-expires-mail.htmlWhen the customer's loyalty points are about to expire$customer, $points_to_expire, $points_expire_date

Shared include files

The templates use shared includes for layout and reusable blocks:

  • email.wrapper.start.html / email.wrapper.end.html: HTML wrapper with logo and footer
  • email.order.details.html: Billing and shipping addresses
  • email.order.products.html: Product list with images, SKUs, and prices
  • email.order.recommendations.html: Product recommendations
  • email.basket.products.html: Cart items for abandoned cart emails
  • email.order.terms.html: Terms of Service and Privacy Policy

Customization without editing templates

Some settings can be customized directly in the admin panel:

  • Subject line for order confirmation/invoice and for the order shipped email: Webstore → General, the Orders tab.
  • When emails are sent, e.g., post-purchase emails and notification emails: Webshop → General, the Emails tab.
  • Subject and text for each email (Delaware and DelawareDK only): Design → Theme Settings, the Emails section (in Delaware Emails).
  • Logo: Delaware and DelawareDK use the Logo URL field under Design → Theme Settings. The other built-in themes use the logo from Design → Logo & Terms.

Global variables

You can use these variables in all email templates:

$webshop->getName()                   The name of the online store
$webshop->getUrl()                    The URL of the online store
$webshop->getLogo()                   The logo from Design → Logo & Terms
$webshop->getCompany()->getName()     Company name (also getAddress(), getZipcode(),
                                      getCity(), getPhone(), and getEmail())

In Delaware and DelawareDK, the templates retrieve company information, currency, separators, and the logo from the theme settings. In the other themes, these variables are empty:

$settings.company.name          Company name
$settings.company.phone         Phone number
$settings.company.email         Email
$settings.company.address       Address
$settings.company.zipcode       ZIP code
$settings.company.city          City
$settings.company.vat           Business registration number

$settings.currency.display      Currency symbol (e.g., "kr.")
$settings.general.thousand      Thousands separator
$settings.general.decimal       Decimal separator

$settings.theme.logo_url        URL to the company logo

Customization Tips

  • Use UTM codes on links in your emails so you can measure their effectiveness in Google Analytics
  • You can use Smarty logic for dynamic content; for example, write “Have a great weekend” on Fridays using <{if $smarty.now|date_format:'%u' == 5}>
  • Always start by copying templates from a standard theme. They already contain responsive HTML and all necessary variables
  • Test your emails primarily via Webshop → Email Test, where you can preview and send a test email with a single click. As a backup, you can always place a real test order and go through the entire process if you want to test the full interaction with the payment gateway and shipping provider

Frequently Asked Questions

How can I see what an email looks like without placing a real order?

Go to Webshop → Email Test, select the desired template in the left column, and view the email directly in the preview. You can also send it to your own inbox to see how it looks in a real email program.

Can I translate the text in the emails without editing the template?

Yes. The built-in text is wrapped in <{t section="Mail"}> and can be translated under Design → Texts in the Mail section. This is the recommended way to change the wording.

What test data is used when I preview an email?

Shoporama selects random data from your online store, such as an existing order or customer. If you reload the page, you’ll see a new random combination. This allows you to check whether the layout works regardless of the number of items, the length of product names, and so on.

Why aren’t my customers receiving a specific email?

The email is only sent if the template exists in your theme. If it’s missing, you can copy it from another default theme and place it in the `templates/mails/` folder of your own theme. Some emails also need to be enabled under Webshop → General in the Emails tab.

Do I still need to place a test order if I have Mail Test?

For daily checks and previews, Mail Test is the fastest option. If you want to test the full workflow—including the payment gateway, shipping setup, and status changes—you can place a real test order. The two methods complement each other.

Can I send a test email to a colleague or a customer?

Yes. Just enter the desired email address in the field. The test email feature has a reasonable rate limit, so it cannot be misused for mass mailings.

Do you need help customizing your email templates? Contact us at support@shoporama.dk.