Free code vault
Copy, paste, improve your store.
Free Shopify code you can add to your store in a few minutes. See how each one looks, copy the code with one tap, then follow the steps. No sign-up.
-
1 of 3 Real savings badge
Shows a green “Save ₹200 (20%)” tag next to your price, but only when the product really has a higher compare-at price. No fake “was” prices.
What it looks like on your store
Oversized cotton tee
₹799
₹999Save ₹200 (20%)Only shows when the product really has a higher compare-at price.
Add to cartLive preview built from the exact code below.
Copy the code
snippets/ls-savings-badge.liquid · 45 lines
View the code
{% doc %} Conversion Essentials · Savings badge Shows "Save ₹200 (20%)" only when the variant really has a compare-at price above its selling price. Renders nothing otherwise. @param {object} variant - The product variant, for example product.selected_or_first_available_variant @param {string} [style] - 'amount', 'percent' or 'both' (default) @param {string} [label] - Word before the saving, defaults to "Save" @example {% render 'ls-savings-badge', variant: product.selected_or_first_available_variant %} {% enddoc %} {%- liquid assign style = style | default: 'both' assign label = label | default: 'Save' if variant and variant.compare_at_price > variant.price assign saved = variant.compare_at_price | minus: variant.price assign percent = saved | times: 100.0 | divided_by: variant.compare_at_price | floor endif -%} {%- if saved and saved > 0 -%} <span class="ls-save" data-ls-save> {%- case style -%} {%- when 'amount' -%}{{ label | escape }} {{ saved | money_without_trailing_zeros }} {%- when 'percent' -%}{{ label | escape }} {{ percent }}% {%- else -%}{{ label | escape }} {{ saved | money_without_trailing_zeros }} ({{ percent }}%) {%- endcase -%} </span> {%- endif -%} {% stylesheet %} .ls-save { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; background: #e7f6ec; color: #12613a; font-size: 0.8125rem; font-weight: 700; line-height: 1.4; } {% endstylesheet %}Add it to your store
- In Shopify admin go to Online Store → Themes. Next to your theme click ⋯ → Edit code.
- Under Snippets click Add a new snippet, name it
ls-savings-badgeand click Done. - Delete everything in the new file, paste the code and click Save.
-
Open the file that shows your product price (usually sections/main-product.liquid) and paste this line just below the price:
{% render 'ls-savings-badge', variant: product.selected_or_first_available_variant %}
Tip: duplicate your theme first (⋯ → Duplicate) so you can always go back.
-
2 of 3 Benefit / trust strip
A neat row of short promises under your Add to cart button, like secure checkout, delivery time and returns.
What it looks like on your store
Oversized cotton tee
₹799
Add to cart- Secure checkout
- Ships in 2 days
- 7-day returns
Live preview built from the exact code below.
Copy the code
sections/ls-benefit-strip.liquid · 128 lines
View the code
{%- comment -%} Conversion Essentials · Benefit / trust strip A row of short, factual reassurances (for example "Secure checkout"). Only list things your store genuinely offers. {%- endcomment -%} {%- if section.blocks.size > 0 -%} <div class="ls-strip ls-strip--{{ section.settings.style }}" style="--ls-strip-gap: {{ section.settings.gap }}px"> <ul class="ls-strip__list" role="list"> {%- for block in section.blocks -%} {%- if block.settings.text != blank -%} <li class="ls-strip__item" {{ block.shopify_attributes }}> <span class="ls-strip__icon" aria-hidden="true"> {%- case block.settings.icon -%} {%- when 'lock' -%}<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/></svg> {%- when 'truck' -%}<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 6h11v9H3zM14 9h4l3 3v3h-7"/><circle cx="7" cy="17" r="2"/><circle cx="17" cy="17" r="2"/></svg> {%- when 'return' -%}<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 14L4 9l5-5"/><path d="M4 9h11a5 5 0 0 1 0 10h-3"/></svg> {%- when 'chat' -%}<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 5h16v11H8l-4 4z"/></svg> {%- else -%}<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 12l5 5 9-10"/></svg> {%- endcase -%} </span> <span>{{ block.settings.text | escape }}</span> </li> {%- endif -%} {%- endfor -%} </ul> </div> {%- endif -%} {% stylesheet %} .ls-strip { padding: 12px 16px; } .ls-strip__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px var(--ls-strip-gap, 24px); margin: 0 auto; padding: 0; max-width: 1200px; list-style: none; } .ls-strip__item { display: inline-flex; align-items: center; gap: 8px; font-size: 0.875rem; font-weight: 600; } .ls-strip--boxed .ls-strip__item { padding: 8px 12px; border: 1px solid rgba(0, 0, 0, 0.12); border-radius: 10px; } @media (max-width: 749px) { .ls-strip__list { justify-content: flex-start; } } {% endstylesheet %} {% schema %} { "name": "Benefit strip", "settings": [ { "type": "select", "id": "style", "label": "Style", "options": [ { "value": "plain", "label": "Plain" }, { "value": "boxed", "label": "Boxed" } ], "default": "plain" }, { "type": "range", "id": "gap", "label": "Space between items", "min": 8, "max": 48, "step": 4, "unit": "px", "default": 24 } ], "blocks": [ { "type": "benefit", "name": "Benefit", "limit": 6, "settings": [ { "type": "select", "id": "icon", "label": "Icon", "options": [ { "value": "check", "label": "Check" }, { "value": "lock", "label": "Lock" }, { "value": "truck", "label": "Delivery" }, { "value": "return", "label": "Returns" }, { "value": "chat", "label": "Support" } ], "default": "check" }, { "type": "text", "id": "text", "label": "Text", "info": "State only what your store really offers.", "default": "Secure checkout" } ] } ], "presets": [ { "name": "Benefit strip", "blocks": [{ "type": "benefit", "settings": { "icon": "lock", "text": "Secure checkout" } }] } ] } {% endschema %}Add it to your store
- In Shopify admin go to Online Store → Themes. Next to your theme click ⋯ → Edit code.
- Under Sections click Add a new section, name it
ls-benefit-stripand click Done. - Delete everything in the new file, paste the code and click Save.
-
Go back to Customize, click Add section, pick Benefit strip and type your own lines. List only what your store really offers.
Tip: duplicate your theme first (⋯ → Duplicate) so you can always go back.
-
3 of 3 Accessible FAQ accordion
Tap-to-open questions and answers that also help Google show your FAQs in search results.
What it looks like on your store
Frequently asked questions
How long does delivery take?
2 to 5 working days across India.Can I return it?
Yes, within 7 days if it's unused.Is cash on delivery available?
Yes, on orders up to ₹5,000.Live preview built from the exact code below.
Copy the code
sections/ls-faq-accordion.liquid · 166 lines
View the code
{%- comment -%} Conversion Essentials · Accessible FAQ accordion Native <details>/<summary> (keyboard and screen-reader friendly, works without JavaScript). Questions without an answer are skipped, and the same answered questions are published as FAQPage structured data. {%- endcomment -%} {%- liquid assign answered = 0 for block in section.blocks if block.settings.question != blank and block.settings.answer != blank assign answered = answered | plus: 1 endif endfor -%} {%- if answered > 0 -%} <div class="ls-faq"> {%- if section.settings.heading != blank -%} <h2 class="ls-faq__heading">{{ section.settings.heading | escape }}</h2> {%- endif -%} <div class="ls-faq__list"> {%- for block in section.blocks -%} {%- if block.settings.question != blank and block.settings.answer != blank -%} <details class="ls-faq__item" {% if section.settings.open_first and forloop.first %}open{% endif %} {{ block.shopify_attributes }}> <summary class="ls-faq__q"> <span>{{ block.settings.question | escape }}</span> <span class="ls-faq__icon" aria-hidden="true"></span> </summary> <div class="ls-faq__a">{{ block.settings.answer }}</div> </details> {%- endif -%} {%- endfor -%} </div> </div> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ {%- assign emitted = 0 -%} {%- for block in section.blocks -%} {%- if block.settings.question != blank and block.settings.answer != blank -%} {%- assign emitted = emitted | plus: 1 -%} { "@type": "Question", "name": {{ block.settings.question | json }}, "acceptedAnswer": { "@type": "Answer", "text": {{ block.settings.answer | strip_html | json }} } }{% if emitted < answered %},{% endif %} {%- endif -%} {%- endfor -%} ] } </script> {%- endif -%} {% stylesheet %} .ls-faq { max-width: 760px; margin: 0 auto; padding: 32px 16px; } .ls-faq__heading { margin: 0 0 16px; } .ls-faq__item { border-bottom: 1px solid rgba(0, 0, 0, 0.12); } .ls-faq__q { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 48px; padding: 12px 0; font-weight: 600; list-style: none; cursor: pointer; } .ls-faq__q::-webkit-details-marker { display: none; } .ls-faq__q:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; } .ls-faq__icon { position: relative; flex: none; width: 14px; height: 14px; } .ls-faq__icon::before, .ls-faq__icon::after { content: ''; position: absolute; left: 0; top: 6px; width: 14px; height: 2px; background: currentColor; transition: transform 0.2s ease; } .ls-faq__icon::after { transform: rotate(90deg); } .ls-faq__item[open] .ls-faq__icon::after { transform: rotate(0deg); } .ls-faq__a { padding: 0 0 16px; } @media (prefers-reduced-motion: reduce) { .ls-faq__icon::after { transition: none; } } {% endstylesheet %} {% schema %} { "name": "FAQ accordion", "settings": [ { "type": "text", "id": "heading", "label": "Heading", "default": "Frequently asked questions" }, { "type": "checkbox", "id": "open_first", "label": "Open the first question", "default": false } ], "blocks": [ { "type": "question", "name": "Question", "settings": [ { "type": "text", "id": "question", "label": "Question" }, { "type": "richtext", "id": "answer", "label": "Answer", "info": "Questions without an answer are hidden." } ] } ], "presets": [ { "name": "FAQ accordion", "blocks": [{ "type": "question" }] } ] } {% endschema %}Add it to your store
- In Shopify admin go to Online Store → Themes. Next to your theme click ⋯ → Edit code.
- Under Sections click Add a new section, name it
ls-faq-accordionand click Done. - Delete everything in the new file, paste the code and click Save.
-
Go back to Customize, click Add section, pick FAQ accordion and add your questions. Questions without an answer stay hidden.
Tip: duplicate your theme first (⋯ → Duplicate) so you can always go back.
No snippet on its own guarantees more sales. These are building blocks; your product, offer and traffic still decide the result.