Can someone knowledgeable on site design show me how to add a scrolling marquee?

I asked ChatGPT to offer suggestions to improve my site design. Can someone knowledgable teach me how to edit my template to Create a scrolling marquee section that displays 5-star customer testimonials. The marquee should scroll horizontally at a smooth, steady pace with no pausing. Each testimonial card should show a 5-star rating (★★★★★), a short customer quote, and the customer’s name. Include multiple testimonial cards that loop seamlessly. The design should be clean and match a premium audio tech brand aesthetic.

These are my customer testimonials I want to use:

This is my website: https://www.germanaudiotech.com/

Also, I want to make my listings’ description look similar to what this Youtuber designed with Claude. How do I match this style?

You are on Supply, which is a vintage theme, so there is no marquee block built in.

Add a custom section.

Create the section

  • Online Store > Themes. Next to Supply, click the menu > Edit code.
  • In the left list click the sections folder, then the New file icon. Name it testimonial-marquee and keep the type as Liquid.

  • Delete the starter code, paste this in, then Save:
{%- assign speed = section.settings.speed | default: 40 -%}
<div class="tm-wrap" style="
  background: {{ section.settings.bg_color }};
  padding: {{ section.settings.padding_top }}px 0 {{ section.settings.padding_bottom }}px;">

  {%- if section.settings.heading != blank -%}
    <h2 class="tm-heading" style="color: {{ section.settings.heading_color }};">
      {{ section.settings.heading }}
    </h2>
  {%- endif -%}

  <div class="tm-marquee" id="tm-{{ section.id }}">
    <div class="tm-track">
      {%- for i in (1..2) -%}
        {%- for block in section.blocks -%}
          <div class="tm-card" {{ block.shopify_attributes }} style="
            width: {{ section.settings.card_width }}px;
            background: {{ section.settings.card_color }};
            color: {{ section.settings.text_color }};">
            <div class="tm-stars" aria-hidden="true">★★★★★</div>
            <p class="tm-quote">{{ block.settings.quote }}</p>
            {%- if block.settings.name != blank -%}
              <p class="tm-name">{{ block.settings.name }}</p>
            {%- endif -%}
          </div>
        {%- endfor -%}
      {%- endfor -%}
    </div>
  </div>
</div>

