Introduction
Adding a testimonial section to your Shopify store can significantly boost
customer trust and conversion rates. The Dawn theme is one of Shopify’s most
popular themes due to its clean, minimalist design. However, many merchants
are unaware that they can customize their Dawn theme without the need for
third-party apps, which can often slow down their site.
Why Should You Add Testimonials to Your Shopify Store?
Testimonials are essential for building trust with new customers. They provide social proof, which shows that others have already enjoyed your products. When placed in a well-designed section on your homepage or product page, testimonials can increase your site’s credibility and boost sales.
Let’s dive into the steps for adding a testimonial section to your Shopify Dawn theme.
Step-by-Step Guide: Adding a Testimonial Section Without Apps
Step 1: Duplicate Your Dawn Theme
Before making any changes, it’s always a good idea to duplicate your current theme. This ensures you have a backup in case anything goes wrong.
- Go to Online Store > Themes.
- Find your active theme (Dawn) and click on the Actions dropdown.
- Select Duplicate.
Step 2: Create a New Section for Testimonials
Next, we’ll create a custom section for the testimonials.
- In the Shopify admin, go to Online Store > Themes.
- Click Actions > Edit code for your active theme.
- In the left sidebar, click on the Sections folder and then click Add a new section.
-
Name the new section
testimonials
.
Now, copy and paste the following code into the new
testimonials.liquid
file:
{{ 'section-multicolumn.css' | asset_url | stylesheet_tag }}
{{ 'component-slider.css' | asset_url | stylesheet_tag }}
{%- style -%}
.section-{{ section.id }}-padding {
padding-top: {{ section.settings.padding_top | times: 0.75 | round: 0 }}px;
padding-bottom: {{ section.settings.padding_bottom | times: 0.75 | round: 0 }}px;
}
@media screen and (min-width: 750px) {
.section-{{ section.id }}-padding {
padding-top: {{ section.settings.padding_top }}px;
padding-bottom: {{ section.settings.padding_bottom }}px;
}
}
.testimonial-container {
padding: 1.5rem;
}
.testimonial-card{
background-color: {{ section.settings.testomonial_color }} !important;
border-radius: 5%;
/* border: solid; */
zoom: 70%;
box-shadow: 5px 6px 3px 0px rgb(0 0 0 / 62%);
}
.testimonial-div{
background-color : {{ section.settings.div_color }};
}
.testimonial-div{
color : {{ section.settings.ring_color }};
}
.testimonial-image {
width: 100px;
height: 100px;
border-radius: 50%;
object-fit: cover;
border: solid;
}
.testimonial-header {
font-weight: bold;
color: {{ section.settings.header_color }};
}
.testimonial-subheader {
color: #666666;
}
.testimonial-rating {
color: {{ section.settings.star_color }};
}
.testimonial-description {
color: {{ section.settings.comment_color }};
line-height: 1.5;
}
{%- endstyle -%}
{%- liquid
assign columns_mobile_int = section.settings.columns_mobile | plus: 0
assign show_mobile_slider = false
if section.settings.swipe_on_mobile and section.blocks.size > columns_mobile_int
assign show_mobile_slider = true
endif
-%}
<div class="multicolumn testimonial-div ">
<div
class="page-width section-{{ section.id }}-padding isolate{% if settings.animations_reveal_on_scroll %} scroll-trigger animate--slide-in{% endif %}"
{% if settings.animations_reveal_on_scroll %}
data-cascade
{% endif %}
>
{%- unless section.settings.title == blank -%}
<div class="title-wrapper-with-link title-wrapper--self-padded-mobile title-wrapper--no-top-margin multicolumn__title">
<h2 class="title {{ section.settings.header_alignment }} inline-richtext {{ section.settings.heading_size }}">
{{ section.settings.title }}
</h2>
{%- if section.settings.button_label != blank and show_mobile_slider -%}
<a href="{{ section.settings.button_link }}" class="link underlined-link large-up-hide">
{{- section.settings.button_label | escape -}}
</a>
{%- endif -%}
</div>
{%- endunless -%}
<slider-component class="slider-mobile-gutter">
<ul
class="multicolumn-list contains-content-container grid grid--{{ section.settings.columns_mobile }}-col-tablet-down grid--{{ section.settings.columns_desktop }}-col-desktop{% if show_mobile_slider %} slider slider--tablet grid--peek{% endif %}"
id="Slider-{{ section.id }}"
role="list"
>
{%- liquid
assign highest_ratio = 0
for block in section.blocks
if block.settings.image.aspect_ratio > highest_ratio
assign highest_ratio = block.settings.image.aspect_ratio
endif
endfor
-%}
{%- for block in section.blocks -%}
{%- assign empty_column = '' -%}
{%- if block.settings.image == blank
and block.settings.title == blank
and block.settings.text == blank
and block.settings.link_label == blank
-%}
{%- assign empty_column = ' multicolumn-list__item--empty' -%}
{%- endif -%}
<li
id="Slide-{{ section.id }}-{{ forloop.index }}"
class="multicolumn-list__item grid__item{% if section.settings.swipe_on_mobile %} slider__slide{% endif %}{% if section.settings.column_alignment == 'center' %} center{% endif %}{{ empty_column }}{% if settings.animations_reveal_on_scroll %} scroll-trigger animate--slide-in{% endif %}"
{{ block.shopify_attributes }}
{% if settings.animations_reveal_on_scroll %}
data-cascade
style="--animation-order: {{ forloop.index }};"
{% endif %}
>
<div class="multicolumn-card testimonial-card content-container">
<div class="testimonial-container">
{% if block.settings.image != blank %}
<img
src="{{ block.settings.image | img_url: '200x200' }}"
alt="{{ block.settings.header }}"
class="testimonial-image"
>
{% endif %}
<div class="testimonial-header">{{ block.settings.header }}</div>
<div class="testimonial-subheader">- {{ block.settings.subheader }}</div>
<div class="testimonial-rating">
{% for i in (1..block.settings.rating) %}
★
{% endfor %}
</div>
<div class="testimonial-description">{{ block.settings.description }}</div>
</div>
</div>
</li>
{%- endfor -%}
</ul>
{%- if show_mobile_slider -%}
<div class="slider-buttons large-up-hide">
<button
type="button"
class="slider-button slider-button--prev"
name="previous"
aria-label="{{ 'general.slider.previous_slide' | t }}"
>
<span class="svg-wrapper">{{ 'icon-caret.svg' | inline_asset_content }}</span>
</button>
<div class="slider-counter caption">
<span class="slider-counter--current">1</span>
<span aria-hidden="true"> / </span>
<span class="visually-hidden">{{ 'general.slider.of' | t }}</span>
<span class="slider-counter--total">{{ section.blocks.size }}</span>
</div>
<button
type="button"
class="slider-button slider-button--next"
name="next"
aria-label="{{ 'general.slider.next_slide' | t }}"
>
<span class="svg-wrapper">{{ 'icon-caret.svg' | inline_asset_content }}</span>
</button>
</div>
{%- endif -%}
</slider-component>
<div class="center{% if show_mobile_slider %} small-hide medium-hide{% endif %}">
{%- if section.settings.button_label != blank -%}
<a
class="button button--primary"
{% if section.settings.button_link == blank %}
role="link" aria-disabled="true"
{% else %}
href="{{ section.settings.button_link }}"
{% endif %}
>
{{ section.settings.button_label | escape }}
</a>
{%- endif -%}
</div>
</div>
</div>
{%- schema -%}
{
"name": "testimonials",
"settings": [
{
"type": "inline_richtext",
"id": "title",
"default": "t:sections.multicolumn.settings.title.default",
"label": "t:sections.multicolumn.settings.title.label"
},
{
"type": "select",
"id": "heading_size",
"options": [
{
"value": "h2",
"label": "t:sections.all.heading_size.options__1.label"
},
{
"value": "h1",
"label": "t:sections.all.heading_size.options__2.label"
},
{
"value": "h0",
"label": "t:sections.all.heading_size.options__3.label"
},
{
"value": "hxl",
"label": "t:sections.all.heading_size.options__4.label"
},
{
"value": "hxxl",
"label": "t:sections.all.heading_size.options__5.label"
}
],
"default": "h1",
"label": "t:sections.all.heading_size.label"
},
{
"type": "select",
"id": "header_alignment",
"options": [
{
"value": "heading-allignment-left",
"label": "t:sections.multicolumn.settings.column_alignment.options__1.label"
},
{
"value": "heading-allignment-center",
"label": "t:sections.multicolumn.settings.column_alignment.options__2.label"
}
],
"default": "heading-allignment-left",
"label": "Header Alignment"
},
{
"type": "range",
"id": "columns_desktop",
"min": 1,
"max": 6,
"step": 1,
"default": 3,
"label": "t:sections.multicolumn.settings.columns_desktop.label"
},
{
"type": "select",
"id": "column_alignment",
"options": [
{
"value": "left",
"label": "t:sections.multicolumn.settings.column_alignment.options__1.label"
},
{
"value": "center",
"label": "t:sections.multicolumn.settings.column_alignment.options__2.label"
}
],
"default": "left",
"label": "t:sections.multicolumn.settings.column_alignment.label"
},
{
"type": "select",
"id": "background_style",
"options": [
{
"value": "none",
"label": "t:sections.multicolumn.settings.background_style.options__1.label"
},
{
"value": "primary",
"label": "t:sections.multicolumn.settings.background_style.options__2.label"
}
],
"default": "primary",
"label": "t:sections.multicolumn.settings.background_style.label"
},
{
"type": "header",
"content": "t:sections.multicolumn.settings.header_mobile.content"
},
{
"type": "select",
"id": "columns_mobile",
"options": [
{
"value": "1",
"label": "t:sections.multicolumn.settings.columns_mobile.options__1.label"
},
{
"value": "2",
"label": "t:sections.multicolumn.settings.columns_mobile.options__2.label"
}
],
"default": "1",
"label": "t:sections.multicolumn.settings.columns_mobile.label"
},
{
"type": "checkbox",
"id": "swipe_on_mobile",
"default": false,
"label": "t:sections.multicolumn.settings.swipe_on_mobile.label"
},
{
"type": "color",
"id": "star_color",
"label": "Star Color",
"default": "#FFC107"
},
{
"type": "color",
"id": "comment_color",
"label": "Comment Color",
"default": "#333333"
},
{
"type": "color",
"id": "header_color",
"label": "Header Color",
"default": "#000000"
},
{
"type": "color",
"id": "div_color",
"label": "Div Color",
"default": "#FFFFFF"
},
{
"type": "color",
"id": "ring_color",
"label": "Ring Color",
"default": "#000000"
},
{
"type": "color",
"id": "testomonial_color",
"label": "Testomonial card Color",
"default": "#FFFFFF"
},
{
"type": "header",
"content": "t:sections.all.padding.section_padding_heading"
},
{
"type": "range",
"id": "padding_top",
"min": 0,
"max": 100,
"step": 4,
"unit": "px",
"label": "t:sections.all.padding.padding_top",
"default": 36
},
{
"type": "range",
"id": "padding_bottom",
"min": 0,
"max": 100,
"step": 4,
"unit": "px",
"label": "t:sections.all.padding.padding_bottom",
"default": 36
}
],
"blocks": [
{
"type": "testimonial",
"name": "Testimonial",
"settings": [
{
"type": "image_picker",
"id": "image",
"label": "Image"
},
{
"type": "text",
"id": "header",
"label": "Header",
"default": "Lara T."
},
{
"type": "text",
"id": "subheader",
"label": "Subheader",
"default": "- Mommy Life Saver"
},
{
"type": "range",
"id": "rating",
"label": "Rating",
"min": 1,
"max": 5,
"step": 1,
"default": 5
},
{
"type": "richtext",
"id": "description",
"label": "Description",
"default": "<p>\"Postpartum life came with migraines. NUVEDA is my little miracle for quick relief so I can return to baby snuggles faster. Also... did I say that it smells DEVINE!?\"</p>"
}
]
}
],
"presets": [
{
"name": "testimonials",
"category": "Custom Content",
"blocks": [
{
"type": "testimonial"
},
{
"type": "testimonial"
},
{
"type": "testimonial"
},
{
"type": "testimonial"
}
]
}
]
}
{%- endschema -%}
Step 3: Customize the Testimonials in Shopify Admin
You can now add and customize testimonials directly from the Shopify admin:
- Go to Online Store > Themes > Customize.
- In the left-hand menu, find your new Testimonial section and add it to your homepage.
- You can now input customer testimonials directly through the theme editor.
Step 4: Save and Preview Your Changes
Once you’re satisfied with the changes, save them, and preview your store to see how the testimonial section looks. You should see your testimonials displayed beautifully on the homepage, helping to establish credibility and trust with potential customers.
FAQs
1. Do I need to know how to code to add this section?
Not necessarily. The steps provided here are beginner-friendly. If you follow the guide, you should be able to implement the testimonial section without advanced coding skills.
2. Can I add more testimonials?
Yes! You can duplicate the testimonial
div in the code to add as
many testimonials as you need.
3. Will this affect my store’s performance?
No, adding a testimonial section manually will not negatively affect your store’s speed, unlike some third-party apps which can slow down your site.
4. What if I make a mistake in the code?
If you make a mistake, you can always revert to the duplicated theme you created in step one. This acts as your backup.
5. Can I style the testimonial section differently?
Absolutely! You can customize the CSS code to match your store's branding, colors, and layout preferences.
Conclusion
Adding a testimonial section to your Shopify Dawn theme without using apps is a great way to enhance your store's credibility and boost conversions. By following the steps outlined above, you can create a visually appealing and functional testimonial section that fits seamlessly into your store's design.
Looking for something specific? Drop me a message.