Spree Admin SDK
import { createAdminClient } from '@spree/admin-sdk'
const client = createAdminClient({
baseUrl: 'https://your-store.com',
secretKey: 'sk_xxx',
})
const templates = await client.emailTemplates.list()spree api get /email_templates{
"data": [
{
"id": "spree.order_mailer.confirm_email",
"key": "spree/order_mailer/confirm_email",
"subject": "Order {{ order.number }} confirmed",
"body": "<mj-section><mj-column><mj-text>Thanks for your order, {{ order.customer_name }}!</mj-text></mj-column></mj-section>\n",
"language": "any",
"customized_languages": [],
"kind": "email",
"customized": false,
"published_at": null,
"default_subject": "Order {{ order.number }} confirmed",
"default_body": "<mj-section><mj-column><mj-text>Thanks for your order, {{ order.customer_name }}!</mj-text></mj-column></mj-section>\n",
"published_language": null,
"default_changed": false,
"base_subject": null,
"base_body": null,
"draft": null
},
{
"id": "layouts.spree.base_mailer",
"key": "layouts/spree/base_mailer",
"subject": null,
"body": "{% assign brand = store.branding %}<mjml lang=\"{{ locale }}\">\n <mj-head>\n <mj-title>{{ subject }}</mj-title>\n {% if brand.font_url %}<mj-font name=\"{{ brand.font_family | split: ',' | first }}\" href=\"{{ brand.font_url }}\" />{% endif %}\n <mj-attributes>\n <mj-all font-family=\"{{ brand.font_family }}\" />\n <mj-section padding=\"0\" />\n <mj-column padding=\"0\" />\n <mj-text padding=\"0\" color=\"{{ brand.text_color }}\" font-size=\"14px\" line-height=\"1.6\" align=\"center\" />\n <mj-button background-color=\"{{ brand.button_color }}\" border=\"{{ brand.button_border }}\" border-radius=\"8px\" color=\"{{ brand.button_text_color }}\" font-size=\"15px\" font-weight=\"500\" line-height=\"1.6\" inner-padding=\"12px 20px\" padding=\"32px 0 0\" />\n <mj-table padding=\"0\" color=\"{{ brand.text_color }}\" font-size=\"14px\" line-height=\"1.6\" />\n <mj-class name=\"heading\" font-family=\"{{ brand.heading_font_family }}\" font-size=\"40px\" font-weight=\"700\" line-height=\"1.2\" letter-spacing=\"-0.8px\" color=\"{{ brand.heading_color }}\" css-class=\"heading\" />\n <mj-class name=\"greeting\" padding=\"24px 0 0\" font-size=\"15px\" font-weight=\"500\" color=\"{{ brand.heading_color }}\" />\n <mj-class name=\"lead\" padding=\"12px 0 0\" />\n <mj-class name=\"note\" padding=\"24px 0 0\" font-size=\"13px\" css-class=\"note\" />\n <mj-class name=\"section-heading\" padding=\"48px 0 16px\" font-family=\"{{ brand.heading_font_family }}\" font-size=\"16px\" font-weight=\"500\" letter-spacing=\"-0.16px\" align=\"left\" />\n <mj-class name=\"body\" padding=\"16px 0 0\" align=\"left\" />\n <mj-class name=\"footer\" padding=\"12px 0 0\" font-size=\"11px\" line-height=\"1.5\" />\n </mj-attributes>\n <mj-style>\n {% if brand.font == 'inter' %}\n @font-face { font-family: \"Geist\"; font-style: normal; font-weight: 500 700; src: url(\"https://fonts.gstatic.com/s/geist/v4/gyByhwUxId8gMEwcGFU.woff2\") format(\"woff2\"); }\n @font-face { font-family: \"Inter\"; font-style: normal; font-weight: 400 450; src: url(\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfMZg.ttf\") format(\"truetype\"); }\n @font-face { font-family: \"Inter\"; font-style: normal; font-weight: 500; src: url(\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fMZg.ttf\") format(\"truetype\"); }\n @font-face { font-family: \"Inter\"; font-style: normal; font-weight: 600; src: url(\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYMZg.ttf\") format(\"truetype\"); }\n {% endif %}\n a { color: {{ brand.link_color }}; }\n .hero > table { max-width: 420px; margin: 0 auto; }\n .note a { color: {{ brand.text_color }}; word-break: break-all; }\n .footer a { color: {{ brand.text_color }}; }\n .item { width: 100%; background-color: #F0F0F0; border-radius: 16px; margin: 0 0 8px; }\n .item_image { padding: 8px; width: 96px; }\n .item_thumb { display: block; width: 80px; height: auto; border-radius: 12px; }\n .item_thumb_placeholder { width: 80px; height: 80px; background-color: #E4E4E4; border-radius: 12px; }\n .item_info { padding: 8px 16px 8px 8px; }\n .item_name { font-size: 15px; line-height: 1.5; font-weight: 500; color: {{ brand.heading_color }}; text-decoration: none; }\n .item_meta { margin: 2px 0 0; font-size: 13px; line-height: 1.5; color: {{ brand.text_color }}; }\n .item_amount { padding: 8px 16px 8px 8px; text-align: right; white-space: nowrap; }\n .item_qty { margin: 0; font-size: 13px; line-height: 1.5; color: {{ brand.text_color }}; }\n .item_price { margin: 2px 0 0; font-size: 15px; line-height: 1.5; font-weight: 500; color: {{ brand.heading_color }}; }\n .summary td { padding: 6px 0; font-size: 14px; line-height: 1.6; color: {{ brand.text_color }}; }\n .summary_value { font-size: 15px; font-weight: 500; text-align: right; white-space: nowrap; color: {{ brand.heading_color }}; }\n .summary_sub { display: block; font-size: 13px; line-height: 1.5; }\n .summary_total td { padding: 14px 0 0; border-top: 1px solid #E8E9E9; font-weight: 500; color: {{ brand.heading_color }}; }\n .summary_total .summary_value { font-weight: 600; }\n .mailer_hero h1 { margin: 0; font-family: {{ brand.heading_font_family }}; font-size: 40px; line-height: 1.2; letter-spacing: -0.8px; font-weight: 700; color: {{ brand.heading_color }}; }\n .mailer_hero p { margin: 12px 0 0; }\n .mailer_hero .greeting { margin-top: 24px; font-size: 15px; font-weight: 500; color: {{ brand.heading_color }}; }\n .mailer_hero .sub { margin-top: 24px; font-size: 13px; }\n @media only screen and (max-width: 600px) {\n .heading div { font-size: 32px !important; letter-spacing: -0.64px !important; }\n }\n </mj-style>\n </mj-head>\n <mj-body background-color=\"{{ brand.background_color }}\" width=\"640px\">\n <mj-wrapper background-color=\"{{ brand.card_color }}\" padding=\"56px 24px\">\n <mj-section padding=\"0 0 32px\">\n <mj-column>\n {% if store.logo_url and store.logo_width %}\n <mj-image src=\"{{ store.logo_url }}\" href=\"{{ store.url }}\" alt=\"{{ store.name }}\" width=\"{{ store.logo_width }}px\" height=\"32px\" padding=\"0\" />\n {% elsif store.logo_url %}\n <mj-text><a href=\"{{ store.url }}\"><img src=\"{{ store.logo_url }}\" alt=\"{{ store.name }}\" height=\"32\" style=\"height: 32px; width: auto; border: 0;\" /></a></mj-text>\n {% else %}\n <mj-text font-size=\"22px\" font-weight=\"700\" color=\"{{ brand.heading_color }}\" text-transform=\"uppercase\"><a href=\"{{ store.url }}\" style=\"color: {{ brand.heading_color }}; text-decoration: none;\">{{ store.name }}</a></mj-text>\n {% endif %}\n </mj-column>\n </mj-section>\n {{ content_for_layout }}\n </mj-wrapper>\n <mj-section padding=\"64px 24px\">\n <mj-column>\n <mj-text font-size=\"13px\" line-height=\"1.5\" css-class=\"footer\"><a href=\"{{ store.url }}\" style=\"font-weight: 500; text-decoration: none;\">{{ store.name }}</a></mj-text>\n {% if store.address != blank %}<mj-text mj-class=\"footer\">{{ store.address }}</mj-text>{% endif %}\n {% if store.support_email != blank %}<mj-text mj-class=\"footer\" css-class=\"footer\"><a href=\"mailto:{{ store.support_email }}\">{{ store.support_email }}</a></mj-text>{% endif %}\n <mj-text mj-class=\"footer\" padding=\"20px 0 0\">© {{ 'now' | date: '%Y' }} {{ store.name }}</mj-text>\n </mj-column>\n </mj-section>\n </mj-body>\n</mjml>\n",
"language": "any",
"customized_languages": [],
"kind": "layout",
"customized": false,
"published_at": null,
"default_subject": null,
"default_body": "{% assign brand = store.branding %}<mjml lang=\"{{ locale }}\">\n <mj-head>\n <mj-title>{{ subject }}</mj-title>\n {% if brand.font_url %}<mj-font name=\"{{ brand.font_family | split: ',' | first }}\" href=\"{{ brand.font_url }}\" />{% endif %}\n <mj-attributes>\n <mj-all font-family=\"{{ brand.font_family }}\" />\n <mj-section padding=\"0\" />\n <mj-column padding=\"0\" />\n <mj-text padding=\"0\" color=\"{{ brand.text_color }}\" font-size=\"14px\" line-height=\"1.6\" align=\"center\" />\n <mj-button background-color=\"{{ brand.button_color }}\" border=\"{{ brand.button_border }}\" border-radius=\"8px\" color=\"{{ brand.button_text_color }}\" font-size=\"15px\" font-weight=\"500\" line-height=\"1.6\" inner-padding=\"12px 20px\" padding=\"32px 0 0\" />\n <mj-table padding=\"0\" color=\"{{ brand.text_color }}\" font-size=\"14px\" line-height=\"1.6\" />\n <mj-class name=\"heading\" font-family=\"{{ brand.heading_font_family }}\" font-size=\"40px\" font-weight=\"700\" line-height=\"1.2\" letter-spacing=\"-0.8px\" color=\"{{ brand.heading_color }}\" css-class=\"heading\" />\n <mj-class name=\"greeting\" padding=\"24px 0 0\" font-size=\"15px\" font-weight=\"500\" color=\"{{ brand.heading_color }}\" />\n <mj-class name=\"lead\" padding=\"12px 0 0\" />\n <mj-class name=\"note\" padding=\"24px 0 0\" font-size=\"13px\" css-class=\"note\" />\n <mj-class name=\"section-heading\" padding=\"48px 0 16px\" font-family=\"{{ brand.heading_font_family }}\" font-size=\"16px\" font-weight=\"500\" letter-spacing=\"-0.16px\" align=\"left\" />\n <mj-class name=\"body\" padding=\"16px 0 0\" align=\"left\" />\n <mj-class name=\"footer\" padding=\"12px 0 0\" font-size=\"11px\" line-height=\"1.5\" />\n </mj-attributes>\n <mj-style>\n {% if brand.font == 'inter' %}\n @font-face { font-family: \"Geist\"; font-style: normal; font-weight: 500 700; src: url(\"https://fonts.gstatic.com/s/geist/v4/gyByhwUxId8gMEwcGFU.woff2\") format(\"woff2\"); }\n @font-face { font-family: \"Inter\"; font-style: normal; font-weight: 400 450; src: url(\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfMZg.ttf\") format(\"truetype\"); }\n @font-face { font-family: \"Inter\"; font-style: normal; font-weight: 500; src: url(\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fMZg.ttf\") format(\"truetype\"); }\n @font-face { font-family: \"Inter\"; font-style: normal; font-weight: 600; src: url(\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYMZg.ttf\") format(\"truetype\"); }\n {% endif %}\n a { color: {{ brand.link_color }}; }\n .hero > table { max-width: 420px; margin: 0 auto; }\n .note a { color: {{ brand.text_color }}; word-break: break-all; }\n .footer a { color: {{ brand.text_color }}; }\n .item { width: 100%; background-color: #F0F0F0; border-radius: 16px; margin: 0 0 8px; }\n .item_image { padding: 8px; width: 96px; }\n .item_thumb { display: block; width: 80px; height: auto; border-radius: 12px; }\n .item_thumb_placeholder { width: 80px; height: 80px; background-color: #E4E4E4; border-radius: 12px; }\n .item_info { padding: 8px 16px 8px 8px; }\n .item_name { font-size: 15px; line-height: 1.5; font-weight: 500; color: {{ brand.heading_color }}; text-decoration: none; }\n .item_meta { margin: 2px 0 0; font-size: 13px; line-height: 1.5; color: {{ brand.text_color }}; }\n .item_amount { padding: 8px 16px 8px 8px; text-align: right; white-space: nowrap; }\n .item_qty { margin: 0; font-size: 13px; line-height: 1.5; color: {{ brand.text_color }}; }\n .item_price { margin: 2px 0 0; font-size: 15px; line-height: 1.5; font-weight: 500; color: {{ brand.heading_color }}; }\n .summary td { padding: 6px 0; font-size: 14px; line-height: 1.6; color: {{ brand.text_color }}; }\n .summary_value { font-size: 15px; font-weight: 500; text-align: right; white-space: nowrap; color: {{ brand.heading_color }}; }\n .summary_sub { display: block; font-size: 13px; line-height: 1.5; }\n .summary_total td { padding: 14px 0 0; border-top: 1px solid #E8E9E9; font-weight: 500; color: {{ brand.heading_color }}; }\n .summary_total .summary_value { font-weight: 600; }\n .mailer_hero h1 { margin: 0; font-family: {{ brand.heading_font_family }}; font-size: 40px; line-height: 1.2; letter-spacing: -0.8px; font-weight: 700; color: {{ brand.heading_color }}; }\n .mailer_hero p { margin: 12px 0 0; }\n .mailer_hero .greeting { margin-top: 24px; font-size: 15px; font-weight: 500; color: {{ brand.heading_color }}; }\n .mailer_hero .sub { margin-top: 24px; font-size: 13px; }\n @media only screen and (max-width: 600px) {\n .heading div { font-size: 32px !important; letter-spacing: -0.64px !important; }\n }\n </mj-style>\n </mj-head>\n <mj-body background-color=\"{{ brand.background_color }}\" width=\"640px\">\n <mj-wrapper background-color=\"{{ brand.card_color }}\" padding=\"56px 24px\">\n <mj-section padding=\"0 0 32px\">\n <mj-column>\n {% if store.logo_url and store.logo_width %}\n <mj-image src=\"{{ store.logo_url }}\" href=\"{{ store.url }}\" alt=\"{{ store.name }}\" width=\"{{ store.logo_width }}px\" height=\"32px\" padding=\"0\" />\n {% elsif store.logo_url %}\n <mj-text><a href=\"{{ store.url }}\"><img src=\"{{ store.logo_url }}\" alt=\"{{ store.name }}\" height=\"32\" style=\"height: 32px; width: auto; border: 0;\" /></a></mj-text>\n {% else %}\n <mj-text font-size=\"22px\" font-weight=\"700\" color=\"{{ brand.heading_color }}\" text-transform=\"uppercase\"><a href=\"{{ store.url }}\" style=\"color: {{ brand.heading_color }}; text-decoration: none;\">{{ store.name }}</a></mj-text>\n {% endif %}\n </mj-column>\n </mj-section>\n {{ content_for_layout }}\n </mj-wrapper>\n <mj-section padding=\"64px 24px\">\n <mj-column>\n <mj-text font-size=\"13px\" line-height=\"1.5\" css-class=\"footer\"><a href=\"{{ store.url }}\" style=\"font-weight: 500; text-decoration: none;\">{{ store.name }}</a></mj-text>\n {% if store.address != blank %}<mj-text mj-class=\"footer\">{{ store.address }}</mj-text>{% endif %}\n {% if store.support_email != blank %}<mj-text mj-class=\"footer\" css-class=\"footer\"><a href=\"mailto:{{ store.support_email }}\">{{ store.support_email }}</a></mj-text>{% endif %}\n <mj-text mj-class=\"footer\" padding=\"20px 0 0\">© {{ 'now' | date: '%Y' }} {{ store.name }}</mj-text>\n </mj-column>\n </mj-section>\n </mj-body>\n</mjml>\n",
"published_language": null,
"default_changed": false,
"base_subject": null,
"base_body": null,
"draft": null
}
],
"meta": {}
}List email templates
Returns every email template merchants may edit: the emails customers receive, the email layout and the shared partials. Each shows what customers receive now (the store’s published version, else Spree’s default) and any draft in progress. Staff emails are not editable.
Required scope: read_email_templates (for API-key authentication).
GET
/
api
/
v3
/
admin
/
email_templates
Spree Admin SDK
import { createAdminClient } from '@spree/admin-sdk'
const client = createAdminClient({
baseUrl: 'https://your-store.com',
secretKey: 'sk_xxx',
})
const templates = await client.emailTemplates.list()spree api get /email_templates{
"data": [
{
"id": "spree.order_mailer.confirm_email",
"key": "spree/order_mailer/confirm_email",
"subject": "Order {{ order.number }} confirmed",
"body": "<mj-section><mj-column><mj-text>Thanks for your order, {{ order.customer_name }}!</mj-text></mj-column></mj-section>\n",
"language": "any",
"customized_languages": [],
"kind": "email",
"customized": false,
"published_at": null,
"default_subject": "Order {{ order.number }} confirmed",
"default_body": "<mj-section><mj-column><mj-text>Thanks for your order, {{ order.customer_name }}!</mj-text></mj-column></mj-section>\n",
"published_language": null,
"default_changed": false,
"base_subject": null,
"base_body": null,
"draft": null
},
{
"id": "layouts.spree.base_mailer",
"key": "layouts/spree/base_mailer",
"subject": null,
"body": "{% assign brand = store.branding %}<mjml lang=\"{{ locale }}\">\n <mj-head>\n <mj-title>{{ subject }}</mj-title>\n {% if brand.font_url %}<mj-font name=\"{{ brand.font_family | split: ',' | first }}\" href=\"{{ brand.font_url }}\" />{% endif %}\n <mj-attributes>\n <mj-all font-family=\"{{ brand.font_family }}\" />\n <mj-section padding=\"0\" />\n <mj-column padding=\"0\" />\n <mj-text padding=\"0\" color=\"{{ brand.text_color }}\" font-size=\"14px\" line-height=\"1.6\" align=\"center\" />\n <mj-button background-color=\"{{ brand.button_color }}\" border=\"{{ brand.button_border }}\" border-radius=\"8px\" color=\"{{ brand.button_text_color }}\" font-size=\"15px\" font-weight=\"500\" line-height=\"1.6\" inner-padding=\"12px 20px\" padding=\"32px 0 0\" />\n <mj-table padding=\"0\" color=\"{{ brand.text_color }}\" font-size=\"14px\" line-height=\"1.6\" />\n <mj-class name=\"heading\" font-family=\"{{ brand.heading_font_family }}\" font-size=\"40px\" font-weight=\"700\" line-height=\"1.2\" letter-spacing=\"-0.8px\" color=\"{{ brand.heading_color }}\" css-class=\"heading\" />\n <mj-class name=\"greeting\" padding=\"24px 0 0\" font-size=\"15px\" font-weight=\"500\" color=\"{{ brand.heading_color }}\" />\n <mj-class name=\"lead\" padding=\"12px 0 0\" />\n <mj-class name=\"note\" padding=\"24px 0 0\" font-size=\"13px\" css-class=\"note\" />\n <mj-class name=\"section-heading\" padding=\"48px 0 16px\" font-family=\"{{ brand.heading_font_family }}\" font-size=\"16px\" font-weight=\"500\" letter-spacing=\"-0.16px\" align=\"left\" />\n <mj-class name=\"body\" padding=\"16px 0 0\" align=\"left\" />\n <mj-class name=\"footer\" padding=\"12px 0 0\" font-size=\"11px\" line-height=\"1.5\" />\n </mj-attributes>\n <mj-style>\n {% if brand.font == 'inter' %}\n @font-face { font-family: \"Geist\"; font-style: normal; font-weight: 500 700; src: url(\"https://fonts.gstatic.com/s/geist/v4/gyByhwUxId8gMEwcGFU.woff2\") format(\"woff2\"); }\n @font-face { font-family: \"Inter\"; font-style: normal; font-weight: 400 450; src: url(\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfMZg.ttf\") format(\"truetype\"); }\n @font-face { font-family: \"Inter\"; font-style: normal; font-weight: 500; src: url(\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fMZg.ttf\") format(\"truetype\"); }\n @font-face { font-family: \"Inter\"; font-style: normal; font-weight: 600; src: url(\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYMZg.ttf\") format(\"truetype\"); }\n {% endif %}\n a { color: {{ brand.link_color }}; }\n .hero > table { max-width: 420px; margin: 0 auto; }\n .note a { color: {{ brand.text_color }}; word-break: break-all; }\n .footer a { color: {{ brand.text_color }}; }\n .item { width: 100%; background-color: #F0F0F0; border-radius: 16px; margin: 0 0 8px; }\n .item_image { padding: 8px; width: 96px; }\n .item_thumb { display: block; width: 80px; height: auto; border-radius: 12px; }\n .item_thumb_placeholder { width: 80px; height: 80px; background-color: #E4E4E4; border-radius: 12px; }\n .item_info { padding: 8px 16px 8px 8px; }\n .item_name { font-size: 15px; line-height: 1.5; font-weight: 500; color: {{ brand.heading_color }}; text-decoration: none; }\n .item_meta { margin: 2px 0 0; font-size: 13px; line-height: 1.5; color: {{ brand.text_color }}; }\n .item_amount { padding: 8px 16px 8px 8px; text-align: right; white-space: nowrap; }\n .item_qty { margin: 0; font-size: 13px; line-height: 1.5; color: {{ brand.text_color }}; }\n .item_price { margin: 2px 0 0; font-size: 15px; line-height: 1.5; font-weight: 500; color: {{ brand.heading_color }}; }\n .summary td { padding: 6px 0; font-size: 14px; line-height: 1.6; color: {{ brand.text_color }}; }\n .summary_value { font-size: 15px; font-weight: 500; text-align: right; white-space: nowrap; color: {{ brand.heading_color }}; }\n .summary_sub { display: block; font-size: 13px; line-height: 1.5; }\n .summary_total td { padding: 14px 0 0; border-top: 1px solid #E8E9E9; font-weight: 500; color: {{ brand.heading_color }}; }\n .summary_total .summary_value { font-weight: 600; }\n .mailer_hero h1 { margin: 0; font-family: {{ brand.heading_font_family }}; font-size: 40px; line-height: 1.2; letter-spacing: -0.8px; font-weight: 700; color: {{ brand.heading_color }}; }\n .mailer_hero p { margin: 12px 0 0; }\n .mailer_hero .greeting { margin-top: 24px; font-size: 15px; font-weight: 500; color: {{ brand.heading_color }}; }\n .mailer_hero .sub { margin-top: 24px; font-size: 13px; }\n @media only screen and (max-width: 600px) {\n .heading div { font-size: 32px !important; letter-spacing: -0.64px !important; }\n }\n </mj-style>\n </mj-head>\n <mj-body background-color=\"{{ brand.background_color }}\" width=\"640px\">\n <mj-wrapper background-color=\"{{ brand.card_color }}\" padding=\"56px 24px\">\n <mj-section padding=\"0 0 32px\">\n <mj-column>\n {% if store.logo_url and store.logo_width %}\n <mj-image src=\"{{ store.logo_url }}\" href=\"{{ store.url }}\" alt=\"{{ store.name }}\" width=\"{{ store.logo_width }}px\" height=\"32px\" padding=\"0\" />\n {% elsif store.logo_url %}\n <mj-text><a href=\"{{ store.url }}\"><img src=\"{{ store.logo_url }}\" alt=\"{{ store.name }}\" height=\"32\" style=\"height: 32px; width: auto; border: 0;\" /></a></mj-text>\n {% else %}\n <mj-text font-size=\"22px\" font-weight=\"700\" color=\"{{ brand.heading_color }}\" text-transform=\"uppercase\"><a href=\"{{ store.url }}\" style=\"color: {{ brand.heading_color }}; text-decoration: none;\">{{ store.name }}</a></mj-text>\n {% endif %}\n </mj-column>\n </mj-section>\n {{ content_for_layout }}\n </mj-wrapper>\n <mj-section padding=\"64px 24px\">\n <mj-column>\n <mj-text font-size=\"13px\" line-height=\"1.5\" css-class=\"footer\"><a href=\"{{ store.url }}\" style=\"font-weight: 500; text-decoration: none;\">{{ store.name }}</a></mj-text>\n {% if store.address != blank %}<mj-text mj-class=\"footer\">{{ store.address }}</mj-text>{% endif %}\n {% if store.support_email != blank %}<mj-text mj-class=\"footer\" css-class=\"footer\"><a href=\"mailto:{{ store.support_email }}\">{{ store.support_email }}</a></mj-text>{% endif %}\n <mj-text mj-class=\"footer\" padding=\"20px 0 0\">© {{ 'now' | date: '%Y' }} {{ store.name }}</mj-text>\n </mj-column>\n </mj-section>\n </mj-body>\n</mjml>\n",
"language": "any",
"customized_languages": [],
"kind": "layout",
"customized": false,
"published_at": null,
"default_subject": null,
"default_body": "{% assign brand = store.branding %}<mjml lang=\"{{ locale }}\">\n <mj-head>\n <mj-title>{{ subject }}</mj-title>\n {% if brand.font_url %}<mj-font name=\"{{ brand.font_family | split: ',' | first }}\" href=\"{{ brand.font_url }}\" />{% endif %}\n <mj-attributes>\n <mj-all font-family=\"{{ brand.font_family }}\" />\n <mj-section padding=\"0\" />\n <mj-column padding=\"0\" />\n <mj-text padding=\"0\" color=\"{{ brand.text_color }}\" font-size=\"14px\" line-height=\"1.6\" align=\"center\" />\n <mj-button background-color=\"{{ brand.button_color }}\" border=\"{{ brand.button_border }}\" border-radius=\"8px\" color=\"{{ brand.button_text_color }}\" font-size=\"15px\" font-weight=\"500\" line-height=\"1.6\" inner-padding=\"12px 20px\" padding=\"32px 0 0\" />\n <mj-table padding=\"0\" color=\"{{ brand.text_color }}\" font-size=\"14px\" line-height=\"1.6\" />\n <mj-class name=\"heading\" font-family=\"{{ brand.heading_font_family }}\" font-size=\"40px\" font-weight=\"700\" line-height=\"1.2\" letter-spacing=\"-0.8px\" color=\"{{ brand.heading_color }}\" css-class=\"heading\" />\n <mj-class name=\"greeting\" padding=\"24px 0 0\" font-size=\"15px\" font-weight=\"500\" color=\"{{ brand.heading_color }}\" />\n <mj-class name=\"lead\" padding=\"12px 0 0\" />\n <mj-class name=\"note\" padding=\"24px 0 0\" font-size=\"13px\" css-class=\"note\" />\n <mj-class name=\"section-heading\" padding=\"48px 0 16px\" font-family=\"{{ brand.heading_font_family }}\" font-size=\"16px\" font-weight=\"500\" letter-spacing=\"-0.16px\" align=\"left\" />\n <mj-class name=\"body\" padding=\"16px 0 0\" align=\"left\" />\n <mj-class name=\"footer\" padding=\"12px 0 0\" font-size=\"11px\" line-height=\"1.5\" />\n </mj-attributes>\n <mj-style>\n {% if brand.font == 'inter' %}\n @font-face { font-family: \"Geist\"; font-style: normal; font-weight: 500 700; src: url(\"https://fonts.gstatic.com/s/geist/v4/gyByhwUxId8gMEwcGFU.woff2\") format(\"woff2\"); }\n @font-face { font-family: \"Inter\"; font-style: normal; font-weight: 400 450; src: url(\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfMZg.ttf\") format(\"truetype\"); }\n @font-face { font-family: \"Inter\"; font-style: normal; font-weight: 500; src: url(\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fMZg.ttf\") format(\"truetype\"); }\n @font-face { font-family: \"Inter\"; font-style: normal; font-weight: 600; src: url(\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYMZg.ttf\") format(\"truetype\"); }\n {% endif %}\n a { color: {{ brand.link_color }}; }\n .hero > table { max-width: 420px; margin: 0 auto; }\n .note a { color: {{ brand.text_color }}; word-break: break-all; }\n .footer a { color: {{ brand.text_color }}; }\n .item { width: 100%; background-color: #F0F0F0; border-radius: 16px; margin: 0 0 8px; }\n .item_image { padding: 8px; width: 96px; }\n .item_thumb { display: block; width: 80px; height: auto; border-radius: 12px; }\n .item_thumb_placeholder { width: 80px; height: 80px; background-color: #E4E4E4; border-radius: 12px; }\n .item_info { padding: 8px 16px 8px 8px; }\n .item_name { font-size: 15px; line-height: 1.5; font-weight: 500; color: {{ brand.heading_color }}; text-decoration: none; }\n .item_meta { margin: 2px 0 0; font-size: 13px; line-height: 1.5; color: {{ brand.text_color }}; }\n .item_amount { padding: 8px 16px 8px 8px; text-align: right; white-space: nowrap; }\n .item_qty { margin: 0; font-size: 13px; line-height: 1.5; color: {{ brand.text_color }}; }\n .item_price { margin: 2px 0 0; font-size: 15px; line-height: 1.5; font-weight: 500; color: {{ brand.heading_color }}; }\n .summary td { padding: 6px 0; font-size: 14px; line-height: 1.6; color: {{ brand.text_color }}; }\n .summary_value { font-size: 15px; font-weight: 500; text-align: right; white-space: nowrap; color: {{ brand.heading_color }}; }\n .summary_sub { display: block; font-size: 13px; line-height: 1.5; }\n .summary_total td { padding: 14px 0 0; border-top: 1px solid #E8E9E9; font-weight: 500; color: {{ brand.heading_color }}; }\n .summary_total .summary_value { font-weight: 600; }\n .mailer_hero h1 { margin: 0; font-family: {{ brand.heading_font_family }}; font-size: 40px; line-height: 1.2; letter-spacing: -0.8px; font-weight: 700; color: {{ brand.heading_color }}; }\n .mailer_hero p { margin: 12px 0 0; }\n .mailer_hero .greeting { margin-top: 24px; font-size: 15px; font-weight: 500; color: {{ brand.heading_color }}; }\n .mailer_hero .sub { margin-top: 24px; font-size: 13px; }\n @media only screen and (max-width: 600px) {\n .heading div { font-size: 32px !important; letter-spacing: -0.64px !important; }\n }\n </mj-style>\n </mj-head>\n <mj-body background-color=\"{{ brand.background_color }}\" width=\"640px\">\n <mj-wrapper background-color=\"{{ brand.card_color }}\" padding=\"56px 24px\">\n <mj-section padding=\"0 0 32px\">\n <mj-column>\n {% if store.logo_url and store.logo_width %}\n <mj-image src=\"{{ store.logo_url }}\" href=\"{{ store.url }}\" alt=\"{{ store.name }}\" width=\"{{ store.logo_width }}px\" height=\"32px\" padding=\"0\" />\n {% elsif store.logo_url %}\n <mj-text><a href=\"{{ store.url }}\"><img src=\"{{ store.logo_url }}\" alt=\"{{ store.name }}\" height=\"32\" style=\"height: 32px; width: auto; border: 0;\" /></a></mj-text>\n {% else %}\n <mj-text font-size=\"22px\" font-weight=\"700\" color=\"{{ brand.heading_color }}\" text-transform=\"uppercase\"><a href=\"{{ store.url }}\" style=\"color: {{ brand.heading_color }}; text-decoration: none;\">{{ store.name }}</a></mj-text>\n {% endif %}\n </mj-column>\n </mj-section>\n {{ content_for_layout }}\n </mj-wrapper>\n <mj-section padding=\"64px 24px\">\n <mj-column>\n <mj-text font-size=\"13px\" line-height=\"1.5\" css-class=\"footer\"><a href=\"{{ store.url }}\" style=\"font-weight: 500; text-decoration: none;\">{{ store.name }}</a></mj-text>\n {% if store.address != blank %}<mj-text mj-class=\"footer\">{{ store.address }}</mj-text>{% endif %}\n {% if store.support_email != blank %}<mj-text mj-class=\"footer\" css-class=\"footer\"><a href=\"mailto:{{ store.support_email }}\">{{ store.support_email }}</a></mj-text>{% endif %}\n <mj-text mj-class=\"footer\" padding=\"20px 0 0\">© {{ 'now' | date: '%Y' }} {{ store.name }}</mj-text>\n </mj-column>\n </mj-section>\n </mj-body>\n</mjml>\n",
"published_language": null,
"default_changed": false,
"base_subject": null,
"base_body": null,
"draft": null
}
],
"meta": {}
}Authorizations
Secret API key for admin access
JWT token for admin user authentication
Headers
Bearer token for admin authentication
Query Parameters
A language code, or any (the default) for the version every language uses
Response
200 - application/json
email templates found
Was this page helpful?
⌘I