<style>
  #tm-{{ section.id }} { overflow: hidden; width: 100%; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
  #tm-{{ section.id }} .tm-track { display: flex; width: max-content; gap: 20px; animation: tm-scroll-{{ section.id }} {{ speed }}s linear infinite; }
  @keyframes tm-scroll-{{ section.id }} { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  .tm-heading { text-align: center; margin: 0 0 26px; font-size: 28px; letter-spacing: .5px; }
  #tm-{{ section.id }} .tm-card { flex: 0 0 auto; box-sizing: border-box; padding: 26px 24px; border-radius: 14px; box-shadow: 0 6px 20px rgba(0,0,0,.08); text-align: left; }
  #tm-{{ section.id }} .tm-stars { color: #f5b301; font-size: 18px; letter-spacing: 2px; margin-bottom: 12px; }
  #tm-{{ section.id }} .tm-quote { font-size: 15px; line-height: 1.55; margin: 0 0 14px; }
  #tm-{{ section.id }} .tm-name { font-size: 14px; font-weight: 700; margin: 0; opacity: .85; }
</style>

{% schema %}
{
  "name": "Testimonials marquee",
  "settings": [
    { "type": "text", "id": "heading", "label": "Heading", "default": "What our customers say" },
    { "type": "range", "id": "speed", "min": 15, "max": 90, "step": 5, "unit": "s", "label": "Scroll speed (lower = faster)", "default": 40 },
    { "type": "range", "id": "card_width", "min": 240, "max": 480, "step": 10, "unit": "px", "label": "Card width", "default": 320 },
    { "type": "header", "content": "Colors" },
    { "type": "color", "id": "bg_color", "label": "Section background", "default": "#0f1115" },
    { "type": "color", "id": "heading_color", "label": "Heading text", "default": "#ffffff" },
    { "type": "color", "id": "card_color", "label": "Card background", "default": "#ffffff" },
    { "type": "color", "id": "text_color", "label": "Card text", "default": "#1a1a1a" },
    { "type": "header", "content": "Spacing" },
    { "type": "range", "id": "padding_top", "min": 0, "max": 100, "step": 4, "unit": "px", "label": "Padding top", "default": 48 },
    { "type": "range", "id": "padding_bottom", "min": 0, "max": 100, "step": 4, "unit": "px", "label": "Padding bottom", "default": 48 }
  ],
  "blocks": [
    {
      "type": "testimonial",
      "name": "Testimonial",
      "settings": [
        { "type": "textarea", "id": "quote", "label": "Quote", "default": "Fantastic service and the radio works perfectly." },
        { "type": "text", "id": "name", "label": "Customer name", "default": "Happy customer" }
      ]
    }
  ],
  "presets": [
    { "name": "Testimonials marquee",
      "blocks": [
        { "type": "testimonial" }, { "type": "testimonial" }, { "type": "testimonial" },
        { "type": "testimonial" }, { "type": "testimonial" }
      ]
    }
  ]
}
{% endschema %}

Add it to your home page

  • Go back and click Customize.
  • On the home page click Add section, then choose Testimonials marquee.

Add your reviews

  • Click each Testimonial to set the quote and the customer name.
  • Use Add Testimonial for more. The 5 stars show on every card automatically.

Style and speed

  • In the section settings set the scroll speed, card width, and colours.
  • Lower speed number = faster. It scrolls non-stop with no pausing, and loops seamlessly.
  • Save.

On matching that product description layout: that is a separate product-page job (a custom section or product metafields on your product template), not the same as this marquee.

If you would pull in real verified star reviews automatically, apps like Judge.me, Loox, or Okendo do that and can feed a carousel.

Regards,
Ploqo

I wouldn’t recommend doing this. These aren’t customer reviews… they’re manually created, and unless each one represents an actual statement from a real customer, presenting them as customer feedback is deceptive.

and that’s why i mentioned that in the end

Yes, the reviews are real. We’ve been adding them over the last 15 years.

Is there an app I can download that asks customers for feedback post-purchase, and if they are happy they can leave a positive review on Google or Yelp?

Do you know if I can add a language translator to the top-right of the homepage with flag icons so my customers can read the website in their prefered language?
:united_states: :mexico: :germany: :france:

Great questions @GermanAudioTech I can help with both!!

For the scrolling testimonial marquee, here’s the HTML/CSS code you can add to your site template:

<style>
.marquee-wrapper {
  overflow: hidden;
  background: #111;
  padding: 20px 0;
  border-top: 1px solid #2a2a2a;
  border-bottom: 1px solid #2a2a2a;
}

.marquee-track {
  display: flex;
  gap: 24px;
  width: max-content;
  animation: scroll-left 30s linear infinite;
}

.marquee-track:hover { animation-play-state: paused; }

@keyframes scroll-left {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.testimonial-card {
  background: #1a1a1a;
  border: 1px solid #333;
  border-radius: 12px;
  padding: 20px 24px;
  min-width: 280px;
  max-width: 280px;
  color: #fff;
  font-family: sans-serif;
}

.stars { color: #f5a623; font-size: 18px; margin-bottom: 8px; }
.quote { font-size: 14px; color: #ccc; line-height: 1.5; margin-bottom: 12px; }
.customer-name { font-size: 13px; font-weight: 600; color: #f5a623; }
</style>

<div class="marquee-wrapper">
  <div class="marquee-track">
    <!-- Cards duplicated for seamless loop -->
    <div class="testimonial-card">
      <div class="stars">★★★★★</div>
      <p class="quote">"Absolutely top-notch OEM audio parts. Arrived fast and fit perfectly!"</p>
      <span class="customer-name">— Michael R.</span>
    </div>
    <div class="testimonial-card">
      <div class="stars">★★★★★</div>
      <p class="quote">"Best source for German car audio. Great quality and amazing service."</p>
      <span class="customer-name">— Sarah K.</span>
    </div>
    <div class="testimonial-card">
      <div class="stars">★★★★★</div>
      <p class="quote">"Found a rare part I couldn't find anywhere else. Highly recommend!"</p>
      <span class="customer-name">— James T.</span>
    </div>
    <div class="testimonial-card">
      <div class="stars">★★★★★</div>
      <p class="quote">"Prompt shipping, excellent packaging, exactly as described. 5 stars!"</p>
      <span class="customer-name">— Lisa M.</span>
    </div>
    <div class="testimonial-card">
      <div class="stars">★★★★★</div>
      <p class="quote">"Super knowledgeable team. They helped me find the right unit for my BMW."</p>
      <span class="customer-name">— David H.</span>
    </div>
    <!-- Duplicate set for seamless loop -->
    <div class="testimonial-card">
      <div class="stars">★★★★★</div>
      <p class="quote">"Absolutely top-notch OEM audio parts. Arrived fast and fit perfectly!"</p>
      <span class="customer-name">— Michael R.</span>
    </div>
    <div class="testimonial-card">
      <div class="stars">★★★★★</div>
      <p class="quote">"Best source for German car audio. Great quality and amazing service."</p>
      <span class="customer-name">— Sarah K.</span>
    </div>
    <div class="testimonial-card">
      <div class="stars">★★★★★</div>
      <p class="quote">"Found a rare part I couldn't find anywhere else. Highly recommend!"</p>
      <span class="customer-name">— James T.</span>
    </div>
    <div class="testimonial-card">
      <div class="stars">★★★★★</div>
      <p class="quote">"Prompt shipping, excellent packaging, exactly as described. 5 stars!"</p>
      <span class="customer-name">— Lisa M.</span>
    </div>
    <div class="testimonial-card">
      <div class="stars">★★★★★</div>
      <p class="quote">"Super knowledgeable team. They helped me find the right unit for my BMW."</p>
      <span class="customer-name">— David H.</span>
    </div>
  </div>
</div>

Just swap in your own real customer quotes and names. The trick to seamless looping is duplicating all the cards — the animation resets invisibly when it reaches the halfway point. :repeat_button:

Second, for matching the Claude/Shopify YouTuber listing style, that video-style description uses rich HTML product descriptions with bold headers, icon bullets, feature highlight boxes, and clean typography. You can prompt Claude directly with something like:

“Write a premium Shopify product description for [your product] using bold section headers, bullet points with emoji icons, a feature highlight box, and a trust/guarantee section at the bottom. Make it look modern and conversion-focused.”

Claude is great at generating that styled HTML — just paste the output into your Shopify product description (in HTML mode). If you share one of your product listings, I can generate a styled template for you right now! :rocket:

1. Post-purchase reviews to Google

Yelp does not allow businesses to ask for reviews at all, so it is a poor target. Google is fine.

Shopify Apps that email customers after purchase and point them to a (photo/video/txt) review:

  • Judge .me (free tier).
  • Loox or Okendo
  • Trustpilot, or a Google Reviews app like Reputon or Omega

Set the email to go out a few days after delivery,

2. A flag language switcher, top-right

Shopify translates your store for free with its own Translate & Adapt app: Settings > Languages > Add language. That part gives you the languages.

Notes:

  • Supply is a vintage theme, so it has no built-in language picker,
  • Shopify’s native picker shows language names, not flags.
  • For flag icons placed in the top-right, use a translation app that includes a flag switcher, such as Weglot, Langify, or T Lab.
  • Or you can use custom code anyway
  • One flag cannot cover English for both the US and the UK

Regards
Ploqo

Very helpful! Thank you so much for all your information. Do you know how to bulk edit listing descriptions adding this image:

I would like to add this image below description text for all listings, like this:

Result

Steps

First, upload the image

  • Go to Content > Files > Upload files and add your badge image.
  • Click the image, then use Copy link. Keep that URL.

Add it to the product page

  • Online Store > Themes. Next to Supply, click the menu > Edit code.
  • Open the sections folder and click product-template.liquid.

  • Find this line: {{ product.description }}
  • Paste this right after its closing </div>, then Save. Swap in the link you copied.

<img
  src="PASTE-YOUR-IMAGE-LINK-HERE"
  alt="Guaranteed safe checkout"
  style="display:block; max-width:100%; height:auto; margin:20px auto 0;">

Done. The badge now shows below the description on every product.

Prefer no code?

A trust-badge app adds the same thing without touching theme files. Look at Trust Badges Bear, Avada Trust Badges, or Iconic, all with free options.

Regards,
Ploqo